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



Teraz jest 24 kwi 2024, o 06:34


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 17 ] 
Autor Wiadomość
PostNapisane: 19 lut 2018, o 20:58 
Offline
Użytkownik

Dołączył(a): 28 cze 2014
Posty: 37
Lokalizacja: Gdańsk
Pomógł: 0

Witam wszystkich ;)

Zauważyłem, że sporo osób ma problem z obsługą LCD ze sterownikiem HD44780 na STM32. Szczególnie, jak pogodzić te poziomy napięć: STM32 – 3.3V, a LCD – 5V. Postanowiłem napisać bibliotekę, którą można znaleźć tutaj:

- bez odczytem busy flag: https://github.com/embeddeddevpl/blog_r ... %232/STM32
- z odczytem busy flag: https://github.com/embeddeddevpl/blog_r ... %233/STM32

Wiem, można było zrobić jedną, uniwersalną z wykorzystaniem kompilacji warunkowej – jednak podział biblioteki na dwie oddzielne powoduje, że kod jest wg mnie trochę bardziej czytelny i łatwiejszy do ogarnięcia, szczególnie dla początkujących.

A dla dociekliwych przygotowałem tutorial: http://www.embeddeddev.pl/obsluga-lcd-h ... owadzenie/ , gdzie starałem się wszystko opisać i rozwiać wszelkie wątpliwości, tak jak z przytoczonym 3v3 vs 5v. Co prawda implementacja jest pod STM32 z wykorzystaniem bibliotek SPL, ale przedstawione tam informacje mogą przydać się zarówno „HALowcom”, „CMSISowcom”, a nawet „AVRowcom” ;)

_________________
Zapraszam na bloga: http://www.embeddeddev.pl/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2018, o 23:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 mar 2016
Posty: 85
Pomógł: 5

można skasować moje bzdury

_________________
I'M



Ostatnio edytowano 20 lut 2018, o 00:29 przez robertomic, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2018, o 23:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lut 2017
Posty: 369
Lokalizacja: Gliwice
Pomógł: 34

robertomic napisał(a):
coś się mi wydaje że nie potrzeba zasilać HD44780 5V, wtedy odpada jakaś tam translacja napięć .

Nie za bardzo chyba poczytałeś co tam Kolega napisał. Wspominał co najmniej o kilku sposobach dopasowania napieć, również o specjalnych wersjach wyświetlaczy na 3.3V

robertomic napisał(a):
co do biblioteki mam pewne obawy jak jest napisana jak to puszcze w pętli głównej to mogą się dziać rożne dziwne rzeczy ,

Tu również należałoby artykuł doczytać. Podano kilka sposobów oprogramowania od najprostszego blokującego do takiego z timerem i podwójnym buforowaniem.

robertomic napisał(a):
tym bardziej ze w arm często wykorzystuje się wielozadaniowość to nie avr gdzie chce się pomigać ledem . :)

Zupełnie nie trafione porównanie, co ma generalnie piernik do wiatraka :)
Na obu platformach można robić zaawansowane rzeczy, efekt zależy wyłącznie od programisty.

robertomic napisał(a):
Dlaczego nie wykorzystujesz przerwać choćby systicka ?


A to jakiś przymus jest? Wykorzystany został jeden z timerów, zdecydowanie wystarcza, szczególnie, że zwykle każdy STM ma co najmniej kilka timerów do różnych zastosowań.

Mam jakieś takie wrażenie, że Kolega robertomic to tak dla zasady się "przywalił" do tych artykułów.

Wg mnie te kilka stron ciekawie jest napisanych, sporo wiedzy w pigułce i warto je przeczytać.
Jedynie co mi zabrakło to standardowo zdarzeń i callbacków :) ale tu to tym razem sam się czepiam :)

Nie mniej jednak Kolego Lagun_25 dzięki za podzielenie się swoją pracą, jeśii będzie potrzeba na pewno coś tam się znajdzie dla mnie. Ode mnie plusik.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2018, o 23:57 
Offline
Moderator
Avatar użytkownika

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

robertomic napisał(a):
coś się mi wydaje że nie potrzeba zasilać HD44780 5V,

Masz rację "wydaje ci się" .... ;) przy typowym LCD i niższym napięciu zasilania NIC nie zobaczysz na LCD, chyba że zrobisz przetwornicę i podasz ujemne napięcie na wejście CONTRAST LCD ... wtedy tak - da się zobaczyć coś na LCD ;)

robertomic napisał(a):
co do biblioteki mam pewne obawy jak jest napisana

zamiast mieć obawy - sprawdź zamiast domyślać się nie wiadomo jakich problemów .... będzie działać z powodzeniem. Czy można inaczej zrobić oczekiwanie na odczyt flagi BusyFlag ... pewnie, że można ... ale to się robi dopiero wtedy gdy taki sposób rzeczywiście w czymś by przeszkodził.

------------------------ [ Dodano po: kilkunastu sekundach ]

Zealota napisał(a):
Mam jakieś takie wrażenie, że Kolega robertomic to tak dla zasady się "przywalił" do tych artykułów.

hahahaha kolega Zelaota pierwszy zauważył pewną tendencję - dziwną zresztą ... no ale niektórzy jak kolega robertomic tak lubią przewidywać bez sprawdzenia

_________________
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: 20 lut 2018, o 00:26 
Offline
Użytkownik

Dołączył(a): 28 cze 2014
Posty: 37
Lokalizacja: Gdańsk
Pomógł: 0

HD44780 nie trzeba zasilać 5V (z tego co piszą w nocie wystarczy 2.7v), ale wyświetlacz zazwyczaj tak, a na PCB poprowadzone jest wspólne zasilanie... Napięcie 3v3 wystarczy w przypadku, gdy z tyłu wyświetlacza wlutowany jest przetwornica ICL7660 do generowania ujemnego napięcia do kontrastu. Tylko tym różnią się wersje wyświetlaczy 5v od 3.3v. Ale takich rzeczy już we wpisie nie poruszałem, bo jest on przeznaczony dla osób początkujących. Po co jeszcze bardziej im to komplikować?

Co do dalszej części, możesz rozwinąć swoje obawy? Dlaczego mogą się dziać "dziwne rzeczy"? Czym różni się to od przypadku w AVR? Wielozadaniowość i wystrzaganie się wprowadzania opóźnień powinno być zarówno przy programowaniu ARM jak i AVR. Pomijając fakt, że taka obsługa w wielu wypadkach jest wystarczająca, to w ostatniej części, po opanowaniu podstaw, zainteresowanych zachęcałem do przeczytania jeszcze wpisu na temat buforowania LCD: http://www.embeddeddev.pl/buforowanie-lcd/, gdzie przedstawiłem sposób całkowicie nieblokującej obsługi sterownika. Oczywiście można w tym celu także wykorzystać przerwanie od timera, nawet tam o tym wspomniałem :D Sposobów można mnożyć i mnożyć :) Jednak w tej serii nie to było celem. Jak może zauważyłeś opisywałem tam podstawy, jak np. znaczenie poszczególnych pinów - jest to więc seria skierowana do osób, które zaczynają zabawę z tymi wyświetlaczami.

_________________
Zapraszam na bloga: http://www.embeddeddev.pl/



Ostatnio edytowano 20 lut 2018, o 10:31 przez Lagun_25, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lut 2018, o 00:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 mar 2016
Posty: 85
Pomógł: 5

przyznaje się nie wczytałem się w treść dokładnie , przejrzałem pobieżnie tylko nagłówki.
:) :(

_________________
I'M



Ostatnio edytowano 20 lut 2018, o 00:32 przez robertomic, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lut 2018, o 00:31 
Offline
Użytkownik

Dołączył(a): 28 cze 2014
Posty: 37
Lokalizacja: Gdańsk
Pomógł: 0

O, widzę, że Panowie mnie wyprzedzili z odpowiedzią :D Zealota, dzięki za miłe słowa, cieszę się, że może się przydać ;)

_________________
Zapraszam na bloga: http://www.embeddeddev.pl/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lut 2018, o 10:05 
Offline
Użytkownik

Dołączył(a): 23 sty 2014
Posty: 1080
Pomógł: 73

Witam,
świetny blog kolego :) właśnie zaczynam przygodę z STM32, takie podstawowe informację sa bardzo przydatne :)
I widzę że kolega porusza temat freeRTOS-a, fantastycznie :)
Dzięki za podzielenie wiedzą :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lut 2018, o 10:41 
Offline
Użytkownik

Dołączył(a): 06 maja 2016
Posty: 28
Pomógł: 2

Bardzo przyjemny poradnik, fajny blog. Dużo treści mało lania wody. Tylko tak dalej.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lut 2018, o 16:31 
Offline
Użytkownik

Dołączył(a): 28 cze 2014
Posty: 37
Lokalizacja: Gdańsk
Pomógł: 0

Dzięki chłopaki :) Fajnie, że się podoba i się przyda. Jarecki, co do freeRTOS to podejrzewałem, że może wzbudzić zainteresowanie. Sam jakiś czas temu zaczynałem z nim zabawę i wydaje mi się, że brakuje takiego przewodnika - dlatego postanowiłem go stworzyć :) Niestety całość będzie pojawiała się stopniowo i jeszcze przez długi czas, więc trzeba będzie uzbroić się w cierpliwość.

_________________
Zapraszam na bloga: http://www.embeddeddev.pl/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lut 2018, o 18:39 
Offline
Użytkownik

Dołączył(a): 23 sty 2014
Posty: 1080
Pomógł: 73

Lagun_25 napisał(a):
Dzięki chłopaki :) Fajnie, że się podoba i się przyda. Jarecki, co do freeRTOS to podejrzewałem, że może wzbudzić zainteresowanie. Sam jakiś czas temu zaczynałem z nim zabawę i wydaje mi się, że brakuje takiego przewodnika - dlatego postanowiłem go stworzyć :) Niestety całość będzie pojawiała się stopniowo i jeszcze przez długi czas, więc trzeba będzie uzbroić się w cierpliwość.


Oj wzbudza zainteresowanie, wzbudza :) wielu moich znajomych zajmujących się mikrokontrolerami zgłębia tajniki RTOS-a :) Z tego co zdążyłem się zorientować, to nie sztuką jest zrozumieć co to są taski, semafory, kolejki tylko zbudowanie na bazie tej wiedzy programu, w którym jest dobra i sensowana komunikacja między taskami :) Ale na razie raczkuję w tym temacie :)

A na Twoim blogu przeczytałem wszystkie tematy i sa bardzo ciekawe, pisane zwięźle i widać że taki porządek ogólnie panuje w tresciach :) Kawał dobrej roboty :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lut 2018, o 09:33 
Offline
Użytkownik
Avatar użytkownika

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

osobiście używam czesto HD44780 z STM32 zasilanych 5V bez translacji napięć , korzystając z pinów 5V Tolerant
co bardzo ułatwia życie :)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lut 2018, o 10:11 
Offline
Użytkownik

Dołączył(a): 28 cze 2014
Posty: 37
Lokalizacja: Gdańsk
Pomógł: 0

Tylko w prototypach czy końcowych urządzeniach także? :) o ile dobrze wiem, to są tam tylko diody zabezpieczające i jakoś nigdy im na tyle nie ufałem (może niepotrzebnie), żeby polecić takie rozwiązanie na blogu.

_________________
Zapraszam na bloga: http://www.embeddeddev.pl/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lut 2018, o 18:53 
Offline
Użytkownik
Avatar użytkownika

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

wiesz zarówno w proto , jak i urządzeniach finalnych ... oczywiście zabezpieczam się w banalny sposób gdyż
wymuszam na LCD tryb tylko zapisu do .... RW = GND , a piny 5V tolerant myslisz że w jakim celu robią ??
jest spora liczba urządzeń w tym LCD , Termometry itd ... które pracują na napięciu 5V a jakoś trzeba je do procka podłaczyć
i naprawdę nic mu się nie stanie bo właśnie w takim celu są :)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lut 2018, o 19:33 
Offline
Użytkownik

Dołączył(a): 28 cze 2014
Posty: 37
Lokalizacja: Gdańsk
Pomógł: 0

W takim wypadku jasne, nie ma potrzeby translacji, nawet taki sposób podałem na blogu. Myślałem, że miał Pan na myśli komunikację dwukierunkową z wykorzystaniem pinów 5v tolerant :) Dzięki za odpowiedź, teraz będę chętniej wykorzystywał te piny z tolerancją :)

_________________
Zapraszam na bloga: http://www.embeddeddev.pl/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lut 2018, o 20:37 
Offline
Użytkownik
Avatar użytkownika

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

Lagun_25 napisał(a):
Myślałem, że miał Pan na myśli komunikację dwukierunkową z wykorzystaniem pinów 5v tolerant


w przypadku HD44780 widzisz sens odczytu z z wyświetlacza ?? czy KS108 bo ja nie ... wysyłam tylko dane które ma wyświetlać :)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lut 2018, o 20:56 
Offline
Użytkownik

Dołączył(a): 28 cze 2014
Posty: 37
Lokalizacja: Gdańsk
Pomógł: 0

Przez komunikację dwukierunkową miałem na myśli obsługę z odczytem flagi zajętości. Z HD44780 nigdy nie miałem takiej potrzeby, ale gdzieś się spotkałem, że w przypadku małych wyświetlaczy, np. 2x16 pozostała pamięć DDRAM była wykorzystywana do zapisu i odczytu.

_________________
Zapraszam na bloga: http://www.embeddeddev.pl/



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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