Forum: Mikrocontroller und Digitale Elektronik STM32F4 DISCOVERY


von Klaus (Gast)


Lesenswert?

Hallo zusammen,

heute ist meine STM32F4DISCOVERY angekommen. Ich habe mir das Board 
gekauft um damit eine kleine Steuerung für meine elektr. Rolläden + 
Heizungssteuerung + LED zu bauen. Mit "Makroelektrik" (also die 
Temperatur und Relaisplatine)komme ich sehr gut klar nur mit der 
Programmierung habe ich enorme Probleme.
Ich dachte eigentlich ich könnte mir das ganze recht einfach über die 
vielen Beispiele erklären nur ist dem leider nicht so.
Kann mir jemand einen einfachen Guide empfehlen welcher mich in die ADC 
Programmierung mit der STM32F4DISCOVERY einführt?
Konkrete Fragen sind:
-ist es möglich alle 15 ADC123/IN nacheinander abzufragen?
-sind diese 15 Pins die im Manuell 
(http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/USER_MANUAL/DM00039084.pdf) 
als ADC_123/IN angegebene sind die einzigen Ausgänge die ich an die 
Relaisplatine nutzen kann?

Sorry für die "dummen" Fragen aber bin bei der Programmierung auf 
absolutem Neuland.
Danke schonmal für die Hilfe

LG
Klaus

von Michael F. (startrekmichi)


Lesenswert?

Ich habe selber noch nichts mit dem STM32 gemacht (spiele aber mit dem 
Gedanken). Hier gibt's ein Tutorial, die Unterschiede zum F4 sind 
vermutlich nicht sehr groß:
http://diller-technologies.de/stm32.html#adc

von Klaus (Gast)


Lesenswert?

Hi,

vielen Dank für den Link. Habe gerade mal ein bisschen rein geschaut: 
das hilft mir schonmal ziemlich weiter.
Vielen Dank
LG
Klaus

von Noname (Gast)


Lesenswert?

Ich möchte Dir aber doch nahelegen, die das Reference-Manual 
durchzulesen. Soweit ich das erkennen kann ist der Code eigentlich sehr 
ähnlich zu den Beispielen nur um Informationen aus dem Reference-Manual 
ergänzt.

von Klaus (Gast)


Lesenswert?

Hi,

da bin ich schon seit ein paar Tagen dran nur 1300+ Seiten ist schon ne 
Menge, auch wenn man nur das wichtigste raus sucht.

LG
Klaus

von Noname (Gast)


Lesenswert?

Du musst ja für die AD-Wandlung nicht wirklich alle 1300 Seiten lesen.
Aber ein paar Tage sind auch zuwenig.

Darüber hinaus gibt es, (am F1 gemessen) einige Fallen die auch das 
Reference Manual nicht nennt. Also ruhig Blut. Aber durch musst Du.

Die Beispiele im Netz decken nur gerade das ab, was der Autor selbst zum 
jeweiligen Zeitpunkt interessant fand.

Aber wenn Du noch nie programmiert hast, dann ist das ohnehin ein ganz 
schönes Stück Arbeit, das Du vor Dir hast. Es wäre besser wenn Du Dir 
erstmal ganz bescheidene Ziele setzt um die Frustrationen zu verringern.

von micS (Gast)


Lesenswert?

leckts mi am a...  ein paar tage zuwenig um alles über die ad-wandlung 
zu erfahren !? was für ein ungetüm ist denn dieser controller ???

von Tom (Gast)


Lesenswert?

Hallo,
nimm dafür nen kleinen AVR-Mega und gut is. Dann brauchst Du nicht 
soviel auf Discovery zu gehen :)

von murks (Gast)


Lesenswert?

schau mal auf der ST Seite Nacht, zum STM32F10x gabs für jede Peripherie 
noch ein Spezielles Datenblatt, manchmal sogar zwei^^. Dort werden 
Grundlegende Dinge nochmal erklärt, gerade deine Frage wie und ob du die 
Eingänge nacheinander abfragen kannst wurde dort meines Wissens nach 
nochmal ausführlich erläutert.

von murks (Gast)


Lesenswert?

nach, nicht Nacht o.O

von erhardd (Gast)


Lesenswert?

...@Klaus (Gast)
Ich glaube, hier handelt es sich um eine konzeptionelle Frage;
Du willst doch nicht ernsthaft 15 Temperaturfühler aus verschiedenen 
Räumen nacheinander über ADC abfragen ?
Dazu gibt es elegantere Lösungen z.B.:
Beitrag "DS1820, DS18B20 in C"
Einen Helligkeitssensor (SF9088) für die Rollläden lasse ich mir ja noch 
gefallen, wenn er nicht allzu weit vom ADC-Eingang entfernt ist.
ADC fängt gern Störungen ein(Funkenstrecken, HF, usw.);
Die Relaisplatte(n) kannst Du über I2C-Bausteine ansteuern;

von Max Power (Gast)


Lesenswert?

Zum STM32F4 gibt es bei ST eine Firmwarebibliothek in der Beispielhaft 
die Nutzung der ADC Funktion gezeigt wird. Zusammen mit dem Datenblatt 
sollte es recht schnell gelingen, das gewünschte Vorhaben zu 
realisieren. Prinzipiell ist es auf jeden Fall möglich.

von Klaus (Gast)


Lesenswert?

Hallo zusammen,

@erhardd (Gast): es sind "nur" 12 Temperaturfühler, aber sonst ist es 
genauso wie du geschrieben hast :)
Ich werde mir nachher mal den Link von dir durchlesen. Wenn es damit 
einfach geht werde ich mal versuchen umzusteigen.

@Max Power und den Rest: auf der ST Seite bin ich nebenbei auch am 
schauen. Leider ist die Seite meiner Meinung nach ziemlich 
unübersichtlich. Habe bisher nur 4 Beispiele zu ADC gefunden diese sind 
aber anders als die von mir gesuchte.
Kennt sich jemand auf der Seite aus und kann mir evtl einen Direktlink 
geben? Meint ihr diesen 
http://www.st.com/internet/evalboard/product/252419.jsp (ganz unten)?

Gruß Klaus

von erhardd (Gast)


Lesenswert?

...um dich vollends aus dem Konzept zu bringen:
Schau mal unter
http://son.ffdf-clan.de/include.php?path=start
-was da alles mit einem AVR erreicht werden kann;
   Du musst dann nurnoch auf stm32 anpassen  :)
                                             :)
                                             :)
...

von chris (Gast)


Lesenswert?

"heute ist meine STM32F4DISCOVERY angekommen. Ich habe mir das Board
gekauft um damit eine kleine Steuerung für meine elektr. Rolläden +
Heizungssteuerung + LED zu bauen. Mit "Makroelektrik" (also die
Temperatur und Relaisplatine)komme ich sehr gut klar nur mit der
Programmierung habe ich enorme Probleme."

Wie man für diese Probleme und mit diesen Vorkenntnissen ein Discovery 
als Mikrocontrollersystem auswählen kann, ist mir ein Rätsel.
Nimm ein Arduino sammt Entwicklungsumgebung, damit kannst Du alles in 
ein paar Tagen machen.

Das Discovery ist eher was für Mikrocontroller Profis. Man kann kann es 
in etwa so vergleichen: Jemand der gerade angefangen hat, die Stützräder 
am Fahrrädchen weg zu bauen, sollte nicht schon am nächsten Tag am 
Motoradwettrennen auf dem Nürburgring mitmachen wollen.

von erhardd (Gast)


Lesenswert?

... der Webserver könnte dieser werden 
Beitrag "stm32f4 --> LwIP_Aufbauvorschlag"

von Roland H. (batchman)


Lesenswert?

Klaus schrieb:
> Sorry für die "dummen" Fragen aber bin bei der Programmierung auf
> absolutem Neuland.

Na dann hast Du dir das schwierigste "stm32 discovery" zum Einstieg 
geholt.

Viel besser wäre das mit dem stm32f100 gewesen. Die beiden anderen kenne 
ich nicht, das mit dem Cortex-M0 würde passen, ist aber noch zu neu, das 
andere hat m. E. eher zu viel Peripherie auf der Platine (eben so wie 
das stm32f4 discovery).

Klaus schrieb:
> -ist es möglich alle 15 ADC123/IN nacheinander abzufragen?

SW-technisch ja. Die Frage ist, ob die on-board-Peripherie dies 
verhindert oder stört. Das ist ja eines der Herausforderungen auf dem 
stm32f4 - nämlich freie Pins zu finden - bei dem mit dem stm32f100 
sind so gut wie alle Pins frei.

Michael Frangenberg schrieb:
> Hier gibt's ein Tutorial, die Unterschiede zum F4 sind
> vermutlich nicht sehr groß:

Das Tutorial bezieht sich auf einen stm32f103; das Probem sind die 
vielen kleinen Unterschiede.

Das Tutorial würde aber gut für den stm32f100 passen.

micS schrieb:
> ein paar tage zuwenig um alles über die ad-wandlung
> zu erfahren !? was für ein ungetüm ist denn dieser controller ???

Ich bezweifle, dass die erste ADC-Wandlung an einem beliebigen 
Controller weniger dauert. Damit meine ich, den Source und ADC wirklich 
zu verstehen (und nicht nur einzubinden).

Mit dem zweiten Satz hast Du recht: Du sprichst von einem Cortex-M4 mit 
FPU, zwei RAM-Sorten, rund 15 Timer (welche dazu noch verschiedene max. 
Taktfrequenz haben), dazu hat das Ding in der Peripherie alles, was man 
sich vorstellen kann. Und dazu kommt das f4-Discovery, welches die 
Pin-Zuordnung zu einem Geduldsspiel macht.

Den hast Du Dir aber selbst ausgesucht - die Frage ist nur, nach welchen 
Kriterien ;-)

Tom schrieb:
> nimm dafür nen kleinen AVR-Mega und gut is. Dann brauchst Du nicht
> soviel auf Discovery zu gehen :)

oder eben das mit dem stm32f100 - das ist das discovery-Erlebnis 
eingeschränkter ;-)

erhardd schrieb:
> ... der Webserver könnte dieser werden
> Beitrag "stm32f4 --> LwIP_Aufbauvorschlag"

... was die Problematik mit den Pins nicht gerade vereinfacht.

von Noname (Gast)


Lesenswert?

Meine Güte. Mag das bitte jemand etwas näher beschreiben, was beim 
F4-Discovery das Problem mit der Pin-Zuordnung ist?

Bin schon fast dabei mir eins zu bestellen.

von erhardd (Gast)


Lesenswert?

...@Roland H. (batchman)
Beitrag "stm32f4 Bord"
-ja, der 100-Pinner zwingt zu Kompromissen;
Im Baseboard habe ich konsequent FSMC genutzt; Sowohl das LCD als auch 
die SRAM-Erweiterung und die zusätzlichen Ports(
erhardd schrieb:
> Über 2xWS82C55A habe ich Portexpander für 16-bit Aus-/Eingänge
> geschaffen.
> 1x14 Ausgänge über ULN2004 zum schalten auch indukt. Lasten(je 500mA,
> bis 50Volt) + 2Ausgänge über Bustreiber.
> 1x16 Eingänge(Pullups vom Expander-IC gebildet);

) werden darüber bearbeitet;
Da nur ein NE1-Pin  als Chip-select da ist, wird dieser negiert und mit 
Adressleitungen , hier A23 für LCD, A22 für Port-Expander (und A21 für 
SRAM),
vernandet (74HC00)
In den Base-Adressen ist somit der entsprechende CS bereits drin;
Der Portexpander ist nicht einfach(schlecht beschrieben), daher wäre SPI 
dafür, wie auch für den ENC(Netzwerk) passender...

von erhardd (Gast)


Lesenswert?

erhardd schrieb:
> Der Portexpander ist nicht einfach(schlecht beschrieben), daher wäre SPI
> dafür, wie auch für den ENC(Netzwerk) passender...

besser:  -daher wäre I2C (z.B.PCF8574) passender. Der ENC(Netzwerk) 
läuft über SPI( SD-Karte dafür über SDIO);
Nicht in der Software "myboard.7z" die Kamera über DCMI...

von Roland H. (batchman)


Lesenswert?

Noname schrieb:
> Meine Güte. Mag das bitte jemand etwas näher beschreiben, was beim
> F4-Discovery das Problem mit der Pin-Zuordnung ist?
>

Z. B. USART1: Entweder kollidiert es mit USB oder dem Audio-DAC.
Wer es unbedingt mit den Default-Pins haben will, der muss (angeblich) 
einen Kondensator entfernen. Danach geht vermutlich USB nicht mehr (oder 
zumindest die USB-Variante, die an diesen Pins hängt).

Oder: Der Audio-DAC geht dann nicht, wenn SDIO im Einsatz ist.

> Bin schon fast dabei mir eins zu bestellen.

Wofür? Davon hängt es ab. Wenn die Peripherie auf der Platine nicht das 
Ziel ist, dann muss man etwas knobeln.

Nimm Dir einfach den Schaltplan, und versuche, diesen mit der von Dir 
gewünschten Peripherie in Einklang zu bringen. Wenn Du damit leben 
kannst, ist es das beste Modul weit und breit. Ich habe einige Zeit 
investiert, um möglichst viel Peripherie zu "bekommen", ohne ständig 
umstöpseln zu müssen.

Schau Dir einfach Seite 56 im "product data sheet" des stm32f407 mit den 
"alternate function mappings" an.

Wer einfach nur ein "breakout" haben möchte, der ist m. E. mit den 
"nackten" Discovery-Boards besser bedient.

erhardd schrieb:
> -ja, der 100-Pinner zwingt zu Kompromissen;

So ist es ;-) Vor allem angesichts der gigantischen Peripherie des 
stm32f407.

von Noname (Gast)


Lesenswert?

@ Roland H.

Aha. Danke.

Du meinst die gegenseitigen Ausschlüsse aufgrund der Peripherie. OK.

Ich habe eher so Geschichten erwartet, wie beim F1, wo z.B. die unteren 
Timer-Kanäle nicht benutzbar sind, wenn man den Encoder-Eingang 
verwendet. Da bin ich auf noch so ein oder zwei sich gegenseitig 
ausschliessende Verwendungen gestossen, die nicht so unbedingt intuitiv 
waren und im Datenblatt nicht erwähnt wurden.
Obwohl Du sowas nicht erwähnt hast, gehe ich davon aus, das es in der 
Beziehung auch ein paar Eigenarten gibt.

von Noname (Gast)


Lesenswert?

>Datenblatt

Datenblatt oder Reference-Manual meine ich.

von Roland H. (batchman)


Lesenswert?

Noname schrieb:
> Du meinst die gegenseitigen Ausschlüsse aufgrund der Peripherie. OK.

Ja - die Peripherie des µCs und die zusätzliche externe Peripherie auf 
dem Board.

Noname schrieb:
> Obwohl Du sowas nicht erwähnt hast, gehe ich davon aus, das es in der
> Beziehung auch ein paar Eigenarten gibt.

Bestimmt. Die Frage ist, ob das für den geplanten Zweck relevant ist.

von Der müde Joe (Gast)


Lesenswert?

Für diese Aufgabe hätte ich jetzt reflexartig zum Cortex-M0 Discovery 
gegriffen. Mit dem Teil kannst Du schon unheimlich viel machen. Der F4 
ist für mich eindeutig in der F1 :-) .
Der müde Joe.

von Noname (Gast)


Lesenswert?

>> Du meinst die gegenseitigen Ausschlüsse aufgrund der Peripherie. OK.

>Ja - die Peripherie des µCs und die zusätzliche externe Peripherie auf
>dem Board.

Ich bezog mich auf Einschränkungen die nicht beschrieben sind und solche 
die zwar irgendwo nachlesbar sind, aber nicht intuitiv.

Offensichtliche Widersprüche wie, dass ein USB-Pin und ein ADC die auf 
dem selben Anschluss des uC nach aussen liegen, meine ich nicht. Das 
muss man einfach nachschauen.
Ebenso das ein USB-Anschluss auf der Platine und ein analoger Input auf 
der Platine an den selben Anschluss gehen. Das kann man im Schaltplan 
sehen.


>Die Frage ist, ob das für den geplanten Zweck relevant ist.

Ja, klar ist das die Frage. Dafür macht man ne Pinplanung. Und was 
willst Du mir damit sagen?

von Noname (Gast)


Lesenswert?

@ Roland

Hm. Also irgendwie befriedigt mich meine Antwort an Dich nicht, zumal 
sie einen etwas sauren Ton hat.

Es ging mir ja nur um folgendes:
Ich habe von Dir gelesen, das:
>Und dazu kommt das f4-Discovery, welches die
>Pin-Zuordnung zu einem Geduldsspiel macht.
und
>... was die Problematik mit den Pins nicht gerade vereinfacht.

Nun wollte ich das genauer wissen.
OK. Du hast das auch beantwortet.

Deine Antwort bezog sich auf die Einschränkungen in der Kombination der 
internen Peripherie und/oder die Einschränkungen aufgrund der Peripherie 
auf der Platine. Das war höflich und freundlich von Dir.
Ich wollte das eigentlich auch in keiner Weise abwerten in dem ich 
sozusagen schrieb: Ach sooo. Du meinst nur die Peripherieeinheiten.

Eben dazu, ohne das ich Dir zu nahe treten will, meine ich, das man das 
durchaus aus dem Datenblatt und dem Schaltplan erkennen kann.

Ob "ich" das für selbstverständlich halte oder kann, konntest Du 
natürlich nicht wissen. Insofern war Dein Hinweis als hilfsbereit zu 
werten.

Aber ich habe im Kopf die erwähnten ungenannten gegenseitigen 
Einschränkungen, teils ungenannte und teils zwar genannte aber nicht 
unbedingt selbstverständliche (letzteres richtet sich nach dem 
allgemeinen und besonderen Kenntnissen mit den ST-Controllern).

Kurz und gut. Tut mir leid wegen des Tones. Was mich interessiert sind 
die, in eben erwähnten Sinne, "esoterischen" Einschränkungen.

Kannst (und magst Du) dazu was sagen?

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Löte doch die Sachen die Dich stören einfach runter. Schon ist der Pin 
frei für deine Applikation.
Siehe Schaltplan vom Discovery Board, gibt es bei ST als Download.

von erhardd (Gast)


Lesenswert?

...jemand ist solchen, nun nennen wir sie mal, "Ungereimtheiten" auf der 
Spur;
http://blog.frankvh.com/category/stm32/
- ist für mich schon fast Pflichtlektüre...

von Noname (Gast)


Lesenswert?

@ erhardd

Ja. Super. Das sind sehr gute Beispiele für das was ich meine.

von jochen (Gast)


Lesenswert?

Moin!

Ich habe mal ein etwas ausführlicheres Tutorial in "Codeform" zum 
STM32F4 discovery board erstellt. Es findet sich auf 
https://github.com/jkerdels/stm32edu. Das Tutorial funktioniert so, dass 
man einfach dem Programmfluss folgt und die Kommentare liest.

Viel Spass dabei!

von erhardd (Gast)


Lesenswert?

@jochen (Gast)
...donnerwetter, da hast Du aber viel Zeit investiert, um anderen zu 
helfen;
--> Respekt

Wenn ich beim ersten Durchsehen schmunzeln muss, dann nur, weil Du den 
Leser
quasi "an die Hand" nimmst, und ihn auf Klippen und Gefahren aufmerksam 
mach'st !
(Mir kam da das Bild des märchenerzählenden Großvaters in den Sinn...)

Doch Märchen sind dies allemal nicht und die Art der Erläuterung dürfte 
auch grad Anfängern leichter zugänglich sein.
Wirklich, toll gemacht...

von jochen (Gast)


Lesenswert?

@erhardd: Vielen Dank für die Blumen! ;-)

Die etwas detailreiche und längliche Erklärung ist in der Tat für 
absolute STM32 Einsteiger gedacht. Hab im Moment leider nicht die Zeit, 
an diesem Projekt weiter zu schreiben... aber wenn man sich einmal von 
vorne bis hinten durch den Programmfluss und die verwiesenen Stellen in 
den Doku-PDFs gelesen hat, sollte man eigentlich schon recht gut zurecht 
kommen...

Viele Grüße,
Jochen

von Andreas S. (igel1)


Lesenswert?

@Jochen:

Ich habe heute Abend mehrere Stunden vor Deinem Tutorial verbracht und 
kann nur sagen: Absolute Spitze!

Habe selten so viel in so kurzer Zeit gelernt. Toll, wie Du Dich in 
Anfänger hineinversetzen kannst! Es blieb bei mir keine (ich wiederhole: 
keine!) Frage offen. Alles, was mir unklar war, wurde stets in den 
nächsten 3 Sätzen erklärt - das war ganz, ganz große Didaktik, die Du da 
auf's Parket gelegt hast.

Und auch die Verweise auf die ST-Originaldoku fand ich sehr gut (habe 
das sehr genutzt und alles dort zusätzlich nachgeschlagen).

Kurzum: 1000 Dank für dieses Engagement! Ich war schon drauf und dran 
meine Lust am Prozessor zu verlieren - jetzt sehe ich erstmals wieder 
"Land in Sicht".

Viele Grüße

Igel1

von Sebi (Gast)


Lesenswert?

Hi,

ist vermutlich eine ziemlich dumme Frage aber ich versuche jetzt seit 
einer geschlagenen Stunde dieses Tutorial anzuschauen und das einzige 
das ich finde ist die readme aber keinen code mit Kommentaren... 
vermutlich bin ich mal wieder zu unfähig

von src (Gast)


Lesenswert?

Sebi schrieb:
> einzige
> das ich finde ist die readme

im Kästchen darüber steht das Kürzel "src" und verlinkt auf das gesuchte 
Verzeichnis.

von Sebi (Gast)


Lesenswert?

Danke dir, ich hätte mal mein noScript ausschlaten sollen -.- nun gehts 
1a

von tossi (Gast)


Angehängte Dateien:

Lesenswert?

Habe auch noch 2 STM32F4 Discovery im Schrank gefunden.
Kann die jemand gebrauchen? Einfach PN an mich!

von Schönes Foto (Gast)


Lesenswert?


von Gibts N. (schneeblau)


Lesenswert?

Wo kann man dir denn eine PN schreiben?

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.