Forum: Mikrocontroller und Digitale Elektronik Billiges Cortex-M4-Board STM32F4DISCOVERY jetzt erhältlich


von Xenu (Gast)


Lesenswert?

Von ST gibt es jetzt das neue Cortex-M4-Board STM32F4DISCOVERY:

http://www.st.com/internet/evalboard/product/252419.jsp

Bei Watterott und Digikey erhältlich. 16,66 € bei Watterott.
Mit DAC und Klasse-D-Verstärker. Das Ding schreit ja quasi nach 
MP3-Player.

von hp-freund (Gast)


Lesenswert?

Gibt es auch bei RS.

Wollte es nur noch mal nach vorn bringen.

Tolle Sache das...

von Markus 1234 (Gast)


Lesenswert?

Hat jemand einen Eclipse Workspace für die Nutzung des STM32F4 mit 
Yagarto und kann diesen zur Verfügung stellen? Ich habe das für diesen 
Prozessor noch nicht lauffähig bekommen.

von Tim (Gast)


Lesenswert?

Atollic True Studio sollte den F4 auch in der Lite Version von Haus aus 
unterstützen. Probier das mal. Ist auch ein Eclipse Ableger

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Hart kalkuliert, der Prozessor kostet bei digikey schon 13,xx€ 
(natürlich als einzelstück)
Aber 1M flash und vor allem 192k Ram sind schon beeindruckend für 
LQFP100

von Markus 1234 (Gast)


Lesenswert?

Habe Atollic schon erfolgreich in Betrieb, würde aber gerne trotzdem 
Yagarto nutzen. Das Board ist für den Preis echt sehr günstig, dass kann 
man sogar für kleiner Projekte nutzen, wo es überdimensioniert ist, 
einfach weil es so günstig ist.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Gibt es von ST noch kein "Programming Manual" speziell auch zu den "dsp 
instructions"? Ich habe dort nur eines für die älteren Typen gefunden:

http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/PROGRAMMING_MANUAL/CD00228163.pdf

Von ARM selbst gibt es etwas:

http://infocenter.arm.com/help/topic/com.arm.doc.ddi0439b/DDI0439B_cortex_m4_r0p0_trm.pdf#page=33

Aber wie vollständig ist das von ST umgesetzt?

von Hannes S, (Gast)


Lesenswert?

Christoph Kessler (db1uq) schrieb:
> Gibt es von ST noch kein "Programming Manual" speziell auch zu den "dsp
>
> instructions"?

Alles was den Core betrifft (CPU, FPU, NVIC, MPU...) ist Sache von ARM. 
ST verwendet die Module 1:1 und schließt daran lediglich eigene 
Peripherie an.
Es kann jöchstens sein, dass mal ein Modul weggelassen wird, wie z.B. 
die MPU bei den 103ern. Wenn es aber implemtiert ist, dann gilt die Doku 
von ARM.

Ansonsten ist das kleine Board wirklich das coolste Teil, das ich jemals 
für unter 20€ gekauft hab. Zu meiner Überraschung klingt der Audio DAC 
auch ganz gut. Und nachdem das mit WAV schon super klappt, bin ich 
gerade mal am schauen, was man da so mit AAC oder OGG anstellen könnte. 
Falls jemand dazu ein paar Tipps hat und mich in die richtige Richtung 
schubsen könnte? Hab mir gerade mal FAAD 2.7 downgeloadet.... die Doku 
dazu ist doch eher sehr spärlich...

von spaltpol (Gast)


Lesenswert?

Kann man das auch unter Linux zB. mit OpenOCD benutzen ?
Hab kein Fensterchen. Aber das Board hätte ich gerne :)

von fddgddg (Gast)


Lesenswert?

hab das dingen jetz auch liegen

der 3achsen sensor hat auch seinen reiz :)

morgen mal etwas mit spielen

von Knut (Gast)


Lesenswert?

Wäre cool wenn ihr Euere Ergebnisse mal
postet. Ich hab mir auch Son Ding bestellt.


Knut

von hp-freund (Gast)


Angehängte Dateien:

Lesenswert?

Ich bekomme mein F4 auch vermutlich morgen, aber da ich kein Freund von 
Beschränkungen bin hab ich mir schon mal ein GCC Makefile gebastelt.
Es wird das Projekt IO_Toggle im seinem Verzeichnis erstellt und die 
main.* ins Hauptverzeichnis kopiert.

1. die Dateien Makefile und Makefile.common in das gleiche Verzeichnis 
legen in dem sich auch STM32F4-Discovery_FW_V1.1.0/ befindet

2. make erzeugt das Projekt (arm-none-eabi-*)

3. es kann damit auch ein Makefile Projekt in eclipse angelegt werden

4. als Loader/Debugger werde ich https://github.com/texane/stlink 
(STLINKv2)
verwenden. Läuft schon mit stm32l.

Das Ganze kann schon mal als Vorlage für andere eclipse/Makefile 
Projekte aus der STM32F4-Discovery_FW_V1.1.0/ benutzt werden.

von Tom (Gast)


Angehängte Dateien:

Lesenswert?

Bekomme unter GCC 4.6 aus Yagarto Toolchain folgende Fehlermeldung 
(siehe Anhang) (Windows). Arbeitest du unter Linux oder Windows?

von Bernd (Gast)


Lesenswert?

Ich schaue mir gerade die Cortex M3 Familie an und finde die sehr 
interessant.
Unterscheiden sich die M3 und M4 Familien sehr stark?
Kann man da die gleiche Toolchain nutzen?
Das Bord klingt sehr interessant!

von Bernd (Gast)


Lesenswert?

Das Datenblatt verrät es:

2.1 Full compatibility throughout the family

The STM32F405xx and STM32F407xx are part of the STM32F4 family. They are 
fully pin-to-pin, software and feature compatible with the STM32F2xx 
devices, allowing the user to try different memory densities, 
peripherals, and performances (FPU, higher frequency) for a greater 
degree of freedom during the development cycle.

The STM32F405xx and STM32F407xx devices maintain a close compatibility 
with the whole STM32F10xxx family. All functional pins are pin-to-pin 
compatible. The STM32F405xx and STM32F407xx, however, are not drop-in 
replacements for the STM32F10xxx devices: the two families do not have 
the same power scheme, and so their power pins are different. 
Nonetheless, transition from the STM32F10xxx to the STM32F40x family 
remains simple as only a few pins are impacted.

von hp-freund (Gast)


Lesenswert?

Tom schrieb:
> Bekomme unter GCC 4.6 aus Yagarto Toolchain folgende Fehlermeldung
> (siehe Anhang) (Windows). Arbeitest du unter Linux oder Windows?

Ich benutze gcc 4.6.1 unter Linux.

Existiert eine readlink(.exe) Datei und ist diese auch im Suchpfad?

Hat schon jemand das Makefile unter Window$ erfolgreich getestet?

von Frank K. (fchk)


Lesenswert?

Bernd schrieb:

> Unterscheiden sich die M3 und M4 Familien sehr stark?

Der M4 ist von der Software-Seite her ein M3 plus DSP-Befehlserweiterung 
plus Gleitkommaeinheit (sofern vom Chiphersteller verbaut).

> Kann man da die gleiche Toolchain nutzen?

Ja. Die sollte natürlich die zusätzlichen M4-Befehle nutzen, sonst hast 
Du vom M4 nichts.

fchk

von Stefan V. (vollmars)


Lesenswert?

Das könnte speziell auch für Linux interessant sein:

http://www.versaloon.com/bbs/viewtopic.php?f=2&t=13630&hilit=STM32F4DISCOVERY

von hp-freund (Gast)


Lesenswert?

@Tom

alternativ kannst Du TOP= am Anfang vom Makefile.common auch von Hand 
setzen.

von Uwe Bonnes (Gast)


Lesenswert?

Mit
 git://github.com/texane/stlink.git
kann man den STLINKV1/2 unter Linux benutzen.

von ARM-Gast (Gast)


Lesenswert?

Hallo,
hat schon jemand Erfahrung mit der VFP 
(Vector-Floating-Point-Coprozessor), Floating point unit (FPU), wie man 
den aktiviert und ob er in TrueStudio (free Version) unterstützt wird. 
Ich habe irgendwo gelesen, dass der VFP in CodeSourcery G++ lite nicht 
unterstützt wird, stimmt das?
danke

von Dirk B. (garag)


Lesenswert?

Moin moin,

@hp-freund:
Verwendest du die Makefiles unter Linux ?
Welche Toolchain benutzt du ?
Um eine Toolchain zu bekommen hatte ich das Script 
"summon-arm-toolchain" aus dem git Repository 
"https://github.com/esden/summon-arm-toolchain.git"; verwendet. Geht 
soweit auch, jedoch wird soweit ich weiss keine Hardware FPU 
unterstützt.

Mit dem STlinkV2 Loader/Debugger von 
https://github.com/texane/stlink.git konnte ich bereits ein Programm aus 
dem RAM ausführen.

Gruß
Garag

von hp-freund (Gast)


Lesenswert?

Dirk B. schrieb:
> Verwendest du die Makefiles unter Linux ?

ja - LFS

> Welche Toolchain benutzt du ?

eine angepasste auf Grundlage von http://fun-tech.se/stm32/gcc/index.php 
und anderen. Für die HW FPU müsste man vielleicht noch etwas ändern...
Gibt es readlink unter Win?

von Matthias K. (matthiask)


Lesenswert?

Ist das Mini USB Kabel dabei?

von Hubert (Gast)


Lesenswert?

Matthias K. schrieb:
> Ist das Mini USB Kabel dabei?

Nein.

von Tom (Gast)


Lesenswert?

Matthias K. schrieb:
> Gibt es readlink unter Win?
´
Ok also ich  konnte readlink bei mir unter WinXP nicht finden. Habe die 
Zeile ausgetauscht gegen festen Pfad:
TOP="C:\Dokumente und 
Einstellungen\test\Desktop\stm32f4discovery_firmware_new"
und jetzt kompiliert er auch, beendet aber mit einer Fehlermeldung (im 
Anhang), hat aber trotzdem ein Hex und Bin File erzeugt, dass sich 
flashn lässt und soweit scheinbar funktioniert.

Matthias K. schrieb:
> Ist das Mini USB Kabel dabei?

Nein, kann man bei dem Preis aber auch nicht verlangen.

von Tom (Gast)


Angehängte Dateien:

Lesenswert?

Anhang vergessen.
Übrigens schon mal vielen Dank an hp-freund für die Bereitstellung der 
Make-Files. Schön wäre eine Anpassung an das Beispiel aus dem 
Demonstrations Ordner mit allen USB Bibos etc. Ich werde es mal selbst 
versuchen.

von hp-freund (Gast)


Angehängte Dateien:

Lesenswert?

Wieso steht
arm-none-eabi-size: 'main.elf': No such file
bei dir vor dem cp? Hast Du die Reihenfolge geändert/Dualcore?

Leerzeichen im Pfad könnten auch Probleme bringen, würde ich vermeiden.

Tom schrieb:
> Schön wäre eine Anpassung an das Beispiel aus dem
> Demonstrations Ordner mit allen USB Bibos etc. Ich werde es mal selbst
> versuchen.

Und dann wieder hier bereitstellen.
Genau das war mein Ziel :-)

Hier noch mal für das Projekt DAC_SignalsGeneration:

Das Ganze geht sicher auch besser, aber ich erstelle meine Makefiles 
extra so das ich keinerlei Veränderungen im STM32F4-Discovery_FW_V1.1.0 
Verzeichis vornehmen muss.

Vielleicht schreibt noch einer ein Universal Makefile für alle und 
eigene Projekte...

von Such! (Gast)


Lesenswert?

hp-freund schrieb:
> Gibt es auch bei RS.

Wo? (Bitte einen Link, ich finde es nicht)

von Such! (Gast)


Lesenswert?

Sorry, die Suche nach "Discovery" findet es nicht. "STM32F4DISCOVERY" 
dagegen schon. 14,73

von Christoph db1uq K. (christoph_kessler)


Angehängte Dateien:

Lesenswert?

Best.Nr. 745-8434

von Matthias K. (matthiask)


Lesenswert?


von Matthias K. (matthiask)


Lesenswert?

Christoph Kessler (db1uq) schrieb:
> Best.Nr. 745-8434

Was für ein Mini USB Kabel braucht man genau? Kannst Du bitte mal ein 
Foto von der USB Buchse machen?

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Das Ding hat zwei USB-Buchsen, eine "Mini" für den ST-Link ( dafür sitzt 
noch ein zweiter kleinerer ARM-Cortex drauf) und eine "Micro" für den 
USB-OTG direkt am Controller.

Hab es erst heute bekommen, am USB-Port des PC angeschlossen blinken ein 
paar LEDs im Kreis herum. Es soll auch ein Testprogramm für den 
Bewegungssensor installiert sein.

http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/USER_MANUAL/DM00039084.pdf
das Handbuch mit Schaltplänen

von Matthias K. (matthiask)


Lesenswert?

Vergleich der STM32 Atollic Voll- und Lite Version hier:
http://www.atollic.com/download/2.2/Atollic_TrueSTUDIO_Feature_comparison_v2.2.pdf
(pdf 2MB)

von Gnubbel (Gast)


Lesenswert?

Christoph Kessler (db1uq) schrieb:
> am USB-Port des PC angeschlossen blinken ein
> paar LEDs im Kreis herum. Es soll auch ein Testprogramm für den
> Bewegungssensor installiert sein

Jupp, durch drücken des blauen Tasters kann man das Programm starten. 
Dann meldet sich das Board über die Micor-USB-Buchse als Maus an.

von Frank K. (fchk)


Angehängte Dateien:

Lesenswert?

Und wer jetzt anfangen will zu basteln, für den gibts hier die passende 
Eagle-Library von mir.

fchk

von hp-freund (Gast)


Lesenswert?

Weiss jemand wo es diese Einzel-,Doppel- oder Mehrfach Steckbuchsen mit 
Kabel gibt, so wie die PC LED und Schalterkabel zu Motherboard? Ich 
glaube es gab hier schon mal einen Beitrag, komme aber nicht mehr auf 
den Namen der Teile...

von hp-freund (Gast)


Lesenswert?

Noch vergessen: die sollten auch auf den kurzen Stiften auf der 
Oberseite sicher halten.

von Xenu (Gast)


Lesenswert?

Die Crimpkontakte und Gehäuse findest Du hier (nach "Crimp" suchen).

http://www.csd-electronics.de/de/index.htm

Ist der einzige mir bekannte Händler, der auch 1-polige Gehäuse führt.
Ab 2-polig und aufwärts bekommt man sie auch woanders (Farnell, etc.).
Passende Zange gibts da auch (Crimpzange LPV/CV).

Ich bin mir aber ziemlich sicher, dass die nicht auf den kurzen Stiften 
auf der Oberseite halten (kanns nicht testen, hab das Board nicht hier).

von Noname (Gast)


Lesenswert?

Hat jemand evt. schon ein "Blinky" (Source Code, Linker-Script, ...)
für den STM32F4 für gcc und kann es hier in den Thread hochladen ?

von Dirk B. (garag)


Lesenswert?

Unter https://github.com/texane/stlink gibt es für Linux einen GDB 
Server für den STLink auf dem Board. Zusätzlich gibt es zwei 
Beispielprojekte.

Das ganze zusammen mit dem summon-arm-toolchain Script ( 
https://github.com/MikeSmith/summon-arm-toolchain ) ergibt eine nette 
Entwicklungsumgebung.

Momentan bin ich noch dran das Ganze mit zusammen mit Eclipse zum Laufen 
zu bekommen.

von Lutz Schulze (Gast)


Lesenswert?

Was haltet ihr von diesem Board? Wollte mir das zu Weihnachten schenken 
:-)
Kostet ca. 60 Teuronen und hat ein 3.2" TFT, LPC1768.
http://www.ebay.de/itm/NXP-LPC1768-ARM-Development-Board-3-2-TFT-LCD-Module-/270653509451?pt=BI_Electrical_Equipment_Tools&hash=item3f0434cf4b

von hp-freund (Gast)


Lesenswert?

Xenu schrieb:
> Ich bin mir aber ziemlich sicher, dass die nicht auf den kurzen Stiften
> auf der Oberseite halten (kanns nicht testen, hab das Board nicht hier).
>
Effektiv sind ca. 4mm Stiftlänge nutzbar, könnte reichen.
Danke für die richtigen Stichworte. Dadurch bin ich auf die ebay Suche:

female jumper wire

gekommen. Werd mir mal einen Vorrat anlegen.

****************************************

@Noname

wenn Du die ST Library nutzen willst, nimm dieses Makefile:
Beitrag "Re: Billiges Cortex-M4-Board STM32F4DISCOVERY jetzt erhältlich"

Bei Bedarf kannst Du auch alle nötigen Dateien in ein Verzeichniss 
kopieren.

von Simon H. (simi)


Lesenswert?

Lutz Schulze schrieb:
> Was haltet ihr von diesem Board? Wollte mir das zu Weihnachten schenken
> :-)

Und ich habe mir soeben das (gebraucht) geleistet:

http://www.dolphin-ebike.ch/

... Aber das gehört auch nicht in diesen Thread. :-)

von Lutz Schulze (Gast)


Lesenswert?

Simon Huwyler schrieb:
> Und ich habe mir soeben das (gebraucht) geleistet:
Danke Simon, Fahrradfahren ist ja auch gesünder als tagelang nur sitzen, 
sitzen und sitzen und programmieren. Ich habe mir jetzt auch dieses 
Büciklett bestellt.

von Noname (Gast)


Lesenswert?

Kann mir jemand die *.bin Files vom blink und blink_flash
von https://github.com/texane/stlink
zur Verfügung stellen ? Ich habe sie zwar selbst gebaut,
aber irgendwo ist der Wurm drin, es blinkt nix...
Funktionieren die beiden *.bin Files, die erzeugt werden, überhaupt ?

Generelle Frage:
Muss man im Fall des Ausführens aus dem Flash wirklich so eine lange
Init-Sequenz ausführen (RCC_Configuration, RTC_Configuration, ...),
bzw. warum ist dies beim Ausführen aus dem RAM nicht nötig ?

von Simon H. (simi)


Lesenswert?

Und ich hatte schon Angst, Dir zu fest auf die Füsse getreten zu sein. 
:-) Schön, dass Du Humor hast! :-))

So. Und jetzt zurück zum Thema, sobald ich bei Mouser genug 
zusammengekrömelt habe, um mir so ein Ding versandkostenfrei schicken zu 
lassen, teste ich das Ding nämlich auch mal aus!

von hp-freund (Gast)


Lesenswert?

Noname schrieb:
> blink_flash

funtionier bei mir auch nicht. Aber hol dir mal das aktuelle git, da 
gibt es jetzt ein Verzeichnis stm32f4.

Die Projekte funktionieren.

von Frank K. (fchk)


Lesenswert?

Lutz Schulze schrieb:
> Was haltet ihr von diesem Board? Wollte mir das zu Weihnachten schenken
> :-)
> Kostet ca. 60 Teuronen und hat ein 3.2" TFT, LPC1768.
> 
http://www.ebay.de/itm/NXP-LPC1768-ARM-Development-Board-3-2-TFT-LCD-Module-/270653509451?pt=BI_Electrical_Equipment_Tools&hash=item3f0434cf4b

Hmm. Ja. Ganz nett. Denke daran, dass das TFT relativ langsam angebunden 
ist. Der Bildschirmspeicher liegt nicht im Adressraum des Prozessors, 
d.h. Du kannst nur ziemlich indirekt über den Controller im Display 
darauf zugreifen. Für statische Grafik reichts, für Video usw ist das zu 
langsam. Da brauchst Du einen Prozessor, der den TFT-Controller direkt 
eingebaut hat, plus dazu passend ein controllerloses Display.

Und für ein Linux ist das Teil auch zu klein - das war Dir aber wohl 
vorher schon klar gewesen, oder?

fchk

von Noname (Gast)


Lesenswert?

@hp-freund: Vielen Dank für den Hinweis ! Jetzt blinkts !!!

Noch ein paar Fragen an die Wissenden:

1) Weiß jemand, ob es ein (kleines) Win32 Command Line Tool (ohne GUI)
gibt, mit dem man den STM32F4 via SWD programmieren kann ?
Oder kann man das STLINK V2 Tool mit einem Command-Line
Parameter aufrufen, um ein *.bin / *.hex ins Flash zu laden ?
(OpenOCD geht bestimmt, dachte mehr an ein kleines, eigenständiges Tool,
dass man einfach via Batchdatei aufrufen kann...)

2) Stichwort: Debug-Ausgaben
Kann man die Ausgaben einer der seriellen Schnittstelle via STLINK V2
Hardware zum PC übertragen und sich dort anzeigen lassen ?
Vielleicht auch Daten vom PC zurück zum STM32F4 ?

von Marco S. (masterof)


Lesenswert?

Hallo

Hat jemand einen Link Mac-kompatiblen Tool für den STLINKV2 ?

Gruß Marco

von hp-freund (Gast)


Lesenswert?


von suchender (Gast)


Lesenswert?

Gibt es eigentlich ein Datenblatt, in dem die Pinbelegung des 
verwendeten Mikrocontrollers STM32F407 bzw, die Bedeutung der 
Abkürzungen auf dem Board (z.B. PH0, PH1, etc) dokumentiert sind ?

von hp-freund (Gast)


Lesenswert?


von fddgddg (Gast)


Lesenswert?

Lutz Schulze schrieb:
> Was haltet ihr von diesem Board? Wollte mir das zu Weihnachten schenken
> :-)
> Kostet ca. 60 Teuronen und hat ein 3.2" TFT, LPC1768.
> Ebay-Artikel Nr. 270653509451

evtl alternative
http://www.steitec.net/ARM-Boards/

von Noname (Gast)


Lesenswert?

Im User Manual UM1472 ist die Schaltung des STM32DISCOVERY zu finden:
http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/USER_MANUAL/DM00039084.pdf
(ab Seite 30)

Alle Details zur Peripherie finden sich im Reference Manual RM0090:
http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/REFERENCE_MANUAL/DM00031020.pdf

Pin-Belegung (ab Seite 38) und
Alternate Function Mapping (ab Seite 49) gibt es
im Data Sheet STM32F405xx STM32F407xx:
http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/DM00037051.pdf

von Tom (Gast)


Lesenswert?

Noname schrieb:
> 1) Weiß jemand, ob es ein (kleines) Win32 Command Line Tool (ohne GUI)
> gibt, mit dem man den STM32F4 via SWD programmieren kann ?
> Oder kann man das STLINK V2 Tool mit einem Command-Line
> Parameter aufrufen, um ein *.bin / *.hex ins Flash zu laden ?
> (OpenOCD geht bestimmt, dachte mehr an ein kleines, eigenständiges Tool,
> dass man einfach via Batchdatei aufrufen kann...)

Ja das STM32 ST-LINK Utility kann man über Console bedienen. Im Programm 
unter Help den ersten Punkt kommst du zum Datenblatt mit Beschreibung 
wie man das als Batch Datei machen kann ... Nutze das hier in der Firma.

von Noname (Gast)


Lesenswert?

@Tom: Danke !

Das Tool ist im UM0892 Kapitel 4 beschrieben. Man kann aber scheinbar
nicht mehr das ST-Link Utility selbst aufrufen, sondern es gibt eine
Command-Line Version ST-LINK_CLI (im gleichen Verzeichnis wie die
GUI Version).

Beispiel für das Programmieren eines HEX-Files und anschließendem Start:
1
"C:\Program Files (x86)\STMicroelectronics\STM32 ST-Link Utility\ST-Link Utility\ST-LINK_CLI.exe" -c SWD -P firmware.hex -V -Rst

von Lutz Schulze (Gast)


Lesenswert?

Frank K. schrieb:
> Und für ein Linux ist das Teil auch zu klein - das war Dir aber wohl
> vorher schon klar gewesen, oder?
Nein. Danke Frank K. für diese wertvollen Infos. Werde mich dann wohl 
weiter umsehen müssen.

von stm (Gast)


Lesenswert?

mein STM32 Discovery ist grade von RS gekommen. hat schon jemand ein 
paar nette spielereien auf dem board realisiert? wofür bietet es sich 
an?

ich werde jetzt erstmal keil ans rennen bringen und schauen das ich ein 
paar der examples ausprobiere

von stm (Gast)


Lesenswert?

irgendwie mag keil das board nicht ^^
die beispielprojekte sind ja eigentlich auch als keil projekt vorhanden 
und auch die einstellungen des programmieradapters sind bereits 
voreingestellt. trotzdem meldet keil immer das es keinen st link 
findet..

von Martin M. (capiman)


Lesenswert?

Probiers mal mit dem Treiber von
http://www.st.com/internet/evalboard/product/251168.jsp
(Registerkarte "Design support", USB Treiber V2 !)
Du kannst für erste Schritte auch das ST-Link Utility benutzen.
Damit kannst du auch prüfen, ob das Board generell antwortet.

von stm (Gast)


Lesenswert?

habe die treiber und das stm utility bereits installiert. das utility 
findet mein board aber auch nicht. win 7 64 bit problem?

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


Lesenswert?

Schaue mal unter Systemsteuerung > Gerätemanager ob da irgend ein USB 
Gerät mit einem gelben Ausrufezeichen oder anderem Warn-Symbol zu sehen 
ist, wenn dein Board ein gesteckt ist.

von Matthias K. (matthiask)


Lesenswert?

Hier ein einfaches Blinky mit dem Atollic TrueStudio Lite V 2.2.0.
Die blaue LED sollte etwa im Sekundentakt blinken.

Ablauf:

In einem Workspace ein neues Projekt anlegen. Als EVA-Board im 
Assistenten gleich das F4Discovery auswählen. Dann werden einige 
Voreinstellungen automatisch gemacht. Alle anderen Einstellungen 
unverändert lassen.

Projekt Properties / C/C++ General  Paths und Symbols  #Symbols
Ein neues Symbol mit ADD anlegen Name: HSE_VALUE Value: 8000000
(Legt die Quarzfrequenz als Basis für die PLL fest).

Dann in die main.c folgenden Inhalt kopieren:
1
//***********************************************************************************************
2
// Hardwarebasis:   F4DISCOVERY
3
// Programm:        Blinky ohne SysTick
4
// Mikrocontroller: STM32F407VG (ARM 32-bit CORTEX-M4) F4-DISCOVERY Board
5
// Speicher:        1MB FLASH, 192KB SRAM
6
// Taktfrequenz:    Quarz: 8MHz, mit PLL auf: 168MHz
7
// Stand:           17.11.2011
8
// IDE/Compiler:    Atollic TrueStudio STM32-Lite 2.2.0
9
// STM FW-Lib:      V 1.0.0 RC1
10
//***********************************************************************************************
11
12
/* Includes */
13
#include <stddef.h>
14
#include "stm32f4xx.h"
15
16
/*
17
  Achtung!!
18
  HSE_VALUE = 8000000 als globales Symbol setzen (Quarzfrequenz 8MHz)
19
  Defaultwert ist 25MHz, sonst stimmt die PLL nicht.)
20
  Systemtakt wird dann automatisch auf 168MHz gesetzt.
21
22
  Alternativ: HSE_VALUE in stm32f4xx.h auf 8000000 setzen
23
*/
24
25
//***********************************************************************************************
26
// Defines
27
//***********************************************************************************************
28
#define LD_6_AUS      GPIO_ResetBits(GPIOD,GPIO_Pin_15) /* blaue LED  */
29
#define LD_6_EIN      GPIO_SetBits(GPIOD,GPIO_Pin_15)
30
31
//***********************************************************************************************
32
// Verzögerungsfunktion ohne Timer/SysTick
33
//***********************************************************************************************
34
void my_delay(void) {
35
  volatile uint32_t z = 1500000;
36
  while(z--);
37
}
38
39
//***********************************************************************************************
40
// Hauptprogramm
41
//***********************************************************************************************
42
43
// SystemInit(); wird automatisch vor der MAIN-Funktion
44
// vom startup_stm32f4xx.s gerufen
45
46
int main (void) {
47
48
  GPIO_InitTypeDef  GPIO_InitStructure;
49
50
  // GPIOD Takt freigeben
51
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
52
53
  // LED-GPIO als Ausgang konfigurieren
54
  GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_15;
55
  GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_OUT;
56
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
57
  GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_NOPULL;
58
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
59
  GPIO_Init(GPIOD, &GPIO_InitStructure);
60
61
  // Hauptschleife
62
  while(1) {
63
    LD_6_EIN;
64
    my_delay();
65
    LD_6_AUS;
66
    my_delay();
67
  }
68
}

von Matthias K. (matthiask)


Lesenswert?

stm schrieb:
> habe die treiber und das stm utility bereits installiert. das utility
> findet mein board aber auch nicht. win 7 64 bit problem?

Richtiges Mini USB B Kabel? Es gab ganz früher mal abweichende 
Belegungen.

von Marco S. (masterof)


Lesenswert?

@hp-freund

Danke für den link hat aber leider nicht funktioniert.
Aber es hat mir geholfen, da es mich auf den Parameter CONFIG_USE_LIBSG 
aufmerksam gemacht hat.

Ich habe das Repo https://github.com/texane/stlink verwendet und 
compilert mit
"make CONFIG_USE_LIBSG=0"

gruß marco

von Daniel (Gast)


Lesenswert?

Hallo,

ich arbeite unter Linux und versuche mich "mal wieder" an der Sache. 
Dank der git-Repositories, ist der Start inzwischen ja sehr einfach 
geworden. Die Beispiele funktionieren soweit.

Da stellt sich mir die Frage, wie man das bei eigenen Projekten sauber 
angeht.
Ich möchte mit Eclipse arbeiten, jedoch trotzdem möglichst unabhängig 
von der IDE bleiben. Daher bieten sich m.E. Makefiles an, wie sie auch 
in den Beispielen benutzt werden.

Wie binde ich eins der Beispiele in die IDE ein, sodass alles, also auch 
das Debugging funktioniert? Oder muss das Makefile dann spezielle 
Targets haben, damit es funktioniert?

Kann mir da jemand einen kleinen Einstieg geben? Es gibt zwar ne Menge 
Informationen dazu im Netz, aber man weiß nicht so richtig, ob man auf 
dem richtigen Pfad ist... So ein, zwei Sätze, wie man da rangeht, würden 
mir sehr helfen.

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


Lesenswert?

Hier gibt es
http://www.mikrocontroller.net/articles/STM32_Eclipse_Installation
ein
"Blink-LED, komplettes Eclipse-Workspace von MmVisual"
(STM32F1xx)

Da sollte alles drin sein.

von Maxx (Gast)


Lesenswert?

Wie sehe ich, ob das Teil wirklich mit 168MHz läuft?

HSE_VALUE habe ich auf 8000000 gesetzt, also die 8MHz Quarzfrequenz.

Der GPIO Ausgang ist auf 100MHz konfiguriert.

..
1
while(1) {
2
    GPIOB->BSRRH = GPIO_Pin_15; //PB15 = L;
3
    GPIOB->BSRRL = GPIO_Pin_15; //PB15 = H;
4
}
Ich messe:

L = 75ns
H = 130ns

Kommt mit etwas zu lang vor, für die 168 MHz.

Auch kommt bei mir nicht 168MHz raus, wenn ich die Berechnungsangaben in 
der system_stm32f4xx.c nachvollziehe.

/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */
#define PLL_M      25
#define PLL_N      336

/* SYSCLK = PLL_VCO / PLL_P */
#define PLL_P      2

von Tom (Gast)


Lesenswert?

Maxx schrieb:
> Auch kommt bei mir nicht 168MHz raus, wenn ich die Berechnungsangaben in
>
> der system_stm32f4xx.c nachvollziehe.

Unter der folgenden Adresse gibt es unter Configuration Utilitys ein 
Excel Sheet mit dem du die Einstellungen überprüfen und eine 
system_stm32f4xx.c erzeugen lassen kannst. Vielleicht hilft es dir.

Alternativ kannst du auch eine Peripherie wie zum Beispiel den Timer, 
welcher von bestimmten Systemclocks abhängig ist, konfigurieren und 
nachmessen, z.B. PWM Signal am Oszi die eingestellte Frequenz 
überprüfen.

von Tom (Gast)


Lesenswert?


von Maxx (Gast)


Lesenswert?

Tom schrieb:
> Link vergessen
> http://www.st.com/internet/mcu/product/252140.jsp

Tolles Tool, kannte ich noch nicht!

In der Tat stimmt die Berechnung in der system_stm32f4xx.c nicht für den 
8MHz Quarz. Der µC rennt also nur mit 53,76 MHz.

/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */
#define PLL_M      8   /* 25 */
#define PLL_N      336 /* 336 */

/* SYSCLK = PLL_VCO / PLL_P */
#define PLL_P      2 /* 2 */

also muss neben HSE_VALUE = 8000000 auch noch PLL_M angepasst werden.
PLL_M muss von 25 in 8 geändert werden. Dann läuft der µC mit 168 MHz.

Ich messe jetzt:

L = 23ns
H = 40ns

Das passt jetzt.

von Knut (Gast)


Lesenswert?

So, ich hab auch das "BlinkProjekt" mal ausprobiert. Funktioniert. 
Jedoch würde ich gern das erzeugte Hex-File mit einem seperaten Tool 
flashen. Gibt's da was? Ich habe noch keinen Button "Flashn" gefunden. 
Nur wenn ich über debug gehe wird der Controller geflasht und danach der 
Debugger gestartet.

Zum Verständnis, ich will nur den Code (Hexfile) mit True Studio 
erstellen und das Hexfile seperat flashen.


Gruß
Knut

von Matthias K. (matthiask)


Lesenswert?

Knut schrieb:
> o, ich hab auch das "BlinkProjekt" mal ausprobiert. Funktioniert.
> Jedoch würde ich gern das erzeugte Hex-File mit einem seperaten Tool
> flashen.

Welcher Compiler?

von Martin M. (capiman)


Lesenswert?

Du kannst dafür das ST-Link Utility (unter Windows) benutzen:
http://www.st.com/internet/evalboard/product/251168.jsp
(lässt sich auch ohne GUI aufrufen, siehe oben,
Stichwort: ST-LINK_CLI.exe)

von Knut (Gast)


Lesenswert?

Atollic hat soweit ich weiß den GCC.



Knut

von Matthias K. (matthiask)


Lesenswert?

Knut schrieb:
> Atollic hat soweit ich weiß den GCC.

Atollic kann in der Lite-Version kein Hexfile erzeugen, sondern nur ein 
.elf File. Um daraus ein .hex zu erzeuen brauchst Du ein objcopy aus 
einer anderen WINARM Installation, zB. arm-none-eabi-objcopy von 
YAGARTO:

Aufruf:
arm-none-eabi-objcopy -O ihex "Blinky.elf" "Blinky.hex"

Das ganze kann man bei Atollic als Afterbuild dann automatisch machen 
lassen.

ST-Link Utility geht dann zum flashen des .hex. Der STM32 hat auch einen 
UART-Bootloader ab Werk. Dazu müsstest Du aber noch einen RS-232 Treiber 
dazwischen bauen.

In der Software zum Board (STM32F4-Discovery_FW_V1.1.0) ist auch ein 
Projekt FW_Upgrade, welches per USB (Laufwerk) die Firmware flasht. Habe 
es noch nicht ganz verstanden und noch nicht ausprobiert.

von Knut (Gast)


Lesenswert?

Kannst du bitte etwas genauer beschreiben wie das mit dem Afterbuild In 
Atollic geht?


Gruß
Knut

von Matthias K. (matthiask)


Lesenswert?

Nochwas:

Das Geschwindigkeitsproblem hatte ich auch. Mit den 
Standardeinstellungen nach einer Projekt-Neuanlage mit Atollic wird von 
einem 25MHz Quarz ausgegangen. Das Board hat aber nur 8MHz. Somit läuft 
es viel zu langsam.

HSE_VALUE = 8000000 als globales Symbol reicht allein nicht aus.

In der system_stm32f4xx.c noch ändern:

#define PLL_M      8   /* zuvor 25 */

Mit beiden Änderungen läuft der F4 dann mit seinen 168 MHz, also mehr 
als 3x schneller als zuvor. Dein Blinky wird sich feuen...

von Matthias K. (matthiask)


Angehängte Dateien:

Lesenswert?

Knut schrieb:
> Kannst du bitte etwas genauer beschreiben wie das mit dem Afterbuild In
> Atollic geht?

Schreib das ganze in eine afterbuild.bat und trage sie bei den Projekt 
Properties ein, siehe Bild.

von Knut (Gast)


Lesenswert?

Sitze grad nicht am PC, daher noch ne dumme Frage:

Jagarto installieren, die non-arm-eabi-objcopy.?exe? in mein Verzeichnis 
kopieren und dann eine *.bat schreiben die obigen Aufruf macht und diese 
dann im Truestudio mit einbinden?

Sorry für die vielen Fragen, bin aber auf dem Zebit völliger Neuling.



Gruß Knut

von Knut (Gast)


Lesenswert?

Kannst du nicht die non-arm... hochladen, das währe später auch für 
einen neuen Artikel hier gut! Gibt sicher nochmehr Leute die dA Probleme 
haben.


Gruß
Knut

von Fritz M. (Gast)


Lesenswert?

Matthias K. schrieb:
> Atollic kann in der Lite-Version kein Hexfile erzeugen, sondern nur ein
> .elf File.

Knut schrieb:
> So, ich hab auch das "BlinkProjekt" mal ausprobiert. Funktioniert.
> Jedoch würde ich gern das erzeugte Hex-File mit einem seperaten Tool
> flashen.

Matthias K. schrieb:
> Atollic kann in der Lite-Version kein Hexfile erzeugen, sondern nur ein
> .elf File.

Etwas aufwendiger, aber es funktioniert:

Beitrag "TrueSTUDIO+Bootloader+ST Flash Loader Anleitung"

von Knut (Gast)


Lesenswert?

Cool, werd ich morgen gleich ausprobieren.


Knut

von Matthias K. (matthiask)


Lesenswert?

Knut schrieb:
> Kannst du nicht die non-arm... hochladen, das währe später auch für
> einen neuen Artikel hier gut! Gibt sicher nochmehr Leute die dA Probleme
> haben.

Das Problem wurde hier schon mehrfach besprochen.

Knut schrieb:
> Sitze grad nicht am PC, daher noch ne dumme Frage:
>
> Jagarto installieren, die non-arm-eabi-objcopy.?exe? in mein Verzeichnis
> kopieren und dann eine *.bat schreiben die obigen Aufruf macht und diese
> dann im Truestudio mit einbinden?
>

ja.

Fritz M. schrieb:
> Etwas aufwendiger, aber es funktioniert:
>
> Beitrag "TrueSTUDIO+Bootloader+ST Flash Loader Anleitung"

oder so

von Knut (Gast)


Angehängte Dateien:

Lesenswert?

So, ich habs ausprobiert wie Fritz M. es gemacht hat. Leider bekomme ich 
noch eine Fehlermeldung mit der ich nichts anfangen kann und der Build 
wird unterbrochen: (siehe Anhang)


Was habe ich übersehen?


Gruß
Knut

von Knut (Gast)


Lesenswert?

OK, wenn ich den Namen der zu Hexenden Datei so angebe wie von Matthias 
K. erhalte ich ein *.Hex File (Juhu). Aber das is doch müßig, in der 
anderen Variabnte ist sicherlich nur n Syntax-Fehler.



Gruß
Knut

von Knut (Gast)


Lesenswert?

Habs:

arm-atollic-eabi-objcopy -O ihex  "${BuildArtifactFileBaseName}.elf" 
"${BuildArtifactFileBaseName}.hex"

da Fehlten die Gänsefüßchen!


Besten Dank
Knut

von Matthias K. (matthiask)


Lesenswert?

Knut schrieb:
> Besten Dank
> Knut

Hast Du

#define PLL_M      8
und
HSE_VALUE = 8000000

mal geändert?

von Fritz M. (Gast)


Lesenswert?

Knut schrieb:
> Habs:
>
> arm-atollic-eabi-objcopy -O ihex  "${BuildArtifactFileBaseName}.elf"
> "${BuildArtifactFileBaseName}.hex"
>
> da Fehlten die Gänsefüßchen!

Bei mir funktioniert es, wenn ich unter Project > Properties > C/C++ 
Build > Settings > Build Steps > Post-build Steps > Command:

arm-atollic-eabi-objcopy -O ihex ${BuildArtifactFileBaseName}.elf 
${BuildArtifactFileBaseName}.hex

eintrage. Ohne Gänsefüßchen!

Die Datei arm-atollic-eabi-objcopy.exe befindet sich beim mir (WIN7 64) 
unter:

C:\Programme(x86)\Atollic\TrueSTUDIO for STMicroelectronics STM32 Lite 
2.2.0\ARMTools\bin

Grüße
Fritz M.

von Fritz M. (Gast)


Lesenswert?

Wichtig ist das Leerzeichen zwischen

ihex ${BuildArtifactFileBaseName}.elf ${BuildArtifactFileBaseName}.hex
                                     ^

Das wird eventuell verschluckt beim kopieren.

Grüße
Fritz M.

von Matthias K. (matthiask)


Lesenswert?


von der A. (the_a)


Lesenswert?

die wollen wohl die Leute hungrig machen ...
der einzelne Controller kostet noch über 20Euro bei RS. Fast doppelt 
soviel wie das ganze Board!

Adib.

von Uwe Bonnes (Gast)


Lesenswert?

Bei Mouser gibt es einen 512 kB STM32F4 für 6.84 Euro. Die Preise bei RS 
sind jenseits von Gut und Böse...

von Willi (Gast)


Lesenswert?

Uwe Bonnes schrieb:
> Die Preise bei RS sind jenseits von Gut und Böse...

Ja und nein.
Wegen des portofreien Versands können sich kleine Stückzahlen dort 
sehrwohl lohnen. Auch spezielle Teile (z.B. TCXOs von Taitien) sind dort 
sehr günstig.

von Thomas K. (tomk)


Lesenswert?

Hi,

das Discovery-Board sieht ja ganz nett aus ... zur Ergänzung des 
Controller-Zoo's! :-)

Aber by the way: der STM32F407 hat ja ein Ethernet-Interface ob Board - 
gefällt mir. Nur: irgendwie bin ich noch nicht schlau genug, was ich an 
Hardware wie verschalten muss, um das Ganze real als Netzknoten mit 
Standard-TP-verkabelung zu nutzen. So einfach eines der üblichen 
Ethernet-Mag's anschließen scheint wohl nicht zu funktionieren. (wie 
z.B. bei dem MicroChip-ENC-Baustein)

Hat irgend jemand da schon mal einen funktionierenden Schaltplan zu 
gesehen?

Schönen Abend noch, Thomas

von hp-freund (Gast)


Lesenswert?


von Frank K. (fchk)


Lesenswert?

Thomas K. schrieb:

> Hat irgend jemand da schon mal einen funktionierenden Schaltplan zu
> gesehen?

Du wirst das Problem haben, das einige vom (R)MII-Interface benötigte 
Pins schon für andere Dinge auf dem Board verwendet werden. Ärgerlich!

fchk

von hp-freund (Gast)


Lesenswert?

Will hoffen das es trotz dem möglich ist.
Hab mir den bestellt: ebay 260868624339

Auf der Seite gibt es auch einen Download für uns...

von Thomas K. (tomk)


Lesenswert?

Hi,

Frank K. schrieb:
> Du wirst das Problem haben, das einige vom (R)MII-Interface benötigte
> Pins schon für andere Dinge auf dem Board verwendet werden. Ärgerlich!

Jetzt hab ich's begriffen. Irgendwie scheint mir das die ENC-Variante 
einfacher (in Sachen Aufwand als Hobby-Bastel-Lösung!), auch wenn's ganz 
sicher langsamer ist. Und da sollte es dann auch keine Strubbeleien mit 
irgendwelchen schon verwendeten Pin's geben.

Schönen Tag noch, Thomas

von Tobias W (Gast)


Lesenswert?

ich suche gerade verzweifelt den Pinout von dem Class-D Verstärker, wo 
die beiden Lautstärker Ausgänge rauskommen (laut Datenblatt soll man da 
ja bis zu 2*1 Watt ohne weitere Beschaltung raus bekommen - wenn man 
denn so viel Strom zur Verfügung hätte ;-))

Hab ich die Lautsprecherausgänge des Verstärkers übersehen, oder ist der 
Class-D Verstärker nur Deko im Datenblatt (also wird im Endeffekt nur 
der Line-Out/Kopfhörer benutzt)?

von moooaaahhrhrr (Gast)


Lesenswert?


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


Lesenswert?

Bei Farnell gibt es die F4 jetzt auch:

http://de.farnell.com/STM32F4

Leider nicht die LQFP100 Typen :-(

von moooaaahhrhrr (Gast)


Lesenswert?

aber laut schaltplan

http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/USER_MANUAL/DM00039084.pdf

is der class D  speaker ausgang nicht beschaltet

schade ...

von Fritz M. (Gast)


Lesenswert?

Tobias W schrieb:
> Hab ich die Lautsprecherausgänge des Verstärkers übersehen, oder ist der
> Class-D Verstärker nur Deko im Datenblatt (also wird im Endeffekt nur
> der Line-Out/Kopfhörer benutzt)?

Wenn ich das Schaltbild (Figur 14 auf Seite 33) im Datenblatt richtig 
interpretiere, sind die Lautsprecherausgänge nicht beschaltet.

http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/USER_MANUAL/DM00039084.pdf

Grüße
Fritz M.

von Dario B. (abcd)


Lesenswert?

Bei den Preisen ist es ja günstiger, die Boards zu kaufen, und den Chip 
und das Hühnfutter runter zu löten.

von moooaaahhrhrr (Gast)


Lesenswert?

Dario B. schrieb:
> Bei den Preisen ist es ja günstiger, die Boards zu kaufen, und den Chip
> und das Hühnfutter runter zu löten.



wenn das nicht soch wer gemacht hat ^^

2tes discovery geholt
M4 runtergefönt auf eigenes board drauf

den sensor , das mic und den DAC in die grabbelkiste und gut is  :)

von Tobias W (Gast)


Lesenswert?

@moooaaahhrhrr, Fritz,
vielen Dank, das hatte ich schon befürchtet, aber gehofft, dass ich 
irgendwas übersehen hab. Mist, dann muss der China-Mann wohl nen Class D 
Amplifier dazu liefern :-(

von Mathias K. (Gast)


Lesenswert?

Hallo,

Noname schrieb:
> (OpenOCD geht bestimmt, dachte mehr an ein kleines, eigenständiges Tool,
> dass man einfach via Batchdatei aufrufen kann...)

OpenOCD kennt den ST-Link-Adapter "noch" nicht, da es sich um keinen 
Low-Level JTAG-Adapter handelt.

Mit OpenOCD könntest du auch über eine Batch-Datei NUR das Flash 
brennen. Ich denke das meintest du mit "kleines, eigenständiges Tool"!?


Grüße.

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


Lesenswert?

Kann es sein, dass man mit dem ST-LINK_CLI.exe Tool den STM32F4xx nicht 
flashen kann?

Mit dem GUI Tool klappt das.

Die Kommandozeilenparameter:
-ME -P BlinkLED_ROM.bin 0x08000000 -V -Hardrst

Mit dem STM32F103 klappt das CLI Tool. Ich wollte es so in Eclipse 
einbinden damit ich schneller über den im Discovery Board einbebauten 
ST-Link flashen kann.

von Tom (Gast)


Lesenswert?

Doch das STM32F4Discovery Board lässt sich damit prima flashn. Läuft bei 
mir auch in Eclipse.

Noname schrieb:
> Beispiel für das Programmieren eines HEX-Files und anschließendem Start:
>
> "C:\Program Files (x86)\STMicroelectronics\STM32 ST-Link Utility\ST-Link 
Utility\ST-LINK_CLI.exe" -c SWD -P firmware.hex -V -Rst

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


Lesenswert?

Wie erzeugst Du die HEX-Datei?

Denn wenn die auf Adresse 0x00000000 gemacht wird, kann der nicht 
flashen?

So mache ich das:
1
arm-none-eabi-objcopy -O ihex --change-addresses 0x08000000 BlinkLED_rom.elf BlinkLED_rom0800.hex

von Tom (Gast)


Lesenswert?

Hatte das von oben nur zitiert aber selbst nicht gestestet. Mein Aufruf 
ist folgender:
1
-c SWD -P "D:\ARM_Dev\main.bin" 0x08000000 -V "D:\user\ARM_Development\main.bin" -Rst

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


Lesenswert?

Der -c Parameter hat bei mir noch gefehlt, wahrscheinlich war es das, 
denn das Board hat ja nur SWD OnBoard.
Ich kann das jetzt grad nur nicht testen.

von Andreas H. (andreas_h88)


Lesenswert?

schon was gefunden? Ich bin auch interessiert!

von Martin M. (capiman)


Lesenswert?

Andreas H. schrieb:
> schon was gefunden? Ich bin auch interessiert!

An was ? Der Thread ist schon so lang.
Auf was bezieht sich dein Interesse ?

von Uwe (Gast)


Lesenswert?

Diese Lite Edition von Mentor scheint in nichts beschränkt zu sein ! Die 
Andern können oft kein Floting Point oder SIMD oder sind in der Laufzeit 
oder Codegröße beschränkt.

http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/

man braucht dann noch die Tools und Libs von ST und irgendeine IDE und 
man hat Alles umsonst.

von Jörg B. (joerg-sh)


Lesenswert?

Neues Release

Release notes for Atollic TrueSTUDIO for STMicroelectronics STM32 Lite
Version 2.3.0

Toolchain updates
    * New library using HW implementation of floating point.

von Jörg B. (joerg-sh)


Lesenswert?

Nach vielen hin und her habe ich es nun endlich geschafft mit TrueStudio 
per Debug mein erstes selbst angepasstes Programm in die MCU zu 
bekommen.

Wie bekomme ich es jetzt aber hin, dass ich es ohne Debug per Klick aus 
dem TrueStudio in die MCU bekomme?

Grüße

Jörg

von Matthias K. (matthiask)


Lesenswert?

Jörg B. schrieb:
> Wie bekomme ich es jetzt aber hin, dass ich es ohne Debug per Klick aus
> dem TrueStudio in die MCU bekomme?

Nimm das STM32 ST-LINK Utility.

von Jörg B. (joerg-sh)


Lesenswert?

Matthias K. schrieb:
> Nimm das STM32 ST-LINK Utility.

Das heißt dann aber, ich muss wie hier schon beschrieben ein hex file 
erzeugen, welches ich dann mit dem ST-Link Utility dann ich die MCU 
schreibe.

von faux pa (Gast)


Lesenswert?

Ja, in diesem Fall musst du leider ein HEX-file erzeugen.

von Jörg B. (joerg-sh)


Lesenswert?

Ok, kann man mit leben. Wo TrueStudio Lite ja kostenlos ist, sogar für 
Kommerzielle Anwendungen bei Nennung des Herstellers in der 
Bedienungsanleitung des Gerätes.

von Matthias K. (matthiask)


Lesenswert?

Wie man ein .hex-File erstellt im TrueStudio Lite (kann das von Haus aus 
nicht) wurde im Forum schon mehrfach beschrieben, findest Du bestimmt 
selber...

von Jörg B. (joerg-sh)


Lesenswert?

jo hatte ich schon gelesen. Auch in diesem Beitrag. Nur weiter oben.

von Jörg B. (joerg-sh)


Angehängte Dateien:

Lesenswert?

Ich übe jetzt schon Stunden am Uart herum. Vielleicht kann sich mal 
jemand erbarmen und schaut sich das angehängte TrueStudio Projekt an?

Ich bekomme diese eine Fehlermeldung nicht weg...

"undefined reference to `STM_EVAL_COMInit'"

von hp-freund (Gast)


Lesenswert?

Die Funktion STM_EVAL_COMInit wird in deinem Projekt auch nirgend wo 
definiert.
Da fehlt wohl eine stm32xxx_eval.c/.h für dein Board. Wenn keine passt, 
such diese Funktion in einer anderen stm32xxx_eval.c und pass sie für 
dich an.

von Jörg B. (joerg-sh)


Lesenswert?

hmmm in my_f4_discovery.h

ist

void STM_EVAL_COMInit(COM_TypeDef COM, USART_InitTypeDef* 
USART_InitStruct);


definiert.

Meinst du nicht das?

von hp-freund (Gast)


Lesenswert?

http://public.beuth-hochschule.de/~kempfer/skript_c/Kap09.html#prototyp

Das bedeutet: die Funktion ist bekannt aber leer...

von Jörg B. (joerg-sh)


Lesenswert?

hp-freund schrieb:
> Das bedeutet: die Funktion ist bekannt aber leer...

Danke, jetzt hab ich es geschafft.

Aller Anfang ist schwer ;)

von riki (Gast)


Lesenswert?

Hi,

 ich habe soweit alles mit Linux am laufen. Ich kann debuggen aus 
Eclipse heraus und den Flash beschreiben.

Was mich gerade aber ziemlich stutzig macht: Warum gibt es kein malloc? 
Weil ich gar keine libc zur Verfügung habe?

Danke.

Gibts eigentlich irgendwo ein einfacheres Beispielprogramm wie man ein 
USB-HID Gerät baut?

von Jörg B. (joerg-sh)


Lesenswert?

Ich bekomme es nun übtragen, aber es kommt nichts über die RX Leitung...

#define EVAL_COM1                        USART3
#define EVAL_COM1_CLK                    RCC_APB1Periph_USART3
#define EVAL_COM1_TX_PIN                 GPIO_Pin_8
#define EVAL_COM1_TX_GPIO_PORT           GPIOD
#define EVAL_COM1_TX_GPIO_CLK            RCC_AHB1Periph_GPIOC
#define EVAL_COM1_TX_SOURCE              GPIO_PinSource8
#define EVAL_COM1_TX_AF                  GPIO_AF_USART3
#define EVAL_COM1_RX_PIN                 GPIO_Pin_9
#define EVAL_COM1_RX_GPIO_PORT           GPIOD
#define EVAL_COM1_RX_GPIO_CLK            RCC_AHB1Periph_GPIOC
#define EVAL_COM1_RX_SOURCE              GPIO_PinSource9
#define EVAL_COM1_RX_AF                  GPIO_AF_USART3
#define EVAL_COM1_IRQn                   USART3_IRQn

Ursprünglich war das PortC und Pin 10 und 11. Die sind aber belegt und 
laut der Beschreibung liegen RX und TX von USART3 auch auf diesen Ports.

Ich hatte irgendwo mal was über Pin Umleitungen gelesen. hmmmmm

von Matthias K. (matthiask)


Lesenswert?

In der "stm32f4discovery_fw.zip" sind auch die USB-Libs mit drin und 
auch paar USB Beispiele. Ansonsten bei den F1 gibts auch ein HID Demo, 
zur Orientierung vielleicht einen Blick Wert-.

von Matthias K. (matthiask)


Lesenswert?

Jörg B. schrieb:
> Ich hatte irgendwo mal was über Pin Umleitungen gelesen. hmmmmm

Das nennt sich REMAP. Was möglich ist an alternativen Pinbelegungen 
steht im Datenblatt.

von Jörg B. (joerg-sh)


Lesenswert?

Jörg B. schrieb:
> #define EVAL_COM1_TX_GPIO_CLK            RCC_AHB1Periph_GPIOC
> #define EVAL_COM1_RX_GPIO_CLK            RCC_AHB1Periph_GPIOC

muss natürlich D und nicht C

aber es kommt trotzdem nichts :-/

von Jörg B. (joerg-sh)


Lesenswert?

Was ist denn GPIO_Pin und GPIO_PINSOURCE ?

von hp-freund (Gast)


Angehängte Dateien:

Lesenswert?

Hier mal meine gcc/eclipse-Version eines Webservers für unser Board.
Es ist eine angepasste Version des Standalone httpserver aus:
http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/stm32f4x7_eth_lwip.zip

-PHY ist ein DP83848
-DHCP (Voreinstellung) oder manuelle IP
-PC2 als analoger Eingang Anzeige in mV im Browser
-LED schalten im Browserfenster

Die angehängte zip im gleichen Verzeichnis wie die 
stm32f4x7_eth_lwip.zip entpacken. Kann auch als makefile Project in 
eclipse geöffnet werden.
In der ST Firmware wird nichts verändert.


Viel Spass...

von Daniel (Gast)


Lesenswert?

riki schrieb:
> ich habe soweit alles mit Linux am laufen. Ich kann debuggen aus
> Eclipse heraus und den Flash beschreiben.

Kannst du dazu ein paar Worte sagen? Ich bin soweit, dass das direkte 
flashen usw. funktioniert. Ich habe es aber noch nicht geschafft, das 
Debuggen in Eclipse zum Laufen zu bekommen. Ich denke, ich mache noch 
eine Kleinigkeit falsch. In Eclipse wird das neue Programm nicht 
geflashed.

Ich benutze:
Toolchain: https://github.com/esden/summon-arm-toolchain
ST-Link:   https://github.com/texane/stlink

Toolchain und ST-Link installiert nach dieser Anleitung: 
https://github.com/texane/stlink/blob/master/doc/tutorial/tutorial.pdf?raw=true

Dann bin ich hiernach vorgegangen:
http://www.chibios.org/dokuwiki/doku.php?id=chibios:guides:eclipse1
http://www.chibios.org/dokuwiki/doku.php?id=chibios:guides:eclipse2
http://www.chibios.org/dokuwiki/doku.php?id=chibios:guides:stlink_eclipse

Allerdings wird in der Anleitung die Installation mit der Truestudio 
Toolchain beschrieben. Daher habe ich das für den texane-gdb Server 
angepasst, aber wohl irgendwas falsch gemacht.

Vielleicht sieht ja jemand auf die schnelle eine Sache, die bei 
texane-stlink anders gemacht werden muss als üblich. Mich irritieren ein 
wenig die Linker(?)-Adressen, die in dem Tutorial angegeben werden. Hat 
das damit etwas zu tun, dass es nicht geht?

von hp-freund (Gast)


Lesenswert?

Sorry, hab geade gesehen das das noch ein unaufgeräumtes Makefile ist.
Bitte alle auskommentierten Zeilen löschen, dann wird es 
übersichtlicher...

von Matthias K. (matthiask)


Lesenswert?

hp-freund schrieb:
> Hier mal meine gcc/eclipse-Version eines Webservers für unser Board.

Kannst bitte das KiCad Projekt für den Webserver hochladen.

von hp-freund (Gast)


Lesenswert?

Matthias K. schrieb:
> Kannst bitte das KiCad Projekt für den Webserver hochladen.

Das ist es schon. Es ist je ein Modul. Die Skizze zeigt nur die 
Verbindugen.
[Schleichwerbung] ebay 260868624339 [/Schleichwerbung]
Auf der Seite ist auch ein Download mit Codebeispiel und Schaltplan.

von Martin M. (capiman)


Lesenswert?

hp-freund schrieb:
> [Schleichwerbung] ebay 260868624339 [/Schleichwerbung]

Hast du evt. noch 1 bis 2 solche Module übrig,
die du mir verkaufen könntest ? Zu welchem Preis ?
Oder gibt es Erfahrungen, wie lange so eine Bestellung dauert ?

von hp-freund (Gast)


Lesenswert?

Da ich unter 22 Euro bleiben musste hab ich nur 2 bestellt.
Muss auch noch mal welche besorgen ;)

Versand ging zwar schnell bis D, ist dann aber leider doch beim Zoll 
hängengeblieben. Wurden damit über 3 Wochen.

von Matthias K. (matthiask)


Lesenswert?

hp-freund schrieb:
> [Schleichwerbung] ebay 260868624339 [/Schleichwerbung]

Ich würde auch eins nehmen. Oder kennst Du eine deutsche Bezugsquelle?

von hp-freund (Gast)


Lesenswert?

Bei RS gibt es den DP83848 als IC aber ein Modul hab ich auf die 
Schnelle in D nicht gefunden.

von Martin M. (capiman)


Lesenswert?

Die habe ich vorher via Google gefunden, habe aber keinen Preis
(zumindest bei dem aus Deutschland) sowie auch keine Info,
ob es am STM32F4 benutzbar ist:

Deutschland:
http://www.morethanip.com/boards_10_100_dp83848.htm

Schweden:
http://www.limetronic.com/shop/index.php?main_page=product_info&cPath=10&products_id=25

Thailand:
http://www.thaieasyelec.net/index.php/Ethernet-Module/DP83848-Ethernet-Phy-Breakout-Board/p_179.html

Weiss jemand weitere billige Break-Out-Boards mit DP83848 ?

von Dennis P. (dennisp)


Lesenswert?


von Dirk B. (garag)


Lesenswert?

Zwei von den Modulen haben ich mir auch bestellt und wurden ohne 
Probleme geliefert.

@Dennis
Wie hast du die Module angeschlossen und hast du vielleicht ein 
lauffähiges Projekt ?

Gruß

von Dennis P. (dennisp)


Angehängte Dateien:

Lesenswert?

Es geht ja nur per RMII:

Beitrag "Re: STM32F4 USART1"

Das reine Ethernetprojekt habe ich mal angehangen. Ist ne modifikation 
des großen Evalboards des STM32F4`s.

In einem anderen Projekt hab ich die Webseiten auf ne SD Karte 
ausgelagert und arbeite grade an der FTP integration.

von Jörg B. (joerg-sh)


Lesenswert?

Hallo Dennis,
danke für deine Webserversoft.
Bei mir werden allerdings die LEDs nicht geschaltet und der AD Wert wird 
auch nicht angezeigt.

Gruß

Jörg

von Dennis P. (dennisp)


Lesenswert?

Das war nur ein schneller Test ob das Ethernet an sich funktioniert. Das 
die Leds bzw. der ADC funktioniert musste selber anpassen. Ist auch kein 
großes Ding.

von Jörg B. (joerg-sh)


Lesenswert?

Hallo Dennis, ich noch mal,
es werden die Standard libs wie studio.h usw. nicht gefunden.
Wie bekomme ich den Pfad nachträglich da hinein?

Gruß Jörg

von Jörg B. (joerg-sh)


Lesenswert?

Ich hab es schon selber raus gefunden.
Habe unter Properties c/C++ General Path and Symbols aus einen von True 
Studio erzeugten Projekt die Pfade nachgetragen.

von Jörg B. (joerg-sh)


Lesenswert?

Die LEDs auf das Board anzupassen war nicht schwer.

Einfach in der

stm324xg_eval.h

die Pins anpassen (Port D 12 bis 15).

und in der main.c

die "//" vor LCD_LED_Init(); wegnehmen.

Blöde ist ja nun, das der Status der LED´s nicht angezeigt wird....

von Jörg B. (joerg-sh)


Lesenswert?

Ich versuche jetzt den ADC zum laufen zu bringen.

Original ist es ADC3 den es ja auf dem DSICOVERY Board ja nicht gibt.

Ich scheine aber irgend etwas zu übersehen.
1
static void ADC_Configuration(void)
2
{
3
  ADC_InitTypeDef ADC_InitStructure;
4
  ADC_CommonInitTypeDef ADC_CommonInitStructure;
5
  GPIO_InitTypeDef GPIO_InitStructure;
6
7
  /* Enable ADC3 clock */
8
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
9
10
  /* Configure ADC Channel 7 as analog input */
11
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
12
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
13
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;
14
  GPIO_Init(GPIOA, &GPIO_InitStructure);
15
16
  /* ADC Common Init */
17
  ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent;
18
  ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div6;
19
  ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled;
20
  ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles; 
21
  ADC_CommonInit(&ADC_CommonInitStructure); 
22
23
  /* ADC3 Configuration ------------------------------------------------------*/
24
  ADC_StructInit(&ADC_InitStructure);
25
  ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
26
  ADC_InitStructure.ADC_ScanConvMode = DISABLE;
27
  ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
28
  ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None; 
29
  ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
30
  ADC_InitStructure.ADC_NbrOfConversion = 1;
31
  ADC_Init(ADC1, &ADC_InitStructure);
32
33
  /* ADC3 Regular Channel Config */
34
  ADC_RegularChannelConfig(ADC1, ADC_Channel_4, 1, ADC_SampleTime_56Cycles);
35
36
  /* Enable ADC3 */
37
  ADC_Cmd(ADC1, ENABLE);
38
39
  /* ADC3 regular Software Start Conv */ 
40
  ADC_SoftwareStartConv(ADC1);
41
}

von hp-freund (Gast)


Lesenswert?


von Jörg B. (joerg-sh)


Lesenswert?

Die Version von Dennis läuft bei mir. Deine bekomme ich nicht hin.

Deswegen über ich jetzt mit Dennis seiner herum.

von Dennis P. (dennisp)


Lesenswert?

Hast du auch diese Zeile geändert?
1
ADCVal = ADC_GetConversionValue(ADC3);

von Jörg B. (joerg-sh)


Lesenswert?

Da war ich wohl von Blindheit geschlagen ;) genau das war es.

Danke Dennis

von Jörg B. (joerg-sh)


Lesenswert?

Ich Versuche gerade eine STM32F417ZGT (144 Pin) am STLINK V2 zum 
"laufen" zu bringen. Funktioniert leider noch nicht.

Was muss außer VDD, VDDA, VSS, VSSA, VCAP1+2 noch beschaltetet sein?

Das JTag habe ich laut ST Doku angeschlossen.

PDR_ON auf Masse gelegt

Was ist mit BOOT0 und BOOT1 ?

von Gnubbel (Gast)


Lesenswert?

Beim 103er muss Boot0 auf Masse liegen damit er vom Flash startet. Wenn 
der floatet kann es Probleme geben.

von Jörg B. (joerg-sh)


Lesenswert?

Das war es nicht mit Boot0
Wenn ich mit ST-Link Utility eine Verbindung herstellen will kommt:

20:23:21 : No target connected
20:23:26 : Cannot connect to ST-LINK!

danach leuchtet die LED schwach Orange würde ich sagen.

von Jörg B. (joerg-sh)


Lesenswert?

Einen Quarz braucht es doch eigentlich nicht, oder?

Gibt es ansonsten eine Möglichkeit zu testen oben die MCU "lebt" ?

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


Lesenswert?

Schaue mal hier:
http://www.mikrocontroller.net/articles/JTAG#Der_10-polige_JTAG_Stecker_von_mmvisual

Ich nutze den Stecker und diese Pin-Belegung und das klappt mit SWD und 
JTAG.

von Jörg B. (joerg-sh)


Lesenswert?

Dazu müsste ich mir dann den Adapter auf 20 Pol vom STLink bauen. Für 
den Schaltungsentwurf ist es sicher zu überlegen später. Im Moment 
bringt es mich aber nicht wirklich weiter.

Ich habe jetzt die ganzen Spannungen usw. noch mal überprüft. Morgen 
werde ich noch mal einen Chip auf eine neue Adapterplatine löten. 
Vielleicht bringt das was...

von Jörg B. (joerg-sh)


Lesenswert?

Ich mal wieder ;-)

Ich arbeite mich gerade durch die stm32f4xx_dsp_stdperiph_lib mit 
TrueStudio.

Da soll ich jetzt

Add the "stm324xg_eval_sdio_sd.c" file (under 
Utilities\STM32_EVAL\STM3240_41_G_EVAL) to the project source list

Wie macht man das im TrueStudio?

Grüße und Dank an alle die mir bis jetzt geholfen haben!

Jörg

von Jörg B. (joerg-sh)


Lesenswert?

Habe es geschafft. Die Video Tutorials von Atollic sind doch sehr 
lehrreich :)

von ole (Gast)


Lesenswert?

Hi,

ich komme vom AVR und möchte für zukünftige Projekte auf 32-bit cores 
umsteigen. Das STM32F4 Discovery Board hört sich ja sehr interessant an 
:)
Wo ich noch nicht ganz durchblicke:
Das Board hat ja diesen STLink direkt drauf, sodass man im Grunde per 
USB direkt an den PC kann und keinen extra Programmer braucht. Das würde 
ich mir gerne für mein eigenes Board klauen :) Also STM32F4 und davor 
direkt so einen STLink. Leider habe ich bisher weder Schematics vom 
Discovery-Board, noch konkretere Hinweise gefunden, wie sowas zu 
realisieren wäre. Hat da jemand schon Ehrfahrungen gemacht, die er 
teilen würde ?

gruß

von Helmut L. (helmi1)


Lesenswert?

ole schrieb:
> Leider habe ich bisher weder Schematics vom
> Discovery-Board,

Die gibt es bei ST auf der Webseite.

von klaus (Gast)


Lesenswert?

Helmut Lenzen schrieb:
>> Leider habe ich bisher weder Schematics vom
>> Discovery-Board,
>
> Die gibt es bei ST auf der Webseite.

Gibt den die Firmware für den eingesezten µC beim STLink zum selber 
"brennen"?

von Gerhard G. (xmega)


Lesenswert?

Hallo,


> Leider habe ich bisher weder Schematics vom
> Discovery-Board, noch konkretere Hinweise gefunden

Hier das Board:

http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/USER_MANUAL/DM00039084.pdf

Gruß xmega

von Thomas R. (tinman) Benutzerseite


Lesenswert?

klaus schrieb:
>
> Gibt den die Firmware für den eingesezten µC beim STLink zum selber
> "brennen"?


klar, und passende STM32 "samples" noch dazu
wo? na auf dem STM32F4Discovery board, der STM32F407VGT6
kostet einzeln mehr als auf dem board, so gesehen ist
der STLink kostenlos und schon sogar vorprogrammiert
und getestet (wieder zeit gesparrt)

von ole (Gast)


Lesenswert?

Danke für die schnellen Antworten! Hab die Schematics übersehen...

von Jörg B. (joerg-sh)


Lesenswert?

Ich versuche immer noch mein selbst gebautes Board zum laufen zu 
bringen.

Klappt soweit auch, bin mir jetzt nur nicht sicher ob der Externe Takt 
läuft.

Wenn ich mit Atollic ein neues Projekt mache, dann gibt es nur einen 
loop wo 1 Variable hoch gezählt wird. Das lässt sich auch Debuggen.

Meine Frage, wird da der interne Takt benutzt oder der externe?

von Max P. (eizo)


Lesenswert?

ole schrieb:
> Das Board hat ja diesen STLink direkt drauf, sodass man im Grunde per
> USB direkt an den PC kann und keinen extra Programmer braucht. Das würde
> ich mir gerne für mein eigenes Board klauen :)

Das wird so ohne weiteres nicht gehen, wenn du nicht die Firmware für 
den kleine Controller hast, der als ST Link programmiert ist. Du kannst 
aber so ein STM32F4Discovery Board nehmen um andere Controller zu 
programmieren und zu Debuggen über die SWD Pin-Leiste. Musst nur die ST 
Link Jumper setzen/wegnehmen. Somit hast du dein Programmer und Debugger 
für 16 Euro.

von Matthias K. (matthiask)


Lesenswert?

Jörg B. schrieb:
> Meine Frage, wird da der interne Takt benutzt oder der externe?

ja, aber der µC läuft nur mit knapp 54MHz, weil die STM FW Lib von einen 
25MHz Quarz ausgeht, aber nur ein 8MHz auf dem Discovery verbaut ist.

Wenn Du die 168MHz erreichen willst, musst Du folgendes ändern

In der "system_stm32f4xx.c" PLL_M auf 8 ändern
/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */
#define PLL_M      8   /* 25 */
#define PLL_N      336 /* 336 */

und
HSE_VALUE = 8000000
in den Projektproperties von Atollic als globales Sysmbol eintragen.

Dann läuft das System mit externen Quarz und 168MHz.

von Olli (Gast)


Lesenswert?

Guten Morgen!

Hat zufällig noch jemand ein ungeflashtes Board rumliegen oder noch ein 
Backup? Ich hätte gerne nochmal das Binary von dem Demo-Programm, was 
bei der Auslieferung drauf war.

(Also das mit den LEDs, die in Abhängigkeit von der Lage blinken und der 
Maus-Emulation).

Danke und gute Nacht,
Olli

von Christoph H. (mc-entwickler)


Lesenswert?

Das findest unter 
STM32F4-Discovery_FW_V1.1.0/Project/Demonstration/Binary

von Jörg B. (joerg-sh)


Lesenswert?

Ich versuche seit Stunden das Demo Projekt Audio_playback_and_record als 
Media USB Key so einzurichten, dass man es verändern , sprich codefiles 
hinzufügen kann.

Compilieren lässt es sich nur wenn man die source nicht mit kopiert beim 
Import nach TrueStudio.


Ich habe mir also die Mühe gemacht es in ein neues Projekt zu kopieren.

Jetzt kommt aber immer der Fehler:

fatal error: ARMCM4.h: No such file or directory  arm_math.h 
/MEDIA_USB_KEY/Libraries/CMSIS/Include  line 263  C/C++ Problem

Hat jemand da einen Tip?

Grüße

von Helmut L. (helmi1)


Lesenswert?

Jörg B. schrieb:
> fatal error: ARMCM4.h: No such file or directory  arm_math.h
> /MEDIA_USB_KEY/Libraries/CMSIS/Include  line 263  C/C++ Problem

Hast du diese Datei nicht? Die ist in 
STM32F4-Discovery_FW_V1.1.0\Libraries\CMSIS\Include

Kann auch sein das dein Suchpfad für includes nicht richtig gesetzt ist.

von Jörg B. (joerg-sh)


Lesenswert?

Ok das hab ich nun gefunden.

Keine Ahnung warum, aber es werden sämtliche Beispiele in 
Unterverzeichnissen mit compiliert...

von Jörg B. (joerg-sh)


Lesenswert?

Ich werde Morgen das ganze noch mal von vorne machen und die Libs nicht 
mit ins Verzeichnis, ich glaube das ist mein Fehler gewesen.

von Gerhard G. (xmega)


Angehängte Dateien:

Lesenswert?

Hallo,

> Compilieren lässt es sich nur wenn man die source nicht mit kopiert beim
> Import nach TrueStudio.

Mit TrueSTUDIO v2.2 konnte man wunderbar importieren.

Mit TrueSTUDIO v2.3 geht gar nichts mehr.

Ich verwende mittlerweile die Keil-Software. Da funktioniert alles.

Nochmals zum TrueSTUDIO-Problem: wenn du unter der alten Version was 
erstellt hast, kann man es auch für die neue Version verwenden.

Man kann aber ein leeres STM32F4DISCOVERY-Board Projekt erstellen und 
die neuen Dateien (aus anderen Projekten) rein kopieren! Das haut super 
hin.

Als Anlage ein funktionierendes Projekt.

Gruß xmega

von Jörg B. (joerg-sh)


Lesenswert?

Ich habe es jetzt auch noch mal mit der 2.2 Version probiert. Damit 
funktioniert der Import mit kopieren der Sourcen nicht....

von Gerhard G. (xmega)


Lesenswert?

Hallo,

holst du die Daten von hier: STM32F4-Discovery_FW_V1.1.0/Projekte

Ich hab mir mit der Version  TrueSTUDIO v2.2  alle Projekt in meinem 
Workspace angelegt.

Kannst du nur das Demo Projekt Audio_playback_and_record nicht starten 
oder gehen andere Projekte auch nicht?

Gruß xmega

von Jörg B. (joerg-sh)


Lesenswert?

Genau aus der STM32F4-Discovery_FW_V1.1.0/Projekte

Wenn ich die Sourcen nicht kopieren lassen dann laufen die projekte. 
Egal ob 2.2 oder 2.3

Wenn ich mit kopieren importiere wir zwar einiges kopiert, ab längst 
nicht alles.

Mich interessiert nur das Media_USB_KEY Projekt. Wenn du es exportieren 
kannst als Zip hätte ich das Zip dann gerne ;)

von Gerhard G. (xmega)


Angehängte Dateien:

Lesenswert?

Hallo,

als erstes mal MEDIA_USB_KEY.axf mit Keil µVision4 erzeugt.

Funktioniert bei mir!

Leider habe ich gerade das Teil nicht im Workspace. Vieleicht hat es 
auch nicht funktioniert! Ich weis es nicht mehr.

Ich würde dir empfehlen, die neue Keil µVision4 zu installieren.

Hier funktioniert wirklich alles. Die kennt das STM32F4-Discovery-Board 
und den St-Link.

Ich werde mich mal in den nächsten Tagen mit deinem Problem 
beschäftigen.


Gruß xmega

von Gerhard G. (xmega)


Angehängte Dateien:

Lesenswert?

Hallo,

hab ich vergessen!

Das Programm als Hex-File.

Das kannst du mit dem STM32 ST-LINK Utility flashen.

Gruß xmega

von Jörg B. (joerg-sh)


Lesenswert?

Hallo Gerhard,
ich bekomme das Programm ja compiliert, nur bekomme ich es nicht 
verändert.
Wie schon geschrieben, das Problem ist, dass ich es nicht aus dem 
Beispiel Projekt heraus "mit kopieren der Source" in das Workspace von 
Atollic bekomme.

Gruß

Jörg

von Gerhard G. (xmega)


Lesenswert?

Hallo Jörg,

Fehler gefunden, es funktioniert nur, wenn man keine Kopie im Workspace 
anlegt. Also Häckchen bei Copy projects into workspace entfernen!

Beide Anwendungen laufen dann sofort und fehlerfrei.

Getestet mit Atollic 2.3

Viel Spaß und Gruß xmega

von Jörg B. (joerg-sh)


Lesenswert?

Hallo Gerhard,
das habe ich doch schon ein paar mal geschrieben.

Ich will die aber kopieren!!!! Weil ich das Projekt dann erweitern / 
ändern möchte.

Versuch mal in das User Verzeichnis eine Datei einzufügen... die 
erscheint dann gleich 2 mal im Dateibaum und es gibt compilerfehler 
dadurch...

Das echt alles großer Mist, ich möchte allerdings nicht weg von Atollic, 
die 30 K Codebegrenzung ist mir ein Dorn im Auge bei Keil.

Gruß

Jörg

von Olli (Gast)


Lesenswert?

@ Christoph: Danke, habs gefunden! ;)


Ich versuche nun schon seit Tagen das alles mir unter Mint/Debian 
einzurichten und bin auch schon zwei Anleitungen befolgt:

http://www.mikrocontroller.net/articles/STM32F4-Discovery
http://de.system-failures.org/projects/stm32f4discovery-board-unter-linux/

Aber irgendwie bringt mir das rein gar nichts. Ich bekomme nichts 
kompiliert, da der die "cstart_thumb2.asm" nicht kompilieren möchte:
1
Building file: ../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm
2
Invoking: ARM Sourcery Linux GCC Assembler
3
arm-none-eabi-gcc -x assembler-with-cpp -Wall -Wa,-adhlns="CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.o.lst" -c -fmessage-length=0 -MMD -MP -MF"CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.d" -MT"CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.d" -mcpu=cortex-m4 -mthumb -g3 -gdwarf-2 -o "CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.o" "../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm"
4
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm: Assembler messages:
5
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:3: Error: bad instruction `to allow the use of this file for both ARMv6M and ARMv7M,'
6
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:4: Error: bad instruction `we will only use 16-bit Thumb intructions.'
7
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:6: Error: bad instruction `usr/sys mode stack pointer'
8
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:7: Error: bad instruction `symbol required by debugger'
9
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:8: Error: bad instruction `rom to RAM copy table'
10
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:21: Error: non-constant expression in ".if" statement
11
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:24: Error: non-constant expression in ".if" statement
12
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:35: Error: bad instruction `anticipate possible ROM/RAM remapping'
13
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:36: Error: bad instruction `by loading the 114eal32program address'
14
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:40: Error: bad instruction `initialize the stack pointer'
15
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:41: Error: bad instruction `make this part of the vector table'
16
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:44: Error: bad instruction `call the clock system intitialization function.'
17
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:47: Error: bad instruction `copy initialized sections from ROM to RAM'
18
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:48: Error: ARM register expected -- `and clear uninitialized data sections in RAM'
19
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:53: Error: bad instruction `load type'
20
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:54: Error: bad instruction `dst address'
21
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:55: Error: bad instruction `src address'
22
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:56: Error: bad instruction `size'
23
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:65: Error: instruction not supported in Thumb16 mode -- `subs r7,r7,#1'
24
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:70: Error: instruction not supported in Thumb16 mode -- `adds r3,r3,#16'
25
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:74: Error: instruction not supported in Thumb16 mode -- `subs r7,r7,#1'
26
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:78: Error: instruction not supported in Thumb16 mode -- `adds r3,r3,#16'
27
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:84: Error: non-constant expression in ".if" statement
28
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:93: Error: bad instruction `load r10 with end of USR/SYS stack,which is'
29
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:94: Error: bad instruction `needed in case stack overflow checking is on'
30
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:95: Error: symbol `NOTE' is already defined
31
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:95: Error: bad instruction `use 16-bit instructions only,for ARMv6M'
32
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:101: Error: non-constant expression in ".if" statement
33
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:105: Error: non-constant expression in ".if" statement
34
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:109: Error: bad instruction `retrieve argc and argv(default argv[0]==NULL&argc==0)'
35
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:112: Error: bad instruction `call main'
36
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:116: Error: bad instruction `call exit using the return value from main()'
37
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:117: Error: unexpected character ` ' in type specifier
38
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:117: Error: bad instruction `note. Calling exit will also run all functions'
39
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:118: Error: bad instruction `that were supplied through atexit().'
40
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:121: Error: bad instruction `weak definition'
41
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:126: Error: unknown pseudo-op: `.endsec'
42
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:128: Error: unknown pseudo-op: `.calls'
43
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:129: Error: unknown pseudo-op: `.calls'
44
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:130: Error: non-constant expression in ".if" statement
45
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:135: Error: end of file inside conditional
46
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:130: Error: here is the start of the unterminated conditional
47
make: *** [CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.o] Fehler 1

Bitte helft mir...

von hp-freund (Gast)


Angehängte Dateien:

Lesenswert?

@Olli,
was genau hast Du vor? Willst Du etwas an den gemeldeten Dateien ändern 
oder nur den Auslieferungszustant wieder herstellen?
Im zweiten Fall leg einfach das Makefile in den gleichen Ordner in dem 
sich auch das originale STM32F4-Discovery_FW_V1.1.0 befindet und starte 
make.

Es wird nichts in STM32F4-Discovery_FW_V1.1.0 verändert.

Das ist dann dein Part ;-)

Ich benutze linux/gcc/eclipse.

von hp-freund (Gast)


Lesenswert?

Zustand meine ich natürlich :)

von Olli (Gast)


Lesenswert?

Ich hätte vielleicht genauer sagen sollen, was ich vor habe:
Ich wollte eigentlich "nur" das Blink-Beispiel aus dem Wiki hier zu dem 
Board in Eclipse kompilieren, und dann per QSTLink flashen.

Das mit dem Demo-Programm war ne andere Sache.

Aber ich danke schonmal fürs Makefile, ich probiere das mal ohne den 
Umweg über Eclipse....

von hp-freund (Gast)


Lesenswert?

Du kannst ein neues Makefile Projekt in eclipse anlegen und:

STM32F4-Discovery_FW_V1.1.0/
Makefile

in den Ordner kopieren. Dann hast Du schon dein Projekt.

von Olli (Gast)


Angehängte Dateien:

Lesenswert?

Okay, das geht schonmal - DANKE!

Und wie mache ich das dann bspw. bei dem genannten Blink-Beispiel?
Ich habe in Projects den Ordner Blink angelegt mit der main.c und der 
stm32f4xx_conf.h und das Makefile versucht ein wenig anzupassen. Aber 
das will nicht so wirklich:
1
....
2
make: *** Keine Regel vorhanden, um das Target »arm-none-eabi-gcc«, 
3
  benötigt von »Blink.elf«, zu erstellen.  Schluss.

Im Anhang ist das akuelle Makefile.

Aber wirklich ergonomisch ist auch anders wenn man für jedes Projekt das 
komplette Makefile wieder umkrempeln muss, oder?!?

von hp-freund (Gast)


Lesenswert?

Olli schrieb:
> Aber wirklich ergonomisch ist auch anders wenn man für jedes Projekt das
> komplette Makefile wieder umkrempeln muss, oder?!?

Das ist der Preis für die kostenlose Freiheit.

Zum Makefile:
-ich gehe mal davon aus das Du den Project/Blink Ordner auch erstellt 
hast
-als nächtes arbeite einfach die Fehler der Reihe nach ab
--stm32f4xx_conf.h: Datei oder Verzeichnis nicht gefunden
  > such die Datei und gib ihren Pfad als include mit an

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.