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
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.
Funfact des Abends Jetz lässt sich der Code nicht mal mehr kompilieren... Sobald er die GraphicsDisplay.cpp angehen will, bekomme ich den Fehler 230. Selbst wenn ich dann das Projekt lösche und mir nochmal neu lade ...
http://www.watterott.com/de/28-TFT-Touch-Shield-V20?x551db=3eab16dd26396662fdd2827f359ade4a oder http://www.ebay.de/itm/SainSmart-UNO-R3-2-8-TFT-LCD-Touch-Screen-TFT-LCD-Shield-Kit-For-Arduino-/380881328167?hash=item58ae4bd827:g:uyMAAOSwrmdTp-E1 oder http://www.ebay.de/itm/2-8inch-320x240-TFT-HX8347D-SPI-Arduino-Resistive-Touch-Shield-Display-WS40015-/272108702843?hash=item3f5af14c7b:g:EHwAAOSwo4pYKWN~ http://www.ebay.de/itm/NEW-2-8-Inch-TFT-LCD-Display-Touch-Screen-Module-with-For-Arduino-UNO/201506093782?_trksid=p2047675.c100005.m1851&_trkparms=aid%3D222007%26algo%3DSIC.MBE%26ao%3D2%26asc%3D38052%26meid%3De1eb73f3812a450d94fb1528e9a67908%26pid%3D100005%26rk%3D5%26rkt%3D6%26sd%3D380881328167 - dies sind nur einige 2,8 TS-LCD. ohne Shield sind einige garnicht SPI-fähig. Ich hoffe, deins hat den Hinweis SPI aufgedruckt..
Hey e-d Danke für die Links Laut Beschreibung und Pinbelegung sollte es eigentlich SPI-Fähig sein. Wie gesagt. Ich habe halt Probleme, es überhaupt zum Laufen zu bekommen.. Hier der Link zum Display https://www.seeedstudio.com/2.8-TFT-Touch-Shield-V2.0-p-1286.html
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..
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.
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.
Ich kenne das Nucleo STM32F746ZG nicht mal. Aber hast du die 3 Brücken eingelötet?
Und flashe erstmal mit abgezogenen LCD..
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.
Aus der Ferne betrachtet, stimmts wohl und ja, die Stiftleisten müssen passen. Wenn alle Stricke reißen, musst du einzeln "durchpiepsen"(Durchgang an den Kontakten)..
Hast du die Schaltung des Nucleo(Link)?
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..
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.
Auch die SPI-Belegung müsste stimmen, wenn sb121 closed und sb122 offen ist.
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....
Hab mir den Schaltplan runtergeladen..
sb sind Solderbridges, -kleine gegenüberliegende Lötpunkte, die gebrückt werden(oder eben nicht).
Jo, grad überprüft und für gut befunden. 122 hat keinen Durchgang und über 121 nen Widerstand kurzgeschlossen.
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€.
Ich weis nicht, ob du das schaffst? In den Config-dateien zum SPI müssen PA5,6,7 als spi-A-CLK,Miso und Mosi definiert sein..
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!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.