Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 29 gru 2024, o 02:34


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 17 lip 2019, o 18:50 
Offline
Nowy

Dołączył(a): 17 lip 2019
Posty: 4
Pomógł: 0

Cześć, witam wszystkich.

Próbuję wysterować wyświetlaczem za pomocą interfejsu I2C, lecz póki co żadnych efektów.
Moja atmega to Atmega168. wyświetlacz to lcd 16x2 zgodny ze sterownikiem Hitachi hd44780.
Konwerter I2C jest na bazie układu PCF8574T.

Schemat połączeń konwertera z wyświetlaczem.
P0 -> RS
P1 -> RW
P2 -> E
P3 -> tranzystor sterujący podświetlaniem
P4 -> D4
P5 -> D5
P6 -> D6
P7 -> D7

Sam konwerter ma już podciągnięte linie SDA i SCL do VCC przez rezystory 4,7k.

Odpuściłem już próby inicjalizacji wyświetlacza, chce po prostu uruchomić podświetlanie.
Próbowałem wszystkich adresów, na jakich może działać konwerter.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Wysłanie na magistralę tego co podałem w main, powinno uruchomić podświetlanie wyświetlacza, lecz nic takiego się nie dzieje. Testowałem połączenia pomiędzy mikrokontrolerem, a konwerterem, pomiędzy układem PCF8574T na konwerterze, a pinami wyświetlacza i wspomnianego tranzystora sterującego podświetlaniem. Nigdzie nie wiedzę problemów, więc dlaczego ten wyświetlacz nie chce się zaświecić? Oczywiście po założeniu odpowiedniej zworki świeci się cały czas, ale wtedy nie da się sterować podświetlaniem.

Dodam też, że wszelkie próby inicjalizacji wyświetlacza itp, nic nie dały, zero efektu, nic się nie wyświetla, nic się nie dzieje.

Ma ktoś pomysł co robię nie tak?

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2019, o 19:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2013
Posty: 491
Lokalizacja: Siedlce
Pomógł: 9

Temat był poruszany:
topic13873.html

_________________
Ucz się ucz ,bo po to tutaj jesteś...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2019, o 20:34 
Offline
Nowy

Dołączył(a): 17 lip 2019
Posty: 4
Pomógł: 0

Niestety nadal bez zmian, mam układ PCF8574T, piny A0, A1, A2 nie są nigdzie dopięte, więc adres powinien być 0x4E.
Próbuję wysłać na magistralę adres 0x4E, a następnie 0x08 w celu zapalenia podświetlania wyświetlacza, ale zero reakcji.

------------------------ [ Dodano po: 18 minutach ]

Po wysłaniu adresu w TWSR mam 0x18, natomiast wysyłanie danych wisi w pętli.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lip 2019, o 08:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1164
Lokalizacja: Kraków
Pomógł: 93

Pobierz sobie program I2C Scaner. Pokaże Ci się poprawny adres konwertera.
Prostszego sposobu nie znam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lip 2019, o 09:42 
Offline
Nowy

Dołączył(a): 17 lip 2019
Posty: 4
Pomógł: 0

Generalnie wiem, że adres to 0x4E, dostaję ACK po wysłaniu adresu na magistrale. Problem w tym, że po wysłaniu danych nie dostaję żadnego statusu, bo pętla wysyłająca wisi i nie przerywa swojego działania.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lip 2019, o 11:46 
Offline
Użytkownik

Dołączył(a): 07 cze 2016
Posty: 563
Pomógł: 143

sampel napisał(a):
piny A0, A1, A2 nie są nigdzie dopięte, więc adres powinien być 0x4E

Ten układ nie ma na wejściach adresowych rezystorów pull-up, więc piny powinny być gdzieś podłączone.

Jakie masz taktowanie mikrokontrolera? Nigdzie nie ustawiasz prędkości transmisji, a domyślnie (po resecie) jest ustawiona na F_CPU/16, co przy zegarze np. 16MHz daje taktowanie magistrali równe 1MHz, czyli zdecydowanie za dużo. Układ PCF8574T zgodnie z dokumentacją akceptuje maksymalnie 100kHz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lip 2019, o 18:18 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27320
Lokalizacja: Szczecin
Pomógł: 1041

Cytuj:
Problemem pewnie są wiszące linie adresowe. Miałem ten sam problem z pcf8575 - dotknięcie palcem zmieniało losowo adres urządzenia.

Panowie po co te domysły - toż w nocie PDF scalaka jest to napisane jak BYK, że nie linie adresowe nie mają podciągania i nie mogą pozostawać "wiszące"

To po pierwsze - a po drugie - taki to właśnie urok chińskiej myśli technicznej

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lip 2019, o 06:50 
Offline
Nowy

Dołączył(a): 17 lip 2019
Posty: 4
Pomógł: 0

Problemem okazała się prędkość transmisji, właściwie nie wiem dlaczego nie zwróciłem na to uwagi. Takowanie mojego procka to 12Mhz więc do rejestru TWBR wprowadziłem wartość 52.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lip 2019, o 09:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1164
Lokalizacja: Kraków
Pomógł: 93

Czyli nie musi być rezystorów, ale muszą być podłączone. Albo do Vcc, albo do GND. A to oznacza, że nie mogą zostać niepodłączone!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO