Nucleo STM32F746ZG & Seedstudio 2.8" TFT Touch Shield V2.0

OP #4792899
Lesenswert?

Hallo zu allererst wollte ich mich vorstellen.
Ich bin der Chris 29 Jahre und noch relativ neu, was das Programmieren 
mit Microcontrollern betrifft, daher hoffe ich, dass meine Frage nicht 
all zuviel Unmut stiftet.

Ich habe mir vor kurzem ein Nucleo STM32F746ZG Board und ein Seedstudio 
2.8" TFT Touch Shield V2.0 Display gekauft.

Laut der mBed Seite sollte es supported werden, daher auch die Wahl des 
Dislpays.
Ich hab mir dann auch sofort den Demo-Code in den Onlinecompiler 
geladen, kompiliert und auf dem Board gespeichert.

Getreu dem Motto: "Wie sie sehn, sehn sie nichts" ist auch nichts weiter 
passiert.

Ich habe dann am Anfang und am Ende des Displaycodes noch ein Blinky 
geschrieben, das ohne weiteres ausgeführt wird. Daher gehe ich davon 
aus, dass der Code schon verarbeitet wird aber irgendwas anderes nicht 
stimmt.

Muss man evtl. die SPI Schnittstelle vorher separat initialisieren oder 
könnte das schon im mBed Code geschehen sein?

https://developer.mbed.org/components/Seeed-Studio-28-TFT-Touch-Shield-V20/

Das wäre der Link zu dem genannten Demo-Programm.

Schonmal vielen Dank für eure Hilfe.

Einen schönen Abend euch noch

Chris
Gast #4792927
Lesenswert?

SPI musst du nicht initialisieren, das macht mbed schon. Manchmal sind 
die Libs in den Beispielen nicht neu genug. Mache mal ein Rechtsklick 
auch das Projekt und dann Update all Libs und neu kompilieren.
Und nochmal kontrollieren ob das Display richtig aufgesteckt ist, also 
die Arduino Belegung passt.
Gast #4792973
Lesenswert?

Gast #4792989
Lesenswert?

Digital Pins
Pin Name   Function
D0   NOT USED
D1   NOT USED
D2   NOT USED
D3   NOT USED
D4   TF_CS
D5   TFT_CS
D6   TFT_DC
D7   BACKLIGHT(Selectable)
D8   NOT USED
D9   NOT USED
D10   NOT USED
D11   SPI_MOSI
D12   SPI_MISO
D13   SPI_SCK

Analog Pins
Pin Name   Function
A0   TOUCH PANEL
A1   TOUCH PANEL
A2   TOUCH PANEL
A3   TOUCH PANEL
A4   NOT USED
A5   NOT USED


geh mal auf die Wiki-page aus deinem Link.
Wie du siehst, sind die SPI-Pin als D-Pin verteilt.
Musst du auf jeden Fall prüfen.
Ansonsten ist es m.M.n. preiswert..
Gast #4793008
Lesenswert?

Und, hast du gelesen?
Some of the control signals for the TFT Shield are not connected to the 
Arduino headers by default. Instead, they connect to a small 2x3 header, 
which isn't present on the many platforms like FRDM-KL25Z, ST F401RE, 
LPCXpresso 1549 etc. There are 3 solder jumpers - P1, P2, and P3 - that 
will connect the signals when bridged. Simply heat them up with a 
soldering iron and bridge them together.
Gast #4793011
Lesenswert?

Die Belegung sieht passend aus. Aber die mbed Lib die in der Demo 
benutzt wird ist Version 93 und 21 Monate alt. Da gab es das F746 IMHO 
noch nicht.
Dann hattest du beim Importieren evtl. schon die Update Option an? 
Allerdings können die neuesten Versionen auch wieder Fehler haben und 
manchmal hilft nur eine etwas ältere Lib zu nehmen. Gerade in den 
letzten Wochen ist da viel Action in der mbed Entwicklung.
Gast #4793015
Lesenswert?

Also... das ist der Code den ich jetzt geschrieben habe. Deckt sich 
natürlich wie zu erwarten war auch mit dem, des Democodes.

1
#include "mbed.h"              
2
#include "SeeedStudioTFTv2.h"                         
3
#include "Arial28x28.h"                                 
4
//SPI_TFT_ILI9341 TFT(D11, D12, D13, D5, D7, D6,"TFT");  // (mosi, miso, sck, cs, reset, dc)
5

6
SeeedStudioTFTv2 TFT(A3, A1, A2, A0, D11, D12, D13, D5, D6, D7, D4);
7

8
int main()
9
{
10
    
11
    TFT.background(Blue);                              
12
    TFT.foreground(0xFFFF);                            
13
    TFT.cls();                                         
14
    TFT.set_font((unsigned char*) Arial28x28);         
15
    TFT.locate(30, 100);                               
16
    TFT.printf("Hello World!!!!");                  
17
}

Hier der Auszug aus der Headerdatei SeeedStudioTFTv2.h
1
   SeeedStudioTFTv2(PinName xp, PinName xm, PinName yp, PinName ym,
2
                     PinName mosi, PinName miso, PinName sclk,
3
                     PinName csTft, PinName dcTft, PinName blTft,
4
                     PinName csSd);

Beziehugsweise aus der SeeedStudioTFTv2.cpp
1
SeeedStudioTFTv2::SeeedStudioTFTv2(PinName xp, PinName xm, PinName yp,
2
  PinName ym,PinName mosi, PinName miso, PinName sclk, PinName csTft, 
3
  PinName dcTft, PinName blTft, PinName csSd):
Wenn ich die Schematics noch zu lesen weiß, sollten eigentlich die MOSI, 
MISO und CLK Anschlüsse auf dem J2 liegen. Die Pins decken sich auch mit 
denen auf dem Board bzw deren Beschriftung.

Das mit dem Connector in der Mitte hab ich gelesen. Dort wird, wenn ich 
das richtig sehe, ebenfalls die SPI-Schnittstelle rausgeführt.

Jetzt nur mal ne ganz dumme Frage, um die dümmsten Fehler ausschließen 
zu können.
Der Arduino Connector geht nur auf einem Weg vernünftig aufzusetzen, 
oder? Für alles andere, wie er jetzt drauf sitzt, bräuchte ich Gewalt 
und die Pinbelegung stimmt ja soweit auch.
Gast #4793047
Lesenswert?

Inwiefern Schaltung? Der HW-Debugger ist am Board montiert.
Das Board hab ich oben mal verlinkt

Durchpiepsen hab ich grad versucht aber wirklich viel kommt dabei auch 
nicht raus.
Ich glaub, ich leihe mir einfach mal noch nen Arduino zum Testen. Nicht, 
dass das Display ne Macke hat ...

Aber, um jetzt mal systematisch vorzugehen.
- SPI sollte über die mbed.h freigegeben sein
- das Display sollte korrekt auf dem Board montiert sein
- die Software passt soweit auch

Viel bleibt ja dann eigentlich nicht mehr. Höchstens, dass ich mal ins 
Labor gehe und schaue, ob der Controller überhaupt Daten versendet..
Gast #4793053
Lesenswert?

Und welche mbed Lib benutzt du jetzt?
Klicke mal die Lib links im Projektbaum an. Dann erscheint rechts oben 
eine Version xxx:yyyyyyyy. Und Synced oder 'newer version available'. 
Wenn da die alte 93:... drin steht dann den Update Link anklicken.
Gast #4793058
Lesenswert?

Also was die Libs betrifft, die sind alle "synced" oder "up to date"

@e-d

Ich bin noch ganz neu im Business. Was da offen bzw closed sein soll, 
müsstest du mir erklären.

Ich würd ja das Projekt auch gern für OpenSTM exportieren aber auch da 
hat mbed was dagegen.. sonst hätte ich euch es komplett zur Verfügung 
stellen können....
Gast #4793066
Lesenswert?

Christian schrieb:
> Also was die Libs betrifft, die sind alle "synced" oder "up to date"

Dann probiere mal die Lib v123: wieder mbed selektieren, dann den Button 
Revisions und die 123 auswählen.

Um das SPI zu testen sind die Salea USB LogicAnalyzer ganz gut, gibts 
auch als China clones für <10€.
Gast #4793073
Lesenswert?

Den LogicAnalyser hab ich mir gleich mal gebookmarked.
Das mit der Lib versuch ich morgen mal. Vielleicht hab ich dann mehr 
Glück.

Ich danke euch schonmal für euer Feedback und eure Unterstüztung!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren