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

3510i SPI = Hard/Soft. Obsługa wyświetlacza przez sprzętowe SPI.

PiotrLotnik 16 Mar 2006 20:20 3646 6
REKLAMA
  • #1 2422616
    PiotrLotnik
    Poziom 15  
    Posty: 207
    Pomógł: 2
    Ocena: 2
    Witam.
    Bawie się od tygodnia wyświetlaczem 3510i, programuje go w BASCOM na MEGA16.

    Do tej pory wszystko działa, tylko jak zmieniam z
    Config Spi = Soft , Din = Pinb.6 , Dout = Portb.5 , Ss = None , Clock = Portb.7

    na sprzetowe

    Config Spi = Hard , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 4

    To wtopa, czyli wyświetlacz tobi się biały, po jakimś czasie zapala się kilka pikseli i tyle.

    Wysyłam dane na wyświetlacz tą procedurą.

    Sub Lcd_parameter(lparameter As Byte)
    Lcd_cs = 0
    Sclk = 0
    Sdata = 1
    Sclk = 1

    Spiinit
    'Spdr = Lparameter
    'Gosub Wait_spi
    Spiout Lparameter , 1
    Lcd_cs = 1
    End Sub
    '*******************************************************************************
    Sub Lcd_command(lcommand As Byte)
    Lcd_cs = 0
    Sclk = 0
    Sdata = 0
    Sclk = 1

    Spiinit
    'Spdr = Lcommand
    'Gosub Wait_spi
    Spiout Lcommand , 1
    Lcd_cs = 1
    End Sub

    'Wait_spi:
    'sbis SPSR,SPIF
    'rjmp Wait_spi
    'ret

    Próbowałem też przez wpisywanie do Spdr danych ale tez nie działa.
    Na SPI = Soft wyświetlacz wolno dziła i widać jak się rysują obrazki :(

    Czy ktoś obsługuje ten wyświetlacz przes sprzętowe SPI ??
    Pozdrawiam
    Piotr


    Problem już rozwiązałem wstawką z asmblera

    Sub Lcd_parameter(lparameter As Byte)
    Lcd_cs = 0
    cbi SPCR,SPE ';disable SPI
    sbi PORTB,PB5 ';set MOSI High

    sbi PORTB,PB7 ';SCK Hi
    cbi PORTB,PB7 ';SCK Lo
    sbi SPCR,SPE ';enable SPI
    Spdr = Lparameter
    Gosub Wait_spi
    Lcd_cs = 1
    End Sub
    '*******************************************************************************
    Sub Lcd_command(lcommand As Byte)

    Lcd_cs = 0
    cbi SPCR,SPE ';disable SPI
    cbi PORTB,PB5 ';clear MOSI
    sbi PORTB,PB7 ';SCK Hi
    cbi PORTB,PB7 ';SCK Lo
    sbi SPCR,SPE ';enable SPI
    Spdr = Lcommand
    Gosub Wait_spi
    Lcd_cs = 1
    End Sub
  • REKLAMA
  • #2 2452840
    slawko_k
    Poziom 35  
    Posty: 2931
    Pomógł: 254
    Ocena: 239
    witam.
    jak bawialem sie wyswietlaczem od 3310 to na spi programowym mi chodzilo a na sprzetowym nie.
    niestety nie wiem w czym byl problem. mozliwe ze jest jakis bug w poleceniu config spi w bascomie
  • REKLAMA
  • #3 2453099
    PiotrLotnik
    Poziom 15  
    Posty: 207
    Pomógł: 2
    Ocena: 2
    Może i w BASCOM jest jakiś błąd.

    Ja używam wyświetlacz 3310 i działa rewelacyjnie :)

    Ustawienia mam takie.

    Config Portb = Output 'communication port to LCD
    Config Spi = Hard , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 4

    Config Portc = Output
    Lcd_cmd Alias Portc.2 'Low for cmd mode
    Lcd_cs Alias Portb.1
    Lcd_res Alias Portb.0 'Low for reset


    'Tak wygkąda procedurka wysyłania Byte
    Spdr = &H00 : Gosub Wait_transmit

    'A tak sama wysyłka

    '************************************ SPI Transmition *****************************START
    Wait_transmit:
    sbis SPSR,SPIF
    rjmp Wait_Transmit
    ret


    Tak o to wygląda u mnie i działa.
  • REKLAMA
  • #4 2455405
    slawko_k
    Poziom 35  
    Posty: 2931
    Pomógł: 254
    Ocena: 239
    a zapytam z ciekawosci ile zajmuje pamieci zajmuje ci caly kerna tego lcd od 3510i i w czym przechowujesz obrazy?
    mi w 3310 1 ekran zajmowal chyba 504B czyli 1/16 zawartosci pamieci atmegi8
  • REKLAMA
  • #5 2457014
    PiotrLotnik
    Poziom 15  
    Posty: 207
    Pomógł: 2
    Ocena: 2
    w 3510i jeden pixel to 1 byte (255 kolorów) tak więc cały ekran zajmuje 98*68= 6664 byte.
    Jedno kolorowe obrazki zajmować będą tyle co 833 byte plus obsługa tego typu rozwiązania.

    Samo pisanie na tym wyświetlaczu zajmuje tyle co na 3310 plus obsługa.

    Wyświetlacz mam podłączony do M32 i w planach mam możliwość podłączenia karty MMC oraz pamięć 24c1024.

    Pozdrawiam
    Piotr
  • #6 4424816
    darrrrek
    Poziom 22  
    Posty: 733
    Pomógł: 4
    Ocena: 98
    W wielu postach czytalem ze w noki 3510i jeden pixel = 1 bajt (255 kolorów) a na wielu tez zagranicznych stronach znowu czytalem ze nokia 3510i posiada ~4065 kolorów jak to jest ???
  • #7 4425772
    Ch.M.
    Poziom 27  
    Posty: 1009
    Pomógł: 62
    Ocena: 15
    Tak wyświetlacz jest 12bitowy ale przecież możesz na nim rysować używając także 1bitu a nie całej palety barw :)

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy problemów z obsługą wyświetlacza Nokia 3510i programowanego w BASCOM na mikrokontrolerze MEGA16, szczególnie przy przejściu z programowego SPI (Soft SPI) na sprzętowe SPI (Hard SPI). Przy konfiguracji sprzętowego SPI wyświetlacz pozostaje biały, a po chwili pojawiają się pojedyncze piksele, co wskazuje na błędną komunikację. Jeden z uczestników sugeruje możliwy błąd w poleceniu Config SPI w BASCOM. Przykład poprawnej konfiguracji sprzętowego SPI dla wyświetlacza Nokia 3310 z użyciem BASCOM pokazuje ustawienia portów, tryb Master, kolejność bitów MSB, polaryzację i fazę zegara oraz procedurę oczekiwania na zakończenie transmisji. W dyskusji poruszono także kwestie pamięci zajmowanej przez obrazy na wyświetlaczu 3510i, gdzie jeden piksel to 1 bajt (255 kolorów), a rozdzielczość ekranu to 98x68 pikseli, co daje około 6664 bajtów pamięci. Wspomniano, że wyświetlacz jest 12-bitowy, co pozwala na około 4065 kolorów, jednak można też używać trybu 1-bitowego. Autor planuje rozszerzyć projekt o obsługę karty MMC i pamięci 24c1024.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA