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



Teraz jest 18 wrz 2025, o 06:53


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: 21 sty 2016, o 23:59 
Offline
Nowy

Dołączył(a): 21 sty 2016
Posty: 5
Pomógł: 0

Cześć,

Jestem na początku swojej drogi z programowaniem mikrokontrolerów ST. Posiadam płytkę STM32F429ZI.

Zachęcony obejrzeniem filmiku
Obsługa wyświetlacza LCD dla opornych postanowiłem napisać funkcję inicjalizacyjną (na sam początek). Używałem biblioteki Standard Peripherals Library i Keila v5.

Jej działanie czasami objawia się migającym kursorem na pierwszej pozycji
JAK TUTAJ
A czasami cały wyświetlacz "miga"
JAK TU

Po kilku-kilkunastu resetach sytuacja się "stabilizuje". Kursor pojawia się na którejś pozycji.

Dodatkowo, druga linia wyświetlacza wygląda na nieaktywną, czyli chyba wyświetlacz nie ustawia się automatycznie w ten tryb jak na filmiku.

Ma ktoś może jakieś pomysły, dlaczego jest taka losowość?


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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2016, o 00:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 208
Lokalizacja: Kraków
Pomógł: 16

Ten wyświetlacz ma funkcję migania kursora. Jest to sprawa normalna, aby ją wyłączyć musisz wysłać odpowiednią instrukcję sterującą do jednego z rejestrów wyświetlacza.

W jakim trybie działa LCD 4 bit czy 8 bit?

Jeżeli nie chce Ci się nic wyświetlać w dolnym wierszu sprawdź czy dobrze wpisałeś adresy w funkcji wysyłającej.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2016, o 01:34 
Offline
Nowy

Dołączył(a): 21 sty 2016
Posty: 5
Pomógł: 0

Wyświetlacz pracuje w trybie 4-bitowym. O samym miganiu kursora wiem, że to sprawa normalna, jednak problem wygląda inaczej, widać to na załączonym filmiku. Co ciekawe, kiedy złącze USB na płytce nie jest podłączone do komputera, a do ładowarki USB, to przy każdym uruchomieniu odpala się bezproblemowo.

To, że druga linia wyświetlacza nie działa to tylko moje przypuszczenie, gdyż nie widzę na niej tych jaśniejszych prostokątów z pikselami, a do przesyłania znaków jeszcze nie doszedłem :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2016, o 08:11 
Offline
Użytkownik

Dołączył(a): 20 lip 2015
Posty: 83
Pomógł: 6

Ja przy użyciu tego wyświetlacza na stykówce też miałem problemy.

Działo się tak że wyświetlacz się rozsypywał (krzaki) i pojawiał się migotający kursor, np. gdy ruszyłem gdzieś kabelkami na stykówce, załączył się przekaźnik a co ciekawe gdy np. uruchomiłem komputer, który był wpięty do tego samego gniazdka. Powracał do w miarę normalnego stanu gdy odświeżył się kilkukrotnie, ale migający kursor pozostawał.

Co prawda problemu całkowicie nie rozwiązałem bo projekt mi na razie leży, ale dałem kondensatory filtrujące na zasilaniu oraz przeniosłem urządzenie do gniazdka oddalonego od komputera i problem się zredukował, choć nadal występował. Uznałem że to może być problem stykówki i będę myślał nad tym jak sprzęt polutuję porządnie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2016, o 10:10 
Offline
Nowy

Dołączył(a): 21 sty 2016
Posty: 5
Pomógł: 0

Faktycznie to 100 nano na wejściu zasilania może się przydać, głupi nie pomyślałem. Zastanawia mnie jednak dlaczego czasami zaskoczyło, a czasami nie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2016, o 12:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 27 maja 2013
Posty: 562
Lokalizacja: Bydgoszcz
Pomógł: 23

Po 1-wsze pytanie jakim zasilaniem zasilasz wyświetlacz LCD 2x16? One generalnie sa na 5V.

Po 2-gie bez problemów do testów z tym wyświetlaczem i STM32 wykorzystasz zestaw ATB:

Obrazek

Gdzie masz cała problematyke zasilania rozwiązaną, tylko pamietaj że do STM32 trzeba podłączyć wyświetlacz do tzw. pinów 5V tolerant.

a Po 3-cie masz dostepną bibliotekę dla STM32 działająca z tymi wyświetlaczami bez problemów, związane jest to z książką Pana Mareka Galewskiego "STM32. Aplikacje i ćwiczenia w języku C" która zresztą też polecam. http://www.wydawnictwo.btc.pl/index.php?ukey=product&productID=187337

stąd można pobrać w/w kod:
http://www.mikrokontroler.pl/content/STMCC



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sty 2016, o 23:36 
Offline
Nowy

Dołączył(a): 21 sty 2016
Posty: 5
Pomógł: 0

Witam ponownie.

Zestawu ATB nie posiadam. Wszystkie piny połączone z wyświetlaczem są FT.

Podłączenie kondensatora 100nF na wyprowadzenia zasilania zrobiły swoje z inicjalizacją. Skorzystałem z funkcji LCD_WriteData z polecanej biblioteki dra Galewskiego i otrzymałem "krzaczek" przy wysyłaniu literki do wyświetlacza:

Obrazek
(w razie gdyby link nie działał: http://imgur.com/PeVNzdO)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sty 2016, o 23:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 27 maja 2013
Posty: 562
Lokalizacja: Bydgoszcz
Pomógł: 23

No powiem Tobie zawsze podziwiam zapał ludzi walczących na stykówkach :)


Generalne żeby Ci pomóc to raczej powinieneś pomyśleć o schemacie, o całym kodzie programu bo możesz mieć błąd np. w inicjalizacji czy komplikacji, do tego bym się poważnie zastanowił nad zrobieniem własnej PCB albo np. kupienie zestawu STM32 Nucleo + przystawki z LCD np. takiej: http://botland.com.pl/arduino-shield-klawiatury-i-wyswietlacze/5182-dfrobot-lcd-keypad-shield-v20-wyswietlacz-dla-arduino.html żeby generalnie wykluczyć problemy sprzętowe.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 sty 2016, o 00:32 
Offline
Nowy

Dołączył(a): 21 sty 2016
Posty: 5
Pomógł: 0

Korzystanie ze stykówki to raczej kwestia konieczności, nie wyboru.

Generalnie schemat połączenia jest taki jak tu: Obrazek
Dorzuciłem tylko na próbę 1n4148, zgodnie z sugestią jednego z zagranicznych forów na linię zasilania (bez efektu)

Zmieniłem wszystkie kabelki, płytkę i przetestowałem z dwoma wyświetlaczami:

http://i.imgur.com/XbrII8v.jpg
http://i.imgur.com/4NeqvLC.jpg

efekt wysłania znaku 0x41 ('A') jest taki, że na pierwszej pozycji mam krzaczek spoza zestawu znaków, na drugiej ukośnik.

Poniżej mój kod, funkcja WriteData z biblioteki

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 sty 2016, o 00:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 27 maja 2013
Posty: 562
Lokalizacja: Bydgoszcz
Pomógł: 23

Ty no co ty za schemat dałeś?? To jak sobie Mirek do AVR podłączył to my wiemy.

Ty masz dać schemat jak masz zrobionego procesora STM32 + wyświetlacz co do jakich pinów itd.

Dalej maiłeś odpalić sobie testowo bibliotekę z Galewskiego taką jak ona jest. Np. Cw.4 odliczanie. U niego funkcja wysyłająca na ekran nazywa się "LCD_WriteTextXY"

Poza tym po inicjalizacji należy oczyścić pamieć wyświetlacza. Używanie samego LCD_WriteData; większego sensu nie ma, jednakże specjalnie dla Ciebie to zrobiłem test, mając wgrane ćwiczenie 4 zrobiłem samo LCD_WriteData(0x41); także programowo ona na 100% działa.


Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 sty 2016, o 09:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 208
Lokalizacja: Kraków
Pomógł: 16

Twoja funkcja inicjalizująca jest jakaś taka uboga. Za krótka. Zobacz w dokumentacji HD44780 jak wygląda algorytm ustawiania wyświetlacza do pracy z magistralą 4bit.
Dobrze by było gdyby ten wyświetlacz działał na 3V3.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 sty 2016, o 12:31 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8615
Pomógł: 338

http://www.sunduino.pl/wordpress/start- ... ery-5-lcd/

Obrazek

np 5V HD44780 2x16 z FRDM-KL25Z pracującym na 3,3V
najlepiej pin RW dać na GND dzięki czemu dokonujemy tylko zapisu do LCD
co pozwala używać go na dowolnych pinach procka bez obawy o uszkodzenie
jak do tej pory nic nigdzie nie siadło i działa prawidłowo.

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 sty 2016, o 13:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

SunRiver napisał(a):
jak do tej pory nic nigdzie nie siadło i działa prawidłowo


Nic dodać, nic ująć. Może tylko tyle, że działa też i u mnie na FRDM-KL25Z i kilku Discovery'kach.
Trochę poprawiłem sobie tą bibliotekę od Ciebie kolego SunRiver, bo miałem od czasu do czasu problem z inicjalizacją wyświetlacza (raz na kilka włączeń pokazywały się krzaki), no ale to już kosmetyka. Jeszcze raz dzięki za udostępnienie biblioteki. Gorąco ją polecam wszystkim początkującym i nie tylko.



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: 13 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO