Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Atmega32][Bascom]Wyświetlacz LCD alfanumeryczny oddalony od uC

bartas87poz 20 Dec 2011 10:16 3570 24
  • #1
    bartas87poz
    Level 9  
    Witam,

    chciałbym się od Was dowiedzieć jak daleko od uC można umieścić wyświetlacz LCD alfanumeryczny? Przygotowałem płytkę z Atmega32 do sterowanie wejściami i wyjściami oraz komunikacja z GSM i zrobiłem wyprowadzenia na LCD. Całość chciałbym zamontować na poddaszu a sterowanie w ścianie.

    LCD z uC połączę przewodem ekranowanym wyprowadzając bezpośrednio z uC styki: D4,D5,D6,D7,E,RS,GND,+5.

    Czy jak LCD będzie oddalone od uC o jakieś 5m to ruszy normalnie czy jest to mało prawdopodobne?
  • #2
    pawel-jwe
    Level 30  
    Najlepiej dla pewności podłącz na sucho przewodem o tej długości.
  • #3
    mirekk36
    Level 42  
    bartas87poz wrote:

    Czy jak LCD będzie oddalone od uC o jakieś 5m to ruszy normalnie czy jest to mało prawdopodobne?


    Sorki ale to jest wręcz nienormalny pomysł :( ....

    Zrób sobie płytkę z LCD plus jakiś mały mikrokontroler, który odbiera dane np po RS232 albo RS485 i wtedy podłącz to do swojej centralki na poddaszu kablem RS232/RS485. Wtedy dane do LCD będziesz normalnie przesyłał do procka który już na krótko jest połączony z LCD , będzie na nim wyświetlał odebrane dane i wtedy to będzie ładnie działać.
  • #4
    bartas87poz
    Level 9  
    Zastanawiałem się nad takim rozwiązaniem, tylko jest jeden problem.
    RS232 już wykorzystuje do komunikacji z GSM.
    Wiec ten port komunikacyjny na pewno odpada.

    Zostaje I2C (jak czytałem może działać tak do 80cm)
    SPI (nie wiem jaki zasięg)
    UART (nie wiem jaki zasięg)

    jakieś pomysły?
  • #5
    mirekk36
    Level 42  
    I2C stosuje się tylko w tym samym urządzeniu, nie jest to magistrala do stosowania na zewnątrz.

    SPI także odpada na większe odległości

    UART panie to jest właśnie RS232 ;)

    Z prostszych sposobów pozostaje ci np komunikacja z LCD oddalonym np przez:

    1. podczerwień jeśli masz zasięg w granicach widoczności
    2. jakaś prosta komunikacja radiowa (dowolne małe moduły radiowe)
  • #6
    nsvinc
    Level 35  
    Bardzo wolne SPI też się nada (zegar<50kHz). Przecież bity idą kablem podobnie jak w przypadku UARTa, z tą różnicą, że synchronicznie (czyli konieczny jest zegar).

    Najlepiej byłoby to SPI podłączyć przez transceivery różnicowe, i wszystkie sygnały pojedyncze zamieniać na różnicowe przed wysłaniem.
    Tak naprawdę to transmisja do "panelu sterowniczego" będzie wymagała trzech linii: SDI,SDO,SCK. Jeśli "centralka" będzie masterem, to z niej wychodzi SDO i SCK, a do niej wchodzi SDI. W panelu sterowniczym jest odwrotnie, wychodzi SDI a wchodzi SDO i SCK.
    Bez problemu możesz zrealizować całą tą transmisję różnicowo; potrzebujesz wtedy trzech nadajników różnicowych, i trzech odbiorników różnicowych; mogą one być praktycznie dowolne - takie do RS485 też się bardzo dobrze będą nadawać :]
    Dzięki transmisji różnicowej uzyskasz nawet na długim 10m kablu spokojnie transmisję rzędu 1Mbps.
  • #7
    SylwekK
    Level 32  
    Zawsze można spróbować napisać jakiś własny prosty protokół. Chyba w tym przypadku nie są potrzebne jakieś zawrotne prędkości ani szyfrowanie i zaawansowana kontrola błędów.
  • #8
    nsvinc
    Level 35  
    Protokół i tak trzeba będzie opracować, niezależnie od tego, jakie będzie medium przesyłu informacji. Co to będzie za protokół - nie wnikam.
  • #9
    arktik1
    Level 27  
    Przecież można dopisać UART programowy, nie będzie wtedy kolidował z GSM.
    Sprzętowy niech wysyła swoje, a programowy swoje.
  • #10
    nsvinc
    Level 35  
    programowo to nie ma sensu pisać UARTa. Bardziej sie opłaca napisać transmisję danych w oparciu o PWM, w szczególności, że autor potrzebuje transmisji na duże odległości...
  • #11
    bartas87poz
    Level 9  
    Bez przesady ... duże odległości - to tylko 5m

    Najpierw spróbuje doświadczalnie połączyć ten ekranik na takim 5m przewodzie, zobaczę jaki efekt będzie. Rozumiem że mam się spodziewać krzaków.
    Z góry to odrzuciliście ze względu na zakłócenia? A próbował ktoś z Was coś takiego zrobić? Albo słyszał o takiej próbie?

    Upieram się przy tym bo płytkę już wykonałem z ekranikiem i uC. Trudna byłaby przeróbka tego. I co mi szkodzi sprawdzić, zacznę się martwić jak nie zadziała.

    PS: Spokojnych i udanych Świąt wszystkim życzę...
  • #12
    mirekk36
    Level 42  
    bartas87poz wrote:
    A próbował ktoś z Was coś takiego zrobić?


    Na pewno nikt z tych którzy ci tu dobrze radzą nie próbował czegoś takiego zrobić bo to czyste nieporozumienie ;)


    bartas87poz wrote:
    Albo słyszał o takiej próbie?


    Pewnie, co i rusz pojawia się temat początkujących z pytaniami dlaczego im się na wyświetlaczu krzaki pojawiają gdy podłączą LCD na taśmie kilkunastocentymetrowej i wielkie zdziwienie. Poczytaj sobie elektrodę to na pęczki znajdziesz takich tematów i pytań.
  • #13
    manekinen
    Level 29  
    Kolego, w praktyce 30cm to gwarantowane krzaczory. Ten protokół nie został stworzony do takich odległości.

    Możesz zmodyfikować bibliotekę i powstawiać większe opóźnienia, do wyświetlacza dolutować jakieś mocniejsze pullupy, i to zwiększy odległość ale nie na 5m, bez przesady :)

    Do takich rzeczy stosować się powinno właśnie jakiś RS485 na byle softowym uarcie. Po stronie LCD jakiś attiny2313 spokojnie wystarczy. Widziałem też gdzieś w sieci projekt (bodajże na attiny13) który odbierał dane 1wire i pokazywał na LCD (...a jednak to inny lcd był). 1wire to też coś, co można stosować na większe odległości.
  • #14
    excray
    Level 40  
    Komunikacja bez problemu. Trzeba tylko znacznie spowolnić komunikację do kilkuset zmian na liniach na sekundę. HD44780 nie stwarza tutaj problemów co do maksymalnego czasu. Problemem mogą być zakłócenia indukujące się na tak długich przewodach. Ale w tym celu interfejs można wykonać w wersji prądowej z odpowiednią histerezą.
  • #15
    bolek
    Level 35  
    I2C też nie ma problemów pod względem czasu, zegar możesz dać spokojnie 0,1Hz ba możesz sobie nawet wstrzymać komunikacje jednak dlaczego kuleje gdy sygnał poleci poza granice płytki?.
    Bo sa to układy przystosowane do "szybkich" zegarów i siłą rzeczy muszą natychmiast po zboczu zegara próbkować dane- a w tedy lubią pojawiać się przekłamania.
    Ja tu widzę programowy uart i procek przy LCD, nie trzeba nawet różnicówki tak że na trzech żyłach spokojnie podłączysz. Na walkę z błędnymi ramkami masz różne proste sposoby, warunek jest jeden- niech odbiornik próbkuje w środku a nie na początku odebranego bitu, możesz nawet kilka razy
  • #16
    bartas87poz
    Level 9  
    Witam,

    Miałem wczoraj chwilkę czasu i znalazłem kawałek (bodajże 7m) przewodu 10 żyłowego 0,75mm ekranowanego i z ciekawości podłączyłem ten układ. I mimo, że:

    Quote:
    nikt z tych którzy ci tu dobrze radzą nie próbował czegoś takiego zrobić bo to czyste nieporozumienie


    Quote:
    w praktyce 30cm to gwarantowane krzaczory. Ten protokół nie został stworzony do takich odległości.


    to podjąłem tą bezsensowną próbę (bo świat lubię poznawać empirycznie).
    Układ na przekór oczywiście ruszył i wyświetlacz nie pokazywał żadnych krzaków.

    I mimo mojego początkującego podejścia postarałem się przeprowadzić parę prób:
    1. Napisałem program co wypełnia CAŁY LCD na zmianę co sekundę innym tekstem.
    -układ obserwowałem przez 5 min (na tyle mi cierpliwości starczyło) nie pokazywał żadnych krzaków.
    2. Oplotłem ten 7m przewód wokół przedłużacza na którym działał uruchomiony komputer i parę innych sprzętów
    -układ chodził, ale parę razy na następne 5 min obserwacji udało się zaobserwować drobne krzaki.
    3. Po podpięciu ekranu przewodu pod GND układu (GND oczywiście filtruje kondensatorami na wyjściu z układu głównego i na wejściu na LCD) przez następne 5 min obserwacji już nic nie zaobserwowałem. Ekran chodzi normalnie.

    Przy następnym takim układzie na pewno pomyśle o wysyłaniu informacji jakimś portem szeregowym - jest to rozsądniejsze rozwiązanie. Ale mimo wszystko LCD ruszył i działa mimo takiej odległości więc mam podstawy się z Wami nie zgodzić.
  • #17
    bolek
    Level 35  
    No i gitara jeśli w miare to działa i dla ciebie jako twórcy jest akceptowalne w użytkowaniu, jednak piszesz że masz podstawy się z nami nie zgodzić i racji nie masz- jak sam stwierdziłeś pojawiały się krzaki. Czyli zgodnie z przewidywaniami, Twoim problemem może być nie tylko LCD ale i proc do którego masz bezpośrednio podłączone "anteny". Poza tym, nie chcę rozpoczynać dyskusji w tym kierunku jednak jak dla mnie to podejrzanie dobrze ci to działa.
    Zwróć uwagę że twój sposób jest w dodatku nie zgodny ze sztuką. Doradzały Ci osoby które zapewne zajmują się urządzeniami od pomysłu do wprowadzenia na rynek i maja lepszą orientacje co można, czego nie i jaki będzie tego efekt. Nikt Ci tych porad z palca nie wyssał. Gdybyś chciał podobny pomysł wprowadzić do sprzedaży , to uwierz mi że nawet nie wpuścili by cię z takim patentem do komory, no chyba tylko po to aby zdoić na kase.
    Jeśli położył byś laske na komorę i wprowadził rynek to reklamacja murowana. Czasami warto o takich aspektach pomyśleć, choćby po to aby w kolejnym projekcie nad tam nie rozmyślać tylko zająć się czymś bardziej sensowym, nie ważne czy robisz to sobie, wujkowi czy kochance.

    Podpowiem że na upartego możesz w tej tasiemce rozdzielić sygnały masą- krzaków powinno być mniej.
  • #18
    elektro232
    Level 10  
    Witam

    miałem kiedyś podłączony HD44780 2x20 na 22 metrowym kablu. kabel najzwyklejszy 16x 0,75 mm kwadratowego, bez przeplotu. Podłaczone to wszystko było do PCeta (nie do mikrokontrolera) i przez 4 lata nikt nie zauważył żeby coś się działo z wyświetlaczem (krzaki). Oczywiście kablem tym puszczone było 12V i przy wyświetlaczu obcinane przez LM7805 do 5V.Uniknąłem w ten sposób spadków napięć bo wyświetlacz był dość duży i podświetlenie skutecznie obniżało kontrast.

    Drugim moim projektem był HD44780 który podłączony był na kablu UTP o długości 10 metrów do Attiny2313.Też działało bezbłędnie przez 2 lata a kabel między wyświetlaczem a prockiem leciał przez skrzynię rozdzielczą elektryki na cały budynek.

    Normy normami a praktyka swoje.Im krótszy i lepiej ekranowany kabel tym lepiej, choć jak pokazuje praktyka można więcej niż mówią normy.Pamiętać należy jednak że takie "eksperymenty" jak 20m kabla do wyświetlacza możemy robić na "własnym podwórku" a dla klienta musi być to zrobione profesjonalnie.
    Na chwilę obecną obydwa w/w rozwiązania zostały zastąpione przez wyniesione wyświetlacze z własnym mikrokontrolerem każdy,a komunikację z nimi zapewnia mi własnego autorstwa protokół transmisji.Obydwa omówione przeze mnie przypadki zostały zrealizowane kiedy jeszcze byłem w trakcie "edukacji elektronicznej" i dziś wiem że kilometry wielożyłowych kabli to nie jest najlepszy pomysł.Wystarczą 3.Ale to już inna bajka.
  • #19
    User removed account
    User removed account  
  • #20
    rychmar
    Level 12  
    Jak spowolnić sygnał E ?? Bo własnie walcze z "krzakami" na lcd . LCD oddalony od procka 5m taśmą.
  • #21
    excray
    Level 40  
    HD44780 zapisuje na opadającym zboczu En czyli między komendę ustawienia 0 na linii En wstaw przed i po jakieś opóźnienia. Np. rzędu 1ms.
  • #22
    User removed account
    User removed account  
  • #23
    excray
    Level 40  
    Saabotaz wrote:
    Ponieważ to jest Bascom to chyba szybciej będzie wstawić na linii E np w szeregu 6 jakiśch bramek, np inwerterów lub zwykłych buforów.

    Tylko żeby nie doszło do sytuacji że dane zmienią się a linia En jeszcze nie opadnie. Zresztą opóźnienia z bramek nie będą zbyt duże. Można też rozpatrzyć sterowanie prądowe o którym gdzieś tam na początku wspominałem. A dodatkowo warto zacząć uczyć się czegoś bardziej elastycznego niż bascom.
  • #24
    User removed account
    User removed account  
  • #25
    Jacek Rutkowski
    Level 27  
    excray wrote:
    Saabotaz wrote:
    Ponieważ to jest Bascom to chyba szybciej będzie wstawić na linii E np w szeregu 6 jakiśch bramek, np inwerterów lub zwykłych buforów.

    Tylko żeby nie doszło do sytuacji że dane zmienią się a linia En jeszcze nie opadnie. Zresztą opóźnienia z bramek nie będą zbyt duże. Można też rozpatrzyć sterowanie prądowe o którym gdzieś tam na początku wspominałem. A dodatkowo warto zacząć uczyć się czegoś bardziej elastycznego niż bascom.

    Są dedykowane różnicowe nadajniki i odbiorniki linii ale łatwiej wykorzystać RS485 i małego procka a wtedy i szybko i pewnie będzie...