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 168656 366
REKLAMA
  • #151 5232068
    pubus
    Poziom 30  
    Posty: 1289
    Pomógł: 138
    Ocena: 31
    Masz dwie opcje...
    Pierwsza to podpięcie sprzętowego SPI do LCD i SD...
    Linie MISO, MOSI, CLK są wspólne natomiast dwie linie CS...
    Jedna dla SD druga dla LCD... chyba wiadomo o co chodzi...
    Druga opcja to programowe SPI na zupełnie innych pinach...
    Bierzesz potrzebne ci funkcje z opracowania C. Kranza...
    Musisz teraz tylko przerobić inicjalizację spi sprzętowego na inicjalizację pinów do programowej wersji...
    No i funckje która, że tak powiem na najniższym poziomie odpowiada za wysyłanie bajtów, przerobić na programowe wysyłanie...
    Co do wstawek w asm to wszystkie wywaliłem i przerobiłem na C...
  • REKLAMA
  • #152 5232111
    markosik20
    Poziom 33  
    Posty: 2261
    Pomógł: 208
    Ocena: 147
    Do LCD wystarczy linia MOSI, to SD wystarczy linia MISO (+ jedna programowa do zapisu danych na kartę jak ktoś wykorzystuje). Wspólny jest CLK, potrzebne jeszcze są dwa piny na CS do karty i LCD.
    Taki układ połączeń pozwala na bezpośrednie wysyłanie danych (odpowiednio wcześniej przygotowanych) z karty SD do LCD. uK zachowuje się wtedy jak pamieć FIFO ("przepycha" dane z SD do LCD). W ten sposób uzyskałem pseudo filmik :wink:.

    arus85lbn napisał:
    .....nie ma nigdzie zadnego kodu a bez tego jakos nie wiem jak zaczac.

    Jak nie masz jak uruchommiłeś już ten LCD :wink:.
  • #153 5232239
    arus85lbn
    Poziom 12  
    Posty: 50
    No uruchomilem ale wyswietlacz mam podpiety do innych pinow niz karte SD :) w sumie latwiej by mi bylo przerobic chyba sam program czyli dorobic to programowe SPI bo wtedy nie musialbym juz plytki robic od nowa tylko czy faktycznie z tym programowym SPI na innych pinach bedzie dzialalo tak samo szybko jak przy podpietym LCD i SD do tych samych pinow?
  • #154 5232298
    markosik20
    Poziom 33  
    Posty: 2261
    Pomógł: 208
    Ocena: 147
    arus85lbn napisał:
    .... tylko czy faktycznie z tym programowym SPI na innych pinach bedzie dzialalo tak samo szybko jak przy podpietym LCD i SD do tych samych pinow?


    Programowo tak samo :wink:. Podpinając pod sprzętowy SPI kartę i SD jesteś w stanie osiągnąć 8Mbit/s JAK WYKORZYSTASZ SPRZĘTOWY PRZESYŁ (możesz sobie obliczyć ile teoretycznie będzie trwało wypełnienie piksel po pikselu tego LCD).
  • #155 5249255
    arus85lbn
    Poziom 12  
    Posty: 50
    Przetlumaczylem kod z oblsuga wyswietlacza z ASM do C ale chyba cos mam zle bo wyswietlacz nie chce dzialac. Prosilbym o sprawdzenie kodu i wykrycie ewentualnych bledow. Chyba ze ktos bedzie tak mily i podesle gotowy kod w C to wtedy sam przeanalizuje sobie co mam nie tak ;)

    
    
    #define rs1	sbi(PORTB,1)
    #define rs0	cbi(PORTB,1)	
    #define res1	sbi(PORTB,0)	
    #define res0	cbi(PORTB,0)	
    #define cs1	sbi(PORTD,7)	
    #define cs0	cbi(PORTD,7)	
    #define clk1	sbi(PORTB,5)	
    #define clk0	cbi(PORTB,5)	
    #define dat1	sbi(PORTB,3)	
    #define dat0	cbi(PORTB,3)	
    
    
    
    
    volatile unsigned int init1[2]={0xfdfd, 0xfdfd}, init2[10]={0xef00, 0xee04, 0x1b04, 0xfefe, 0xfefe, 0xef90, 0x4a04, 0x7f3f, 0xee04, 0x4306},
    						init3[20]={0xef90, 0x0983, 0x0800, 0x0baf, 0x0a00, 0x0500, 0x0600, 0x0700, 0xef00, 0xee0c,
    								0xef90, 0x0080, 0xefb0, 0x4902, 0xef00, 0x7f01, 0xe181, 0xe202, 0xe276, 0xe183}, init4[3]={0x8001, 0xef90, 0x0000};
    
    
    
    
    void init_display()
    {
    	res0;
    	sbi (DDRB,0);
    	sbi (DDRB,3);
    	cs1;
    	sbi (DDRD,7);
    	clk0;
    	sbi (DDRB,5);
    	rs1;
    	sbi (DDRB,1);
    	
    	SPCR = (1<<MSTR)|(1<<SPE);//|(1<<SPR0)|(1<<SPR1);  // enable SPI interface
        SPSR = 1;                   // set double speed 
    	
    	_delay_ms(1);
    	res1;
    	
    	send_comm16(init1[0]);
    	send_comm16(init1[1]);
    	_delay_ms(100);
    	for (int i=0; i<10; i++){
    		send_comm16(init2[i]);
    	}
    	_delay_ms(7);
    	for (int i=0; i<20; i++){
    		send_comm16(init3[i]);
    	}
    	_delay_ms(50);
    	send_comm16(init4[0]);
    	send_comm16(init4[1]);
    	send_comm16(init4[2]);
    	_delay_ms(60);
    	
    	cs0;
    	
    }
    
    
    void send_comm(unsigned int data)
    {
    	cs10
    	rs1;
    	res1;
    	spi_send(data);
    }
    
    void send_comm16 (unsigned int data)
    {
    	send_comm((data>>8));
    	send_comm(data);
    }
    
    void send_data(unsigned int data)
    {
    	cs0;
    	rs0;
    	res1;
    	spi_send(data);
    }
    
    void send_data16 (unsigned int data)
    {
    	send_data((data>>8));
    	send_data(data);
    }
    
    void spi_send(unsigned char data)
    {
    	cs0;
    	sbi(SPCR,SPE);
    	SPDR = data;
    	while(!(SPSR & (1<<SPIF))){}
    	//cs0;
    }
  • #156 5249314
    greatlukas
    Poziom 14  
    Posty: 122
    Pomógł: 3
    Ocena: 7
    Ja robiłem to tak:
    
    #define SPI_SS				0		// potrzebne do pracy w trybie master
    #define SPI_SCK				1		// CLK
    #define SPI_DO				2		// MOSI
    #define SPI_DI				3		// MISO
    
    #define SPI_PORT	PORTB
    
    #define S_SPI_SS	SPI_PORT|=_BV(SPI_SS)
    #define C_SPI_SS	SPI_PORT&=~_BV(SPI_SS)
    #define S_SPI_SCK	SPI_PORT|=_BV(SPI_SCK)
    #define C_SPI_SCK	SPI_PORT&=~_BV(SPI_SCK)
    #define S_SPI_DO	SPI_PORT|=_BV(SPI_DO)
    #define C_SPI_DO	SPI_PORT&=~_BV(SPI_DO)
    #define S_SPI_DI	SPI_PORT|=_BV(SPI_DI)
    #define C_SPI_DI	SPI_PORT&=~_BV(SPI_DI)
    
    void lcd_init()
    {
    
        LCD_Disable;    	// deselect Display
        C_LCD_RESET;        // display reset
        C_SPI_SCK;          // set SCK lo
        LCD_CMD;           // start with RS=high
    	DDRB|=_BV(LCD_RESET)|_BV(SPI_DO)|_BV(LCD_CS)|_BV(SPI_SS)|_BV(LCD_CS)|_BV(SPI_SCK)|_BV(LCD_RS);
    
        PORTB|=_BV(SPI_DI);         // enable pull up of MISO to avoid floating input
    
        // setup serial data interface 
        // select clock phase positive going in middle of data
        // master mode
        // enable SPI
        // speed is CPUclock/2
    
    	SPCR=(1<<MSTR) | (1<<SPE); // Master Mode,  Enable SPI, fCPU/2 clock
        SPSR=(1<<SPI2X);
    
    	_delay_ms(1);
        S_LCD_RESET;    // release reset
    
    	SPSR=0;	// clear status register
    
    
    // sending CMD
        LCD_Enable;    //select Display
        LCD_CMD;    // set RS line (CMD)
    
    	uint8_t i;
    	uint8_t *p;
    //INIT1
    {
    	uint8_t INIT[]= { 0xFD, 0xFD, 0xFD, 0xFD};
    	p=INIT;
    	for(i=sizeof(INIT);i>0;i--)
    		SPI_write(*p++);
    	_delay_ms(10);
    	_delay_ms(10);
    	_delay_ms(10);
    	_delay_ms(10);
    	_delay_ms(10);
    }
    //INIT2
    {
    	uint8_t INIT[]={0xEF, 0x00, 0xEE, 0x04, 0x1B, 0x04, 0xFE, 0xFE, 0xFE, 0xFE,
    					0xEF, 0x90, 0x4A, 0x04, 0x7F, 0x3F, 0xEE, 0x04, 0x43, 0x06};
    	p=INIT;
    	for(i=sizeof(INIT);i>0;i--)
    		SPI_write(*p++);
    	_delay_ms(7);
    }
    //INIT3
    {
    	uint8_t INIT[]= { 0xEF, 0x90, 0x09, 0x83, 0x08, 0x00, 0x0B, 0xAF, 0x0A, 0x00,
    					  0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 0xEF, 0x00, 0xEE, 0x0C,
    					  0xEF, 0x90, 0x00, 0x80, 0xEF, 0xB0, 0x49, 0x02, 0xEF, 0x00,
    					  0x7F, 0x01, 0xE1, 0x81, 0xE2, 0x02, 0xE2, 0x76, 0xE1, 0x83};
    	p=INIT;
    	for(i=sizeof(INIT);i>0;i--)
    		SPI_write(*p++);
    	_delay_ms(10);
    	_delay_ms(10);
    	_delay_ms(10);
    	_delay_ms(10);
    	_delay_ms(10);
    }
    //INIT4
    {
    	uint8_t INIT[]= {0x80, 0x01, 0xEF, 0x90, 0x00, 0x00};
    	p=INIT;
    	for(i=sizeof(INIT);i>0;i--)
    		SPI_write(*p++);
    }
    	
    	LCD_Disable;
    //	lcd_clrscr();
    }
    
    void lcd_wrcmd(uint8_t cmd)
    {
        LCD_Enable;    //select Display
        LCD_CMD;    // set RS line (CMD)
    	SPI_write(cmd);
    	LCD_Disable;
    }
    
    void lcd_wrdat(uint8_t data)
    {
    	LCD_Enable;    // select Display
        LCD_DATA;    // clear RS line
    	SPI_write(data);
    	LCD_Disable;
    }
    
    void lcd_wrcmd16(uint16_t dat)
    {
      lcd_wrcmd((dat>>8));
      lcd_wrcmd(dat);
    }
    
    void lcd_wrdat16(uint16_t dat)
    {
      lcd_wrdat(dat>>8);
      lcd_wrdat(dat);
    }
    
    void SPI_write(uint8_t bajt)
    {
        	SPDR=bajt;       //load byte in SPI data register
    	    while(!(SPSR&(1<<SPIF)));
    }
    
  • #157 5249522
    arus85lbn
    Poziom 12  
    Posty: 50
    Poprawilem swoje funkcje zgodnie z Twoimi i dalej lipa ;/ Rozumiem ze
    LCD_Disable oznacza niski stan na linii CS a C_LCD_RESET to stan niski na linii reset? Wyswietlacz mam podlaczony do MOSI i do SCK jesli chodzi o samo SPI w procku natomiast CS, RESET i RS mam juz na oddzielnych pinach, chyba moze tak byc?
  • REKLAMA
  • #158 5249538
    greatlukas
    Poziom 14  
    Posty: 122
    Pomógł: 3
    Ocena: 7
    Zapomniałem dodać :/
    
    #define LCD_CS	PB6
    #define LCD_RESET	PB4
    #define LCD_RS	PB5
    #define LCD_PWM	PB7
    
    
    
    #define S_LCD_RESET PORTB|=(1<<LCD_RESET)
    #define C_LCD_RESET PORTB&=~(1<<LCD_RESET)
    #define S_LCD_SCK PORTB|=_BV(LCD_SCK)
    #define C_LCD_SCK PORTB&=~_BV(LCD_SCK)
    #define S_LCD_MISO PORTB|=_BV(LCD_MISO)
    #define C_LCD_MISO PORTB&=~_BV(LCD_MISO)
    
    #define LCD_CMD		PORTB|=_BV(LCD_RS)
    #define LCD_DATA	PORTB&=~_BV(LCD_RS)
    #define LCD_Disable	PORTB|=_BV(LCD_CS)
    #define LCD_Enable	PORTB&=~_BV(LCD_CS)
    
  • #159 5249561
    arus85lbn
    Poziom 12  
    Posty: 50
    No teraz co innego :) Mialem na odwrot linie CS. Dzieki!!

    Dodano po 17 [minuty]:

    A ile klatek na sekunde udalo wam sie wyciagnac przy rezonatorze 16MHz? Ja przetestowalem wyswietlacz wrzucajac do niego kolejno 100 roznego koloru tła i wyszlo mi ok 7 klatek/sek. Na filmik chyba faktycznie troche za malo.
  • #160 5356077
    Krzysiek_1993
    Poziom 12  
    Posty: 43
    Są trzy rodzaje tego wyświetlacza:
    Sharp
    Hitachi
    Epson

    Mi udało się dostać Epsona oryginał z Simensa S65
    Czy będę musiał go inaczej programować niż tego Sharpa (tego który można kupić na allegro.pl)?
    Jeśli tak to duży będzie problem?
  • #161 5356957
    don diego
    Poziom 32  
    Posty: 1557
    Pomógł: 165
    Ocena: 63
    Komendy są zapewne inne. Na stronie Kranza jest przykładowy soft dla trzech rodzajów wyświetlaczy.
  • #162 5382845
    fiskusmati
    Użytkownik obserwowany
    Posty: 769
    Pomógł: 18
    Ocena: 25
    jak sie nazywają tego typu wyswietlacze dajcie jakiś link z allegro, do 50zł

    Dodano po 44 [sekundy]:

    ja mam wyswietlacz kolorowy, dotykowy od nawigacjii 3,5 cala moze sie nadać?
  • REKLAMA
  • #163 5382915
    Freddy
    Poziom 43  
    Posty: 19997
    Pomógł: 1394
    Ocena: 2811
    fiskusmati napisał:
    jak sie nazywają tego typu wyswietlacze dajcie jakiś link z allegro, do 50zł

    Dodano po 44 [sekundy]:

    ja mam wyswietlacz kolorowy, dotykowy od nawigacjii 3,5 cala moze sie nadać?

    Jaki masz typ tego wyświetlacza ?
  • #164 5384322
    fiskusmati
    Użytkownik obserwowany
    Posty: 769
    Pomógł: 18
    Ocena: 25
    nie wiem składa się z pojedynczych pixeli czyba lcd?
  • #165 5384748
    Freddy
    Poziom 43  
    Posty: 19997
    Pomógł: 1394
    Ocena: 2811
    możesz zrobić skan od tyłu, tam gdzie s napisy i podesłać ?
  • #166 5385593
    fiskusmati
    Użytkownik obserwowany
    Posty: 769
    Pomógł: 18
    Ocena: 25
    Z-tyłu-wyświatlacza-naklejka:-----------------------------

    GP Innolux Display

    PTO35TNO1 V.6 AP03500016A1

    S/n 981F-0A1 0014S


    -Na-pasku-ktory-idzie-z/do-wyswietlacza:---------------------

    20000175-01
    FAXCONN
    080: .18 5
  • #167 5386391
    Konto nie istnieje
    Konto nie istnieje  
  • #168 5387826
    Freddy
    Poziom 43  
    Posty: 19997
    Pomógł: 1394
    Ocena: 2811
    Z tego wyświetlacza nic łatwo nie zrobisz. Dość skomlikowany sposób sterowania. Trzeba wysyłać sekwencje 320x3 x 240 dot. pikseli.
    Łatwo to można go jedynie sprzedać :):):)
  • #169 5391525
    fiskusmati
    Użytkownik obserwowany
    Posty: 769
    Pomógł: 18
    Ocena: 25
    mówisz o tym moim od nawigacjii?
  • #170 5394309
    Freddy
    Poziom 43  
    Posty: 19997
    Pomógł: 1394
    Ocena: 2811
    fiskusmati napisał:
    mówisz o tym moim od nawigacjii?

    Tak mówię o Twoim od nawigacji.
  • REKLAMA
  • #171 5506466
    Zumo
    Poziom 21  
    Posty: 471
    Pomógł: 14
    Ocena: 21
    Witam,
    Mam wyświetlacz z C65 ;)
    Numer: LM15SGFNZ15.
    Czy da się go podłączyć do układu z 1-ej strony?
    Czy potrzeba przeróbki?
    Jak tak to jakie?
    Z góry dzięki.
  • #172 5508777
    deska202
    Poziom 14  
    Posty: 122
    Ocena: 10
    witam czy ma moze ktos schemacik i wzór płytki pcb do tego wyswietlacza podłaczonego do atmegi i karty SD???
  • #173 5535994
    mały naukowiec
    Poziom 20  
    Posty: 434
    Pomógł: 8
    Ocena: 8
    Witam
    Mam bibliotekę (lcd-siemens_s65_ls020_c.lbx) z tej ruskiej strony do obsługi tego lcd od s65 w bascomie, ale wie ktoś, gdzie jest opis do tej biblioteki jak sterować, lub wytłumaczyć jak się nią posługiwać, bo po rusku akurat czytać nie umiem :)
    Z góry dzięki :D
  • #174 5537617
    deska202
    Poziom 14  
    Posty: 122
    Ocena: 10
    witam czy ma moze ktos schemacik i wzór płytki pcb do tego wyswietlacza podłaczonego do atmegi i karty SD???
  • #175 5558484
    rake
    Poziom 12  
    Posty: 46
    Ocena: 1
    Na stronce http://cprime.110mb.com/lesson/0201/1-6.php
    zauważyłem sekwencje do wyłączenia.
    Nie testowałem zbyt długo, ale wygląda na to, że działa ;)

    0xEF, 0x00, 0x7E, 0x04, 0xEF, 0xB0, 0x5A, 0x48,
    0xEF, 0x00, 0x7F, 0x01, 0xEF, 0xB0, 0x64, 0xFF,
    0x65, 0x00, 0xEF, 0x00, 0x7F, 0x01, 0xE2, 0x62,
    0xE2, 0x02, 0xEF, 0xB0, 0xBC, 0x02, 0xEF, 0x00,
    0x7F, 0x01, 0xE2, 0x00, 0x80, 0x00, 0xE2, 0x04,
    0xE2, 0x00, 0xE1, 0x00, 0xEF, 0xB0, 0xBC, 0x00,
    0xEF, 0x00, 0x7F, 0x01
  • #176 5583296
    rake
    Poziom 12  
    Posty: 46
    Ocena: 1
      lcd_wrcmd16(0xEF90); //65k colors
      lcd_wrcmd16(0x0400);
      lcd_wrcmd16(0x0000);
    
      lcd_wrcmd16(0xEF90);
      lcd_wrcmd16(0x0401); //8 colors
      lcd_wrcmd16(0x0000);
    
      lcd_wrcmd16(0xEFB0);
      lcd_wrcmd16(0x4903); //negative
      lcd_wrcmd16(0xEF90);
      lcd_wrcmd16(0x0000);
    
      lcd_wrcmd16(0xEFB0);
      lcd_wrcmd16(0x4902); //positive
      lcd_wrcmd16(0xEF90);
      lcd_wrcmd16(0x0000);
    
      lcd_wrcmd16(0xEF90); //scroll
      lcd_wrcmd16(0x11XX); //XX - offset
    
      lcd_wrcmd16(0xEF90); //partial scroll
      lcd_wrcmd16(0x0FSS); //SS-start
      lcd_wrcmd16(0x10WW); //WW-width
      lcd_wrcmd16(0x11XX); //XX - offset
    
      lcd_wrcmd16(0xEF90); //16 bit
      lcd_wrcmd16(0xE80F);
      
      lcd_wrcmd16(0xEF90); //8 bit
      lcd_wrcmd16(0xE801);
      
      lcd_wrcmd16(0xEF90); //display off
      lcd_wrcmd16(0x0040);
      
      lcd_wrcmd16(0xEF90); //display on
      lcd_wrcmd16(0x0000);
      
      lcd_wrcmd16(0xEF90); //display off white
      lcd_wrcmd16(0x0080);


    na 16MHz przy 8 bitach można wyciągnąć ok 20fps
    żeby nie było widać "rysowania" można wyłączyć lcd, wysłać dane, włączyć lcd
  • #177 5589500
    deska202
    Poziom 14  
    Posty: 122
    Ocena: 10
    mam prosbe czy mogłby ktos wrzucic te wszystkie kody i programy potrzebne do tego projektu. tak wszystko w jednej paczce zeby tylko zrzucic na up ??
  • #178 5593362
    rake
    Poziom 12  
    Posty: 46
    Ocena: 1
    Wszystko jest w temacie. Program stąd działa (wystarczy tylko zmienic piny pod swój uC)
  • #179 5658203
    Krzysiek_1993
    Poziom 12  
    Posty: 43
    @Zumo
    Z tego co mi się wydaje to ten z C65 jest krótszy.
    Jeśli chodzi o płytkę i schemat to nie trzeba nic przerabiać.
    Być może kod ze strony z pierwszego postu tego tematu po drobnym przerobieniu będzie się nadawał. Ale z tym to nie do mnie :(
  • #180 5774580
    anghan
    Poziom 2  
    Posty: 2
    rake napisał:
    Wszystko jest w temacie. Program stąd działa (wystarczy tylko zmienic piny pod swój uC)


    Który program "stąd" działa? Wziąłem wersje simple dla mojego wyświetlacza LS020xxx. Podmieniłem piny w lcd.h zmieniłem procesor w makefile na Atmegę16 i niestety nie działa mi. podpięcie mam takie jak jest napisane na stronce. Pytam bo zastanawiam się czy zepsułem wyświetlacz przy lutowaniu czy jednak możne to być co innego. W pierwszym poście w tym temacie była mowa o jakiś problemach.

    Z góry dzięki za informację, ponieważ uruchomienie tego wyświetlacza jest kluczowe dla mojego zaliczenia ;)


    EDIT: Udało się, problem był przy złym podpięciu liń SDK i MOSI. Trzeba je podpiąć do jedynych i niekonfigurowalnych pinów atmegii.

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