Skocz do zawartości
Zaloguj się, aby obserwować  
Wojtek

WYśietlacz LCD z 3,3 V na linaich danych.

Pomocna odpowiedź

Mam trochę dziwny pomysł. Czy dało by rade zasilać LCD z 5V a podawać 3,3V (względem wspólnej masy) jako stan wysoki na liniach danych ❓ Wymagania urządzenia powodują że dobrze było by zasilać logikę z 3,3V.

Pytam się za czym zrobię testy bo jeśli pomysł jest zupełnie bez sensu to sobie odpuszczę. Wiem że np. dało się wysyłać dane do portu LPT w standardzie RS232 poziomami TTL i pomyślałem że może tak też się uda.

Udostępnij ten post


Link to post
Share on other sites

Doczytaj dokumentację, zazwyczaj jest tak, że to może działać przy wolnych prędkościach transmisji, ale i tak mogą występować błędy. Najlepiej zastosować konwerter poziomów - albo odpowiednie bramki albo na tranzystorach.

Udostępnij ten post


Link to post
Share on other sites

W dokumentacji będzie pisać powyżej jakiego napięcia jest uznawany stan wysoki? Problem w tym że ja jeszcze nie wiem konkretnie jakiego modelu użyje.

Co to znaczy wolno? Ja będę używał powiedzmy standardowej prędkości bez odczytu flagi zajętości - zaraz zajrzę do biblioteki bo dawno jej nie przeglądałem.

Po wysłaniu komendy czyszczenia wyświetlacza robię odstęp 4.9 ms; po wysłaniu półbajtu znaku 120 us.

Udostępnij ten post


Link to post
Share on other sites

Mi zwykły lcd zasilany z 16x2 działał, przy sygnałach 3,3V.

Udostępnij ten post


Link to post
Share on other sites

Tu prędkość nie ma nic do rzeczy. Jeżeli tylko - jak już sam się domyśliłeś - spełnisz wymagania na minimalne napięcie w stanie wysokim, będzie działać. To wcale nie jest "dziwny pomysł" tylko typowe rozwiązanie. Musisz tylko pamiętać, że informację możesz przesyłać tylko "tam" a nie "z powrotem", tak więc jakiekolwiek odczyty z LCD spowodują wysłanie 5 woltowej odpowiedzi do biednego, 3 woltowego procesora a to mu się na pewno nie spodoba.

Nawet jeżeli projektanci kontrolera LCD nie przyłożyli się i zrobili typowe wejścia CMOS, to napięcie minimalnej jedynki będzie Vcc/2 plus jakiś margines bezpieczeństwa (czyli pewnie ze 3V) a to gwarantuje działanie przy sygnałach 3.3V. Jeżeli natomiast - co wcale nie jest rzadkie - zrobili to z głową, to minimalny wejściowy stan wysoki będzie taki jak w sygnałach TTL (czyli ok. 2.4V) a to już jest komfort 🙂

Przykładowo najbardziej popularny wśród kontrolerów wyświetlaczy znakowych, Hitachi HD44780 ma przy zasilaniu 5V minimalny wejściowy stan wysoki na poziomie 2.2V. Oczywiście zawsze w takich przypadkach trzeba sprawdzić "swój" układ, choć niestety nie zawsze jest to możliwe.

Przecież to między innymi właśnie z powodu kompatybilności napięć VIH wybrano kiedyś taki a nie inny poziom zasilania "nowych", niskonapięciowych układów logicznych.

Udostępnij ten post


Link to post
Share on other sites

Przed chwilą zajrzałem do noty atmegi32 i okazało się że przy kwarcu który stosuje (12Mhz aby obsłużyć vusb) wymagane jest napięcie 5V więc mój pomysł przepadł.

Chciałem obniżyć napięcie logiki żeby móc wczytywać programy przez bootloader usb (pisałem już o tym na forum).

Ostatnią deską ratunku wydaje się być zrobienie jakiegoś translatora poziomów na linii danych USB.

Myslałem np o dzielniku rezystorowym ale dodatkowym utrudnieniem jest fakt że transmisja jest dwukierunkowa!

Stosuje schemat podobny do tego(zmodyfikowany według własnego uznania - więc pomijam rezystor 1Mom i dodaje dodatkowo kondensator 4,7uF tuż przy gnieździe)Na schemacie jest napisane zasilanie 5V co oczywiście całkowicie nie sprawdza się w praktyce(szczególnie przy laptopach):

https://www.forbot.pl/forum/upload_img/obrazki/IMG_4c7d66b7accc47332.png

Jest jakiś sposób na dostosowanie poziomów. Polecacie jakieś scalaki dedykowane do tego?

Udostępnij ten post


Link to post
Share on other sites

O ile wiem to USB nie przewiduje translatorów o jakich myślisz, tzn. z D+/D- na D+/D- ale 5V na 3V. Istnieją układy, które są fizycznym interfejsem do linii USB ale są to dużo bardziej skomplikowane bloki i służą do podłączania np. hosta "zrobionego" w FPGA (pierwszy z brzegu: http://www.ti.com/product/tusb1210 ). Driver USB musi mieć bardzo wąsko tolerowane parametry czasów narastania/opadania, "siły" sterowania w stanie wysokim i niskim itp a to prawie na pewno nie może być spełnione przez proste I/O typowych układów cyfrowych. Na szczęście normy to jedno a życie to drugie i dlatego proste podłączenie AVR wprost do USB działa, choć nigdy oficjalnego znaczka "USB approved" nie dostanie.

Nie bardzo rozumiem co znaczy "aby obsłużyć vusb"? Przecież do wykrywania napięcia VUSB nie potrzebujesz układu zasilanego z 5V? Możesz spokojnie zasilać procesor z 3.3V a VUSB puścić przez jakiś dzielnik. I wilk syty (sygnalizacja D+/D- na 3V) i owca cała (procesor nie dostanie napięcia wejściowego większego niż jego zasilanie). Chyba, że chodzi o wymaganą szybkość i 12MHz uzyskujesz na mega32 dopiero przy 5V, tak? To może zmień procesor? Daleko szukać, ATmega16L pracuje na 12MHz od 3V.

Udostępnij ten post


Link to post
Share on other sites

Pomysł z wersją L mi się spodobał - tym bardziej że wersja L jest jeszcze tańsza. Wyśle tylko maila czy mają na magazynie bo jak znam życie może być problem z dostępnością.

Z tym 5V to chodziło o kwarc i inne peryferia w urządzeniu. Ale to drugie to nie problem bo użyje dwóch stabilizatorów.

Udostępnij ten post


Link to post
Share on other sites

Nie napisałeś jednoznacznie ale mam nadzieję, że myślisz o czymś innym niż mega32L bo ten pracuje do 8MHz - to dość stary układ.

Udostępnij ten post


Link to post
Share on other sites

marek1707, zapewne chodziło o V-USB jako bibliotekę obsługi tegoż na AVR, a nie etykietę zasilania USB 😉

Udostępnij ten post


Link to post
Share on other sites

No fanie. Teraz mam problem ze swoim programatorem (AVT PROG 2). Nie komunikuje się z Atmegą32 😕

Byłem więc pewny że mam uszkodzoną atmege a tu proszę co znalazłem:

http://www.elektroda.pl/rtvforum/topic2174296.html

Do tej pory testowałem Atmege8A ,atmege88. attiny13, attiny2313.

Atmega32 nie działa.

Miał ktoś kiedyś taki problem? I tak myślałem już o zmianie programatora (szukam czegoś do programowania xmeg i tych takich maluchów po TPI)

Ten byłby dobry? http://www.sibit.pl/sklep/?25,usb-avr-prog-mkii

Na szczęście mam jeszcze port LPT to sprawdzę tą atmege.

Udostępnij ten post


Link to post
Share on other sites

Zobacz jak jest zrobiony dzielnik w programatorze USBasp. Tam też atmega jest zasilana z 5V.

Udostępnij ten post


Link to post
Share on other sites

Harnas Nie wiem jaki ty schemat widziałeś. Ja widziałem usbasp atnela i tam mikrokontroler jest zasilany ze stabilizatora 3,3V. Niektóre wersje usbasp zamiast stabilizatora mają dwie diody obniżające napięcie.

Przed chwilą dowiedziałem się że linie ISP i SPI nie muszą się pokrywać - przykładem jest atmega128:

Mam rozumieć że linie PB1, PB2, PB3 (sck, mosi, miso) służą do programowania? A które linie to sprzętowe SPI?

Jak jest w atmedze32?

Udostępnij ten post


Link to post
Share on other sites

Wojtek, z tego co pamiętam, to do programowania służą PDI/PDO, a nie MISO/MOSI, ale sprawdź w DS.

Udostępnij ten post


Link to post
Share on other sites

Do programowania ISP???

Pytam bo może mam podobną sytuacje przy m32 i dlatego nie mogę jej zaprogramować.

...nieważne w m32 jest normalnie programowanie tymi samymi liniami co SPI.

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

Zaloguj się, aby obserwować  

×
×
  • Utwórz nowe...