Hi,

Ik heb wat displays binnen gekregen 170x320 1.9-Inch en deze krijg ik niet werkend met een Teensy 4.0.
Verschillende manieren geprobeerd het display aan te sturen maar ik krijg geen beeld.

De achtergrond verlichting staat aan, dat is het probleem niet.
Ook heb ik als het goed is de standaard SPI pinnen grbruikt.

Eerst even het stukje code dat gebruik maakt van de Adafruit Library voor de gebruikte driver, welke een ST7789 is.
Alles wat volgen mij niet noodzakelijk is, heb ik er uit gehaald.
Er staad wat omschrijving bij in twee regels wat nummers en omschrijving van de pinnen betreft.
De Teensy-4 heeft de zelfde pinnen voor SPI als de Nano of de Uno, dit is volgens mij niet spannend, maar ik kan mij vergissen. ;)


#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_ST7789.h> // Hardware-specific library for ST7789
#include <SPI.h>

// OPTION 1 (recommended) is to use the HARDWARE SPI pins, which are unique
// to each board and not reassignable. For Arduino Uno: MOSI = pin 11 and
// SCLK = pin 13. This is the fastest mode of operation and is required if
// using the breakout board's microSD card.


// OR for the ST7789-based displays, we will use this call
//Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST);  // Adafruit omschrijving, maar op het display is het anders genoemd
//Adafruit_ST7789 tft = Adafruit_ST7789(CS, DC, SDA, SCL, RES);                        // <= Mijn display "pen" omschrijving en zoals ik het heb gebruikt

Adafruit_ST7789 tft = Adafruit_ST7789(10, 8, 11, 13, 7);                               // <= Zie de foto, 10-CS, 8-DC, 11-SDA, 13-SCL, 7-RES

float p = 3.1415926;

void setup(void) {
  Serial.begin(9600);
  Serial.print(F("Hello! ST77xx TFT Test"));

  // OR use this initializer (uncomment) if using a 1.47" 172x320 TFT:
  tft.init(170, 320);           // Init ST7789 172x320

  // SPI speed defaults to SPI_DEFAULT_FREQ defined in the library, you can override it here
  // Note that speed allowable depends on chip and quality of wiring, if you go too fast, you
  // may end up with a black screen some times, or all the time.
  //tft.setSPISpeed(40000000);

Hier drie foto's van mijn test opset, als eerste de pinnen van de Teensy-4.0
https://www.bramcam.nl/Diversen/ST7789-Teensy-Aansturing-01.png
.

Een tweede display dat ik ook geprobeerd heb.
https://www.bramcam.nl/Diversen/ST7789-Teensy-Aansturing-02.png
.

En zo zit het op het breadboard.
https://www.bramcam.nl/Diversen/ST7789-Teensy-Aansturing-03.png
.

Kunnen jullie zien in de code of de bedrading waar ik de fout in ga en daarom geen beeld krijg?

Dank en groet,
Bram

Hi,

Naast het breadboard hier op tafel lag nog een Teensy-LC te slingeren, zelfde pinning inprikken en draaien, mijn klomp breekt...

Aangepaste vraag, wat zou de oorzaak kunnen zijn dat het met een Teensy-4 niet werkt in grote lijnen?

Dank en groet,
Bram

Rare jongens die chinezen..

Het display heeft duidelijk SDA en SCL pinnen dus je zou dan een I2C interface verwachten. Maar blijkbaar is het toch een SPI met MOSI en SCLK.

Maar toch leuk dat het nu werkt.

Ik zou als eerste de init() naar de loop verplaatsen, er een sleep van 1 seconde achter zetten en dan de scoop op de SCK(SCL?) en MOSI(SDA?) lijnen zetten.

Gebeurt er uberhaupt iets? En is wat er gebeurd SPI of I2C?

@hardbass hieronder: Ik bedoel een delay na een (herhaalde) initialisatie, zodat je een repeteerend patroon krijgt wat je makkelijk op de scope zichtbaar kunt maken.

Jouw idee van verschil in timing is ook een goede, dat zou je makkelijk zien als je met de scope de signalen van de verschillende teensy's vergelijkt.

[Bericht gewijzigd door blurp op (43%)]

Hi,

deKees
De makers van deze display modules schijnen er een sport van te maken de pin omschrijving van displays steeds te veranderen.
Lekker inteligent... "how to irritate the customer"

Gisteren vlak voor ik plat ging, ook nog even de orginele Arduino Uno R4 WiFi getest en zijn broertje Uno R4 Minima, beide geven veel beeldfouten.
Dat vraagt om onderzoek met een scoop, daar is vandaag echter geen tijd voor, misschien vanavond als ik niet te gaar van het werken ben. :-)

blurp
Als ik vanavond nog wat testen doe, neem ik jouw opmerking ook even mee.

Dank weer en gegroet,
Bram

Misschien is er een verschil in snelheid tussen die chips? Dat de langzamere chip net genoeg tijd geeft aan het display om aan de timing te voldoen. De snelle geeft het scherm misschien niet genoeg tijd. Denk dan aan tijden die het scherm nodig heeft om op te starten na een reset bijvoorbeeld.

Blurp zijn idee van een delay kan wel eens werken.

Een andere die ik me kan voorstellen, sommige chips hebben wat bijzondere pinning. Bijvoorbeeld input only of pinnen die alleen kunnen sinken. Geen idee of dat bij teensy ook aan de hand is. Wellicht nog iets om te controleren. Je kan dit opzoeken, maar zelf zou ik er even een scope aan hangen. Dan zie je gelijk of er iets onverwachts gebeurt.