logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

LCD od S65 sterowany przez ATmega16.

pmichniewski 28 Sty 2006 15:11 168713 366
REKLAMA
  • Witam,

    udało mi się dzisiaj uruchomić ten wyświetlacz ! (model LS020 kupiony na Allegro) Co prawda na razie potrafi jedynie mrygać na różne kolory, ale jestem na dobrej drodze. Początkowo miałem problemy z uruchomieniem, ale po znalezieniu błędów ruszył bez problemu.

    Schematy podłączenia oraz sposób programowania pochodzi ze strony
    http://www.superkranz.de/christian/S65_Display/DisplayIndex.html

    Od razu mówię, że wyświetlacz lutowany był zwykłą transformatorówką... Strasznie się przy tym napociłem, ale wyszło całkiem nieźle i nawet działa :D

    Jak tylko uda mi się wyświetlić na nim coś sensownego, od razu dam znać.
    Załączniki:
    • LCD od S65 sterowany przez ATmega16. PICT0005_800.JPG (86.35 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • LCD od S65 sterowany przez ATmega16. PICT0004_800.JPG (132.68 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • LCD od S65 sterowany przez ATmega16. PICT0003.JPG (133.87 KB) Musisz być zalogowany, aby pobrać ten załącznik.

    Fajne? Ranking DIY
    O autorze
    pmichniewski
    Poziom 18  
    Offline 
    Specjalizuje się w: mikrokontrolery
    pmichniewski napisał 242 postów o ocenie 5, pomógł 22 razy. Mieszka w mieście Starachowice / Warszawa. Jest z nami od 2005 roku.
  • REKLAMA
  • REKLAMA
  • #3 2230303
    pmichniewski
    Poziom 18  
    Posty: 242
    Pomógł: 22
    Ocena: 5
    Układ to typowa płytka z ATmega. Zmontowałem ją na płytce uniwersalnej zakupionej ok. 4 lat temu. Płytka miała służyć do zmontowania komputerka na Z80, ale mi się znudziło. Ostatnio ją reaktywowałem i wymieniłem Z80 na ATmega, potem podłączyłem parę peryferiów (przyciski, wyświetlacz od Bolka), potem LCD od 3310, a teraz odpaliłem LCD od S65.
    Załączniki:
    • LCD od S65 sterowany przez ATmega16. PICT0006_800.JPG (146.5 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #4 2233338
    macio8888
    Poziom 22  
    Posty: 701
    Pomógł: 12
    Ocena: 18
    Ciekawy projekt:)
    Mógłbyś zamieścić schemat tego??
    macio8888
  • #5 2237190
    pmichniewski
    Poziom 18  
    Posty: 242
    Pomógł: 22
    Ocena: 5
    Schematu nie mam, gdyż mój "projekt" powstawał na bieżąco (co zresztą widać). Jeśli chodzi o podłączenie wyświetlacza, to informacje na ten temat znajdują się na stronie, którą podałem w pierwszym poście. Nie ma sensu ich tu powtarzać...

    Niedługo umieszczę zdjęcia z czymś sensowniejszym na wyświetlaczu, tylko dopracuję oprogramowanie, bo na razie to kawałek bardzo pomieszanego kodu

    Moderowany przez androot:

    Nie pisz postu pod postem! Uzyj przycisku "Zmień"



    Udało mi się przesłać na wyświetlacz obrazek. Program na komputerze wczytuje obrazek PNG i wysyła go po porcie szeregowym do procka, a on przekazuje go na wyświetlacz. Niestety port szeregowy jest bardzo powolny (obrazek przesyła się ok. minuty) i czasem zdarzają się błędy. Muszę nad tym popracować :). W niedługim czasie planuję przerobienie LCDproc (linuksowy program do raportowania stanu systemu na wyświetlacz) tak, by działał z moim urządzeniem.
    Załączniki:
    • LCD od S65 sterowany przez ATmega16. PICT0002_800.JPG (124.47 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • REKLAMA
  • #7 2238872
    pmichniewski
    Poziom 18  
    Posty: 242
    Pomógł: 22
    Ocena: 5
    Są, ale na razie pozostanę przy tym, co mam. Później i tak zamierzam się przesiąść na ARMy, więc nie ma sensu w to więcej inwestować. Poza tym wystarczy odpowiednio zaimplementować oprogramowanie do Atmela i ograniczyć komunikację z komputerem do minimum. Wolę napisać dobre oprogramowanie niż tłumaczyć się słabościami sprzętu. No i znalazłem też stos USB na ATmega, więc myślę, że przesiadka na razie nie będzie konieczna.

    Właśnie pracuję nad ulepszonym protokołem, który zawierać będzie kontrolę CRC, by uniknąć błędów (jak zwiększyłem jasność podświetlenia, pokazało się więcej błędów, gdyż przetwornica pracuje z częstotliwością zegara). Zastanawiam się, czy umieścić tu kod, ale mój program po stronie komputera jest napisany pod Linuksa, więc niewielu osobom może się przydać, a ten po stronie ATmega to tylko lekko przerobione oprogramowanie Christiana Kranza.
  • #8 2250325
    Zumo
    Poziom 21  
    Posty: 471
    Pomógł: 14
    Ocena: 21
    Fajny , ale ile za niego dales ?
  • #9 2251880
    pmichniewski
    Poziom 18  
    Posty: 242
    Pomógł: 22
    Ocena: 5
    Zumo napisał:
    Fajny , ale ile za niego dales ?


    47 zł + przesyłka.

    Dzisiaj trochę popracowałem i udało mi się zrobić prosty protokół z korekcją błędów CRC16 (przetwornica do podświetlania chodzi na podobnej częstotliwości, co port szeregowy, co przeszkadza w bezbłędnej transmisji). Muszę jeszcze nad nim popracować, ale chyba jednak zdecyduję się w końcu na zakup układu FT245BM, bo szeregowiec ma zbyt małą prędkość transmisji i się po prostu nie nadaje...
  • #10 2254070
    pmichniewski
    Poziom 18  
    Posty: 242
    Pomógł: 22
    Ocena: 5
    Witam,

    postanowiłem umieścić na Elektrodzie mój kod do obsługi wyświetlacza. Składa się z dwóch części:
    1. W katalogu avr_studio - projekt AVR Studio 4. Przerobiony kod Christiana Kranza z dodaną kalibracją częstotliwości wbudowanego oscylatora (nie udało mi się znaleźć w moim mieście kwarcu 7,37 MHz) oraz prostym protokołem transmisji. Wymaga dopracowania, dodania komentarzy itd., ale myślę, że jest w miarę zrozumiały. Oryginalnym autorem części programu jest Christian Kranz.
    2. W katalogu linux - prosty program do wysyłania obrazków PNG. Muszą to być obrazki o rozdzielczości 132x176 bez kanału alfa. Domyślnie wysyła na /dev/ttyS1. Zmiana parametrów pracy wymaga przerobienia źródeł - w tak wczesnej wersji trudno się spodziewać przyjaznego interfejsu :P. Program pisany pod Linuksa, ale da się go pewnie przerobić do działania pod Windows.

    Oczywiście na programy nie udzielam żadnej gwarancji. Jeśli uszkodzi Twój sprzęt, to nie jest mój problem :P
    Załączniki:
    • s65lcd.zip (90.86 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #12 3117728
    Artur k.
    VIP Zasłużony dla elektroda
    Posty: 25889
    Pomógł: 1279
    Ocena: 1699
    Witam

    Tak z ciekawości:

    Co da zmiana z RS na USB ?? przecież procek i tak posługuje sie RS, a ten układ FT245 to chyba przejściówka USB--->RS.

    Pozdrawiam
  • #13 3169527
    pmichniewski
    Poziom 18  
    Posty: 242
    Pomógł: 22
    Ocena: 5
    Artur k. napisał:
    Witam

    Tak z ciekawości:

    Co da zmiana z RS na USB ?? przecież procesor i tak posługuje sie RS, a ten układ FT245 to chyba przejściówka USB--->RS.

    Pozdrawiam


    USB -> 8-bit. Na szeregowcu uzyskam jedynie 115200 kbit/s. ATmega potrafi obsługiwać SPI z prędkością aż do 8Mbit/s (w praktyce mniej, choć i tak więcej, niż potrzeba do tego wyświetlacza), więc dzięki temu uzyskam nawet kilka klatek/s. Zresztą niestety projekt został wstrzymany z powodu braku czasu w wakacje (ach ten wrzesień...) aż do terminu nieustalonego...

    Jednak najprawdopodobniej w niedługim czasie pojawi się tu gra Pong zrobiona z wykorzystaniem tego wyświetlacza (o ile znajdę czas...).
  • #14 3541410
    adamusx
    Poziom 27  
    Posty: 977
    Pomógł: 94
    Ocena: 28
    pmichniewski jakim programem odczytywales dane obrazka i przesyłałes po RSie?
  • #15 3541755
    pmichniewski
    Poziom 18  
    Posty: 242
    Pomógł: 22
    Ocena: 5
    Napisałem własny. Kod źródłowy jest dołączony w paczce. Niestety działa tylko pod Linuksem.
  • #16 3542402
    vonteq666
    Poziom 13  
    Posty: 72
    Pomógł: 4
    Ocena: 1
    Mam pytanko:
    Czy kolega pmichniewski sprawdzał ten soft pod kątem wyświetlania liter na LCD? Chodzi mi o to, że podczas moich bojów z tym LCD pojawił się następujący problem, który przedstawiłem tutaj:
    https://www.elektroda.pl/rtvforum/topic688035.html
    Byłbym wdzięczny gdyby kolega mógł się ustosunkować do tego :)

    Pozdrawiam
  • #17 3543752
    pmichniewski
    Poziom 18  
    Posty: 242
    Pomógł: 22
    Ocena: 5
    Sprawdzę dokładnie wieczorem, ale na pewno pisałem literki na swoim wyświetlaczu i wszystko działało ok. Z tego, co pamiętam, używałem przy tym zmiany adresowania, ale głowy nie dam...
  • #18 3548730
    vonteq666
    Poziom 13  
    Posty: 72
    Pomógł: 4
    Ocena: 1
    Witam

    Problem został rozwiązany. Napisałem od nowa swoją bibliotekę i wszystko działa jak należy. Dziękuję i przepraszam za kłopot.

    Pozdrawiam
  • #19 3554862
    CNK
    Poziom 12  
    Posty: 60
    Ocena: 5
    Adrik, ale trochę to drogo wyszło:
    Mouse: 45 euros
    LCD+driver: 30 euros
  • #20 3558385
    vonteq666
    Poziom 13  
    Posty: 72
    Pomógł: 4
    Ocena: 1
    U mnie obrazek (*.bmp) wczytuje się lekko ponad sekundę, efektem czego jest taka oto panna :P :
    LCD od S65 sterowany przez ATmega16.
  • #21 3558452
    pmichniewski
    Poziom 18  
    Posty: 242
    Pomógł: 22
    Ocena: 5
    U mnie wczytuje się trochę dłużej, bo mam jakieś dziwne błędy w transmisji (zapewne dlatego, że nie mam kwarcu :) ) i muszę albo zmniejszyć prędkość transmisji albo dołożyć kontrolę błędów...
  • #22 3558479
    vonteq666
    Poziom 13  
    Posty: 72
    Pomógł: 4
    Ocena: 1
    A czy kolega wysyłając czeka na jakąś odpowiedź ze strony kontrolera? bo jeśli nie to być może uC nie wyrabia z przetwarzaniem danych i stąd te błędy.
  • #23 3559614
    the_one
    Poziom 13  
    Posty: 75
    Pomógł: 5
    Ocena: 20
    takie pytanko czy ten program ze strony Christiana Kranza jest w jakis sposob zalezny od zegara? bedzie dzialac na 8mhz? bo taki wyswitlacz moge kupic w serwisie a sklepu gdzie maja kwarce u mnie w okolicy nie ma ;)
  • #24 3561267
    vonteq666
    Poziom 13  
    Posty: 72
    Pomógł: 4
    Ocena: 1
    Ze tego co widziałem w źródłach to będzie działał na każdym zegarze, po prostu będzie działał wolniej na wolniejszym. Ja osobiście w celu optymalizacji kodu zamiast procedury oczekiwania w pętli wstawiłem kilka rozkazów "NOP" oszczędzając tym samym kilka cykli procesora :) tym niemniej jednak uzależniłem z lekka kod od współczynnika preskalera (MCU_CLOCK / SPI_CLOCK)
  • #25 3657772
    J_Bravo
    Poziom 28  
    Posty: 1373
    Pomógł: 36
    Ocena: 161
    vonteq666 napisał:
    U mnie obrazek (*.bmp) wczytuje się lekko ponad sekundę, efektem czego jest taka oto panna :P :


    ponad sekunde to nadal malo ...daleko do plynnej animacji ...
    czy komus udalo sie osiagnac kilka fps ??
  • #26 3662842
    Uszol 1990
    Poziom 29  
    Posty: 1570
    Pomógł: 41
    Ocena: 72
    interesuję mnie podłączenie jakiegoś wyświetlacza (wymiary 3cm x 3cm) chodzi mi o zrobienie prostego skanera na imprezki który będzie wyświetlał wzorki ruchome
    i chodzi i o to żeby wgrać np. 8 obrazków gif i żeby one się wyświetlały ewentualne sterowanie przyciskami i przez RS'a :)
    jest to możliwe ?
    pozdrawiam
  • #27 3663284
    pmichniewski
    Poziom 18  
    Posty: 242
    Pomógł: 22
    Ocena: 5
    Wyjaśnij dokładnie o co Ci chodzi, bo nie rozumiem. Do czego i jak chcesz ten wyświetlacz podłączyć i jaki to ma związek ze skanerem na imprezy ? Chcesz przepuszczać światło przez ten LCD ?
  • #28 3663324
    Uszol 1990
    Poziom 29  
    Posty: 1570
    Pomógł: 41
    Ocena: 72
    pmichniewski napisał:
    Chcesz przepuszczać światło przez ten LCD ?


    tak

    O to mi chodzi
    chcę zrobić taki projektor który będzie wyświetlał animacje z pamięci
    albo z kompa (najlepiej)
    nie chcę robić rotacyjnych wzorów bo jest to dość trudne a zrobić taką animacje to banał
    pozdrawiam
    a może macie jakieś lcd takie małe 3x3 żeby podpiąć pod tv-out ?
  • #29 3670910
    J_Bravo
    Poziom 28  
    Posty: 1373
    Pomógł: 36
    Ocena: 161
    animacje z pamieci ??

    Mi na atmega32 / 8MHz i sprzetowym SPI wyswietla jedna klatke na sekudne ...

    i chyba atmega wiecej nie pociagnie. Wyswietlacz o rozdzielczosci 176/132 i przy 32 bitowej palecie kolorow potrzebuje 743 Kb/klatke.

    Chcac zrobic plynna animacje trzeba minimum 20 klatek/s a to wymaga przeplywu 15Mb/s ....
  • #30 3671217
    Uszol 1990
    Poziom 29  
    Posty: 1570
    Pomógł: 41
    Ocena: 72
    nie musi być aż tak płynna :D
    1kl/s wystarczyło by :P
    pozdrawiam

Podsumowanie tematu

✨ Dyskusja dotyczy sterowania wyświetlaczem LCD Siemens S65 (model LS020) za pomocą mikrokontrolera ATmega16 oraz innych układów AVR i ARM. Autor projektu wykorzystał kod źródłowy Christiana Kranza, modyfikując go pod kątem kalibracji oscylatora i protokołu transmisji z kontrolą CRC16, aby poprawić stabilność komunikacji przez port szeregowy. Wątek porusza kwestie podłączenia wyświetlacza, zasilania podświetlenia (stosowanie przetwornic impulsowych, LM317, napięć 2.9V-3.3V), oraz problemów z prędkością transmisji danych i błędami wynikającymi z zakłóceń elektromagnetycznych. Dyskutowano o alternatywach dla RS232, takich jak USB z układem FT245BM, oraz o planach migracji na procesory ARM (np. LPC2103) dla zwiększenia wydajności i szybkości SPI (do 20-30 MHz).

Wielu uczestników dzieliło się doświadczeniami z wyświetlaniem grafik BMP i animacji, wskazując na ograniczenia prędkości transmisji i konieczność optymalizacji kodu (np. asembler, sprzętowe SPI, buforowanie danych z karty SD). Poruszono też temat konwersji obrazów do formatu zgodnego z wyświetlaczem (16-bitowa paleta kolorów 5R-6G-5B) oraz narzędzi do generowania tablic danych w C. Wspomniano o problemach z dostępnością elementów, takich jak tranzystory BSS84, BSS123, cewki indukcyjne oraz stabilizatory 3.3V, a także o projektach schematów i płytek PCB w Eagle.

Dyskusja obejmuje również praktyczne zastosowania, takie jak elektroniczne ramki na zdjęcia, wyświetlanie parametrów sprzętu, proste animacje, a nawet oscyloskop na bazie wyświetlacza S65. Użytkownicy wymieniali się linkami do filmów prezentujących efekty działania, kodów źródłowych i schematów. Podkreślono, że wyświetlacz działa poprawnie bez podświetlenia, przy zasilaniu 3.3V, a podświetlenie wymaga osobnego zasilania i sterowania PWM. Wskazano, że prędkość transmisji i stabilność działania zależą od taktowania mikrokontrolera, jakości protokołu komunikacji oraz zastosowanego sprzętu.

Podsumowując, projekt sterowania LCD S65 za pomocą ATmegi jest wykonalny, ale wymaga starannego doboru elementów, optymalizacji oprogramowania i odpowiedniego zasilania, a dla bardziej zaawansowanych zastosowań rekomendowane jest użycie szybszych mikrokontrolerów ARM i interfejsów SPI o wysokiej prędkości.
Wygenerowane przez model językowy.
REKLAMA