Forum: Mikrocontroller und Digitale Elektronik STM32f429 Discovery noobige Fragen


von BladeRunner (Gast)


Lesenswert?

Hallo,
ich habe oben genanntes Board erworben.
Vorneweg: ich bin blutiger Laie was die Programmierung von µC angeht, 
und wollte mal reinschnuppern.
Das von mir erworbene Bord ist ja randvoll mit Peripherie, unter anderem 
ein Display sowie ein Gyroskop.
Nun ist meine Frage folgende: Wenn ich nun GPIO-Pins nutzen will an 
denen schon etwas von der Peripherie mit dranhängt, zB das Display, wie 
muss ich da vorgehen? Kann ich die Pins einfach als Ein-oder Ausgang 
konfigurieren oder zerschiesse ich mir damit was (einzig für PA0 
befindet sich eine Solder Bridge auf dem Bord um den Taster zu 
deaktivieren)?
Mir schwebt ein Monitor für einen externen Bus vor, bei dem 40 Pins 
überwacht werden müssen, weswegen ich mit den 25 freien Pins nicht 
wirklich weiter komme. Ich kann für mein Vorhaben auf das LCD 
verzichten, da ich die gelesenen Daten ins SD-RAM übertragen möchte und 
dann auf Stick speichern. Allerdings finde ich nirgends in den 
Unterlagen von ST ob und wie ich das Display deaktivieren kann und ob 
ich die Pins einfach mit ihrer alternativen Funktion nutzen kann, wo das 
Display ja fest verbaut ist.
Per Jumper kann ich augenscheinlich auch nichts deaktivieren, daher nun 
meine Ratlosigkeit. Auf zeroscience werden die meisten Pins als "used, 
may be used for other purpose" gekennzeichnet, aber es gibt auch hier 
keine Info was ich beachten muss.

Wer kann mir da eine kurze einsteigerfreundliche Erklärung oder Links 
zum passenden Wissen vermitteln, die ich nach selbstständiger Suche 
leider nicht fand?

Gruß
BladeRunner

von Klaus W. (mfgkw)


Lesenswert?

Knapp an der Frage vorbei, aber: während die Doscovery-Boards eher 
ziemlich voll sind, muß man bei den Nucleo-Boards weniger stillegen. Die 
sind nicht so zugepflastert.

von Little B. (lil-b)


Lesenswert?

Im Allgemeinen musst du dir jedes verbaute Gerät einzeln anschaun und 
evaluieren, wie es sich bei verschiedenen Signalen verhält. Irreversibel 
kaputt machen kannst du aber nur etwas, wenn zwei Geräte die selbe 
Leitung treiben wollen.

Beim Bildschirm beispielsweise sehe ich da kein großes Problem, da die 
meisten Signale wohl nur Eingänge am Bildschirm sind. Prüfe das aber 
selbst! (ich habs nur kurz überfogen...)

Im schlimmsten Fall macht die Hardware irgendwas, was sie nicht soll, 
z.B. der Bildschirm zeigt irgendwelche Dinge an. Das ist aber wieder 
zurückgesetzt, wenn du ein Reset durchführst.
Wie gesagt, es geht erst richtig was kaputt, wenn du zwei Treiber auf 
einer Leitung hast.

Beachten musst du natürlich auch, wie sich das zu messende Signal 
verhält, wenn es in einen anderen Chip läuft (Eingangsimpedanzen und 
so). Höchst präzise Messungen wirst du mit einem solchen Board nicht 
durchführen können.

Wenn das dein erster Mikrocontroller ist, war die Wahl wohl nicht ganz 
so geschickt. Großer Chip mit viel Hardware, das macht den Einstieg 
nicht gerade leicht.

von Klaus W. (mfgkw)


Lesenswert?

Little Basdart schrieb:
> Wenn das dein erster Mikrocontroller ist, war die Wahl wohl nicht ganz
> so geschickt.

Bei den lächerlichen Preisen ist der Verlust ja nicht dramatisch.
Das macht insofern sogar Sinn: von den Discover-Boards kann man 
abkupfern, wie etwas gemacht werden könnte.
Mit den kleinen Boards baut man dann seine eigenen Prototypen auf.

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Uwe hat als Startpunkt eine Übersicht zusammengestellt, auf der 
zumindest mal alle wirklich freien Pins zu erkennen sind:
http://mikrocontroller.bplaced.net/wordpress/wp-content/uploads/2013/10/Pinbelegung_f429_v100.html

Die Farbleitungen des Displays kannst du benutzen (R/G/B0 - R/G/B7), 
aber nicht die Kontrollleitungen. Fernhalten solltest du dich auch von 
den Pins, die schon für SPI und I²C benutzt werden, denn die Onboard 
Peripherie funkt dir sonst dazwischen.
Für Experimente mit einem Barebone STM32 ist das Board allerdings nicht 
gedacht. Da fährst du besser mit einem VL-Discovery. Das LCD mit Touch 
ist ja gerade eines der Highlights dieses Disco.
Kaputt geht da übrigens überhaupt nix, egal wie du die Ports 
konfigurierst. Allerdings sind die im Datenblatt als 5V tolerant 
bezeichneten Pins das natürlich nicht, wenn da schon Peripherie dran 
hängt.

: Bearbeitet durch User
von BladeRunner (Gast)


Lesenswert?

Hallo,
erst mal danke für die freundlichen und ausführlichen Antworten, auch 
wenn sie mich ein wenig ernüchtert haben.
Ich hatte mir das Board unter folgenden Überlegungen zugelegt:

- extrem gutes P/L-Verhältnis - knapp 25 Euro waren ein Schnapp.
- flotter Prozessor, da ja einiges an Daten ermittelt und dann hin- und 
her geschaufelt werden muss.
- Grosses RAM zum kurzen lagern der Daten, 8MiByte SDRAM als 
Datensammler
- USB on board zum Schreiben der ermittelten Daten.
- viele (so dachte ich) freie GPIO, welche 5V tolerant sind.

Das Bus-System was ich überwachen will ist Vintage: der Expansion Port 
des Commodore 64. Nahziel wäre Monitoring aller Leitungen, Fernziel auch 
Beschreiben des Speichers im C64 per DMA. Das Bussystem ist mit 1MHz 
getaktet und arbeitet auf 5V.
Ein Fehlansprechen des Displays kann ich problemlos verschmerzen, ein 
Rösten von Bauteilen da die keine 5V vertragen eher nicht ;)

Es geht insgesamt nur um digitale Signale, Analog liegt da nichts vor.

Für den STM32 hab ich mich auch entschieden da ich Kentnisse in C (nicht 
prickelnd, aber vorhanden), Basic (verschiedene Dialekte, ich sah dass 
es auch ein Mikrobasic für ARM gibt) und ein wenig Assembler (hier 
allerdings größtenteils 6502 / Z80) beherrsche.

Ich würde gern auch bei der einfachen Programmierung pert ST-Link 
bleiben.
Gibt es denn ein Board was mir den 429+USB+vorbereitetes SDRAM+40 freie 
(5V-)GPIO bietet?
Eine Experimentierschnittstelle wie hier (also auf Steckerleisten nach 
aussen geführt) wäre absolut von Vorteil.

Ich weiss zwar wo der Lötkolben heiss wird, scheue mich aber vor SMD und 
BGA geht für Otto Normalverbraucher ja gar nicht.
Im Zweifel klemme ich lieber die nicht benötigten Bauteile auf dem Board 
ab, falls das ohne größeren Schaden machbar ist - hierzu sind meine 
Elektronikkentnisse aber doch eher zu rudimentär. Ich kann zwar 
Schaltungen nach Plan aufbauen, bei vielen Bauteilen fehlt mir jedoch 
zugegeben das tiefere Verständnis.
Daher wollte ich den Aufbau auch minimal halten.

Danke schon jetzt,

BladeRunner

von Gerhard G. (g_g)


Angehängte Dateien:

Lesenswert?

in 10 Minuten ist alles sauber!

Siehe Bild!



Display, SDRAM, und noch ein paar Teile ausgelötet und du hast Pin's zum 
Abwinken.


Gruß GG

von Daniel B. (dbuergin)


Lesenswert?

Naja, wenn es nicht gerade der 429'er sein muss, wäre da das
STM32-H407 Board von Olimex: 
https://www.olimex.com/Products/ARM/ST/STM32-H407/open-source-hardware
Das ist deutlich weniger Peripherie drauf, und somit viel mehr Ports 
frei.

Stell Dir die Programmierung aber nicht als allzu simpel vor. In diesem 
Forum findest Du unzählige Beiträge zu den STM32 Kontrollern und dem 
Thema IDE oder wie man sie programmiert.
- Proprietäre Entwicklungsumgebung oder OpenSource (GCC ev. mit Eclipse)
- Welche IDE und wenn es auch nur ein Editor ist.
- Welche Toolchain.
- Nativ oder mit den (verschiedenen Libs) von ST.

Da wirst Du ein paar Stunden/Tage/Nächte investieren müssen, bis Du 
durchblickst.

Empfehlen kann ich http://mikrocontroller.bplaced.net/wordpress/

G D

von BladeRunner (Gast)


Lesenswert?

Ok,
wenn es wirklich mit reinem Auslöten nicht benötigter Teile getan ist 
(keine Lötbrücken vonnöten?) dann wäre das zumindest eine Option.
Wobei ich vorher erst mal nach und nach mit den bisjetzt freien Pins 
experimentieren ob ich überhaupt Erfolg habe, bevor ich die Platine 
umsonst kannibalisiere.

von BladeRunner (Gast)


Lesenswert?

Daniel B. schrieb:
> Da wirst Du ein paar Stunden/Tage/Nächte investieren müssen, bis Du
> durchblickst.

Ich habe da eher im Wochen- bis Monatszeitraum geplant. Das Schöne ist 
allerdings dass ich auch keinerlei Zeitdruck habe. Es geht mir ja um's 
Experimentieren und Lernen, wie anno dazumal, als der C64 noch "Neuland" 
für mich war. Daher ja auch eben die Anmerkung dass ich erstmal mit den 
freien Ports spielen werde. Am Anfang werd ich schon stolz wie Bolle 
sein wenn ich einfach mal den Prozessortakt vernünftig monitoren kann. 
Ein einzelner Pin ist erstmal eine überschaubare Aufgabe.
Ich habe mir die Demo von Mikrobasic sowie die CoIDE von coocox 
installiert und werde das Schritt für Schritt angehen.

von Jens E. (surfjenser)


Lesenswert?

Zum Experimentieren mit der Pinbelegung für die unterschiedliche 
Peripherie eignet sich das STM32Cube ganz gut, wie ich finde. Die 
jeweiligen Discovery-Boards sind darin auch hinterlegt
http://www.st.com/web/en/web/catalog/tools/FM147/CL1794/SC961/SS1533/PF259242?icmp=259242_prom_ss1574_jun2014

von Daniel B. (dbuergin)


Lesenswert?

Würde ich auch machen. Bring mal die grüne LED an PG13 zum blinken im 
Sekudentakt. Dann kannst Du weiterschauen :-)

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
Noch kein Account? Hier anmelden.