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

Podłączenie LCD IPS 0.96 ST7735S SPI do SEEED XIAO ESP32C6 –potrzebny schemat i kod

seeb 27 Sie 2025 21:26 1761 4
REKLAMA
  • #1 21646437
    seeb
    Poziom 13  
    Posty: 101
    Pomógł: 1
    Ocena: 5
    Robię projekt, który w zasadzie byłby gotowy gdyby nie fakt, że I2c okazał się zbyt wolny nawet przy odświeżaniu tylko części ekranu.

    Projekt generuje LTC Audio timecode, wyświetla timecode na wyświetlaczu i synchronizuje TC z zegarem z satelitów GPS.
    Niestety projekt działa poprawnie do ustawień 30fps (24,25,29.98,30fps włącznie z trybami NDF i DF) przy 50 i 60 klatkach zaczyna być problem z wyświetlaczem, który nie daje rady wyświetlać FF (zegary LTC SPMTE mają format hh:mm:ss:FF - gdzie FF to aktualnie zapisywana klatka). Do 38 daje radę wyświetlić.
    Projekt bazuje na łączności BLE 5.x i/lub ESP_NOW, wi-fi zależnie od definicji w konfiguracji. Łączy się z resztą i rozgłasza która jest godzina :D do 600ms a odbiorniki synchronizują ten czas jeśli opóźnienie ich zegara jest za duże.

    Używam w projekcie SEEED XIAO ESP32C6, DS3231, NEO-6M
    A0 mam zajęte przez audio out
    D4 i D5 zajęte jest przez i2c zegarem ds3231 (wcześniej też wyświetlacz oled 0.96)
    D6 i D7 zajęte jest przez serial dla danych GPS
    D1-D3 oraz D8-D10 jest wolne do użycia SPI niestety nie udało mi się na tych pinach znaleźć konfiguracji, która pozwoli to uruchomić.

    Odkryłem, że jeśli podłączam np pod UART i używam samej cyfry pinu wg opisu to GPS się nie łączy ale po zmianie pinów z 7 i 8 na D7 i D8 wszystko działa. to samo z I2c. Problem pojawia się z SPI bo trochę błądzę po omacku...

    wyswietlacz-lcd-ips-0-96-160x80px-spi
    modul-seeed-xiao-esp32-c6-wifi-6-bluetooth-5
    Do tej chwili nie udało mi się tego uruchomić z tą płytką.
    Czy ktoś może zamieścić jakich przydatny schemat podłączenia tego wyświetlacza na ST7735s z modułem Xiao esp32c6 i kawałek kodu który wyświetli cokolwiek na tym ekranie?
    Nie chcę jakiegoś gotowca co coś robi potrzebuję wybrnąć z problemu, który spędza mi sen z oczu. Niech coś wyświetli, cokolwiek a dalej sobie poradzę. Proszę brać pod uwagę zajętość pinów na płytce bo jest ich niewiele. Nie będę potrzebował np adresowania wyświetlacza bo to ostatnie urządzenie projektu więc nie trzeba sprawdzać, które to urządzenie jest na SPI.
    Z góry dzięki za pomoc.


    Linki są dla poglądu.

    https://www.tinytronics.nl/image/cache/catalo...0-pixels-spi-st7735s-3.3v-front-1500x1500.jpg to ekran
    https://www.sigmdel.ca/michel/ha/xiao/img/xiao_esp32c6_pinout_top.png to płytka ...
  • REKLAMA
  • #2 21647438
    inot
    Poziom 38  
    Posty: 3560
    Pomógł: 441
    Ocena: 802
    Nie wiem, czy ten opis coś pomoże Link.
    Przykład zastosowania: Link
  • REKLAMA
  • #3 21648359
    seeb
    Poziom 13  
    Posty: 101
    Pomógł: 1
    Ocena: 5
    Dla potomnych:
    
    //GND -> GND
    //VCC -> 3.3 V
    #define TFT_SCL       19  //SCK  //Pin D8  XIAO
    #define TFT_SDA      18  //MOSI //Pin D10 XIAO
    #define TFT_RES       21  //RES  //Pin D3  XIAO
    #define TFT_DC        2    //DC   //Pin D2  XIAO
    #define TFT_CS         1    //CS   //Pin D1  XIAO 
    //BLK -> 3.3 V
    
    Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_SDA, TFT_SCL, TFT_RES);
    


    Tematu jeszcze nie zamykam bo może jeszcze coś tu dorzucę.
    Reasumując UART i i2C działają na pinach D czyli tak jak pierwsza linia zaś SPI działa na GPIO. Taka dziwna specyfika tej płytki.
  • REKLAMA
  • #4 21648367
    inot
    Poziom 38  
    Posty: 3560
    Pomógł: 441
    Ocena: 802
    seeb napisał:
    Reasumując UART i i2C działają na pinach D czyli tak jak pierwsza linia zaś SPI działa na GPIO.

    Jak to zrozumieć?
    Taka sama konfiguracja podana jest w przynależnym pliku
    Załączniki:
    • pins_arduino.h (1.18 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #5 21689898
    seeb
    Poziom 13  
    Posty: 101
    Pomógł: 1
    Ocena: 5
    inot napisał:
    Taka sama konfiguracja podana jest w przynależnym pliku


    Problem w tym, że jak zawołasz pin RX,TX samymi cyframi 16,17 to płytka się nie przełącza i serial nie działa. Jeśli zawołasz D6,D7 to się przełącza i serial działa poprawnie.
    Spędziłem nad tym dużo za dużo czasu. Dla mnie było oczywiste, że 16,17 to to samo co D6 i D7 ale okazało się to nie prawdą... różnie się zachowuje płytka. A z racji tego, że zajęło mi to sporo czasu postanowiłem już nie grzebać dalej w specyfice płytki. Istotne było dla mnie, że ruszyłem do przodu.
    Dokładnie to samo zjawisko jest przy i2c.
REKLAMA