Forum: Mikrocontroller und Digitale Elektronik MikroElektronika MikroMedia STM32 M4 Erfahrungen


von Daniel B. (dbuergin)


Lesenswert?

Hallo zusammen

Ich habe mir wohl etwas voreilig das Teil aus dem Betreff beschafft:

http://www.mikroe.com/eng/products/view/869/mikromedia-for-stm32-m4/

Der Compiler kostet 299 Euro und die Libs für die Peripherie sind
Closed-Source. Hatte eigentlich damit gerechnet, dass ich im Web
mehr Infos dazu finde.

Frage: Hat schon jemand mit dem Teil und GNU-C für ARM exprimentiert und
kann davon berichten ?

Vorallem vor dem Display habe ich Respekt, da es nicht via SPI
angebunden ist, sondern im 8-bit Mode, und damit habe ich keine
Erfahrung.

Wollte mir aus dem Board und einem SHT25 Temp/Humy Sensor einen
Datenlogger mit grafischem Display bauen. Ich weiss, ist völliger
Underkill für so eine MCU, aber was soll's ;-) Geht auch darum,
mit dem STM32F4 Erfahrungen zu sammeln.

Danke und Gruss

Daniel

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Daniel B. schrieb:
> Der Compiler kostet 299 Euro und die Libs für die Peripherie sind
> Closed-Source. Hatte eigentlich damit gerechnet, dass ich im Web
> mehr Infos dazu finde.

Hättest du vorher hier gefragt, hätte ich geantwortet, dass 
MikroElektronika dafür bekannt ist, möglichst geschlossene, proprietäre 
Entwicklungssysteme anzubieten. Ebenso hätte ich gesagt, dass 
MikroElektronika nicht für gute Compiler bekannt ist.

> Frage: Hat schon jemand mit dem Teil und GNU-C für ARM exprimentiert und
> kann davon berichten ?
>
> Vorallem vor dem Display habe ich Respekt, da es nicht via SPI
> angebunden ist, sondern im 8-bit Mode, und damit habe ich keine
> Erfahrung.

Du bist gerade dabei, einen Mehrfrontenkrieg zu eröffnen. Unbekannter 
Mikrocontroller, unbekannte Hardware, unbekannte Peripherie und 
unbekannter Compiler. Nicht gut.

Eine mögliche Lösung wäre, mit einem Discovery-Board und einer 
Demo-Version der offiziell unterstützten IDEs zu beginnen. Dann 
Erfahrung mit dem STM32F4 sammeln. Dann eine Komponente, den Compiler, 
tauchen. Dann das Board tauschen. Dann das Display angehen. Dann den 
SHT25 angehen.

Das braucht Zeit und Geduld.

von Daniel B. (dbuergin)


Lesenswert?

Danke für die Antwort, aber so schlimm ist es nicht, respektive der
Krieg hat nicht so viele Fronten ;-)

- Discovery-Board ist in Betrieb, eben leider ohne Display,
  darum dieses Board
- Codesourcery_arm-2011.09 unter Linux mit Segger JLink-EDU funktioniert
  soweit gut.
- Die SHT Sensoren habe ich schon in diversen Projekten verwendet.

Leider habe ich nicht gesehen, dass nirgends der Kontroller des
Displays steht, und dass das Ding im 8-Bit Mode angebunden ist.

von Choleriker (Gast)


Lesenswert?

Ist auch ein nettes Spielzeug wenns kein F4 sein muß:


http://www.watterott.com/de/STM32-LCD

von Daniel B. (dbuergin)


Lesenswert?

Na bravo, jetzt habe ich wohl auch noch mein Board geschrottet.

Nach verschiedenen Versuchen mit dem JLink EDU und dem ST-Link v2
Adapter geht gar nichts mehr.
- Der TFT wird nur noch weiss
- Das Originalprogram läuft nicht mehr
- Der Bootloader reagiert nicht mehr

Flashen mit dem JLink EDU ging gar nie. Irgendwie wird zwar die CPU
erkannt, aber mehr geht nicht.
1
a239368:>JLinkExe 
2
SEGGER J-Link Commander V4.50i ('?' for help)
3
Compiled Jun 22 2012 19:00:38
4
DLL version V4.50i, compiled Jun 22 2012 19:00:36
5
Firmware: J-Link ARM V8 compiled Jul 20 2012 16:33:52
6
Hardware: V8.00
7
S/N: 268000082 
8
OEM: SEGGER-EDU 
9
Feature(s): FlashBP 
10
VTarget = 3.261V
11
Info: TotalIRLen = 9, IRPrint = 0x0011
12
Info: Found Cortex-M4 r0p1, Little endian.
13
Info: TPIU fitted.
14
Info: ETM fitted.
15
Info: FPUnit: 6 code (BP) slots and 2 literal slots
16
Found 2 JTAG devices, Total IRLen = 9:
17
 #0 Id: 0x4BA00477, IRLen: 04, IRPrint: 0x1, CoreSight JTAG-DP (ARM)
18
 #1 Id: 0x06413041, IRLen: 05, IRPrint: 0x1, STM32 Boundary Scan
19
Cortex-M4 identified.
20
JTAG speed: 100 kHz

Sobald ich aber ein, auf dem STM32F4 lauffähiges Program
(Blinky Beispiel vom M.Thomas) aufspielen will passiert folgendes:
1
SEGGER J-Link Commander V4.50i ('?' for help)
2
Compiled Jun 22 2012 19:00:38
3
DLL version V4.50i, compiled Jun 22 2012 19:00:36
4
Firmware: J-Link ARM V8 compiled Jul 20 2012 16:33:52
5
Hardware: V8.00
6
S/N: 268000082 
7
OEM: SEGGER-EDU 
8
Feature(s): FlashBP 
9
VTarget = 3.261V
10
Info: TotalIRLen = 9, IRPrint = 0x0011
11
Info: Found Cortex-M4 r0p1, Little endian.
12
Info: TPIU fitted.
13
Info: ETM fitted.
14
Info: FPUnit: 6 code (BP) slots and 2 literal slots
15
Found 2 JTAG devices, Total IRLen = 9:
16
 #0 Id: 0x4BA00477, IRLen: 04, IRPrint: 0x1, CoreSight JTAG-DP (ARM)
17
 #1 Id: 0x06413041, IRLen: 05, IRPrint: 0x1, STM32 Boundary Scan
18
Cortex-M4 identified.
19
JTAG speed: 100 kHz
20
J-Link>exec Device=STM32F407VG
21
Info: Device "STM32F407VG" selected (1024 KB flash, 128 KB RAM).
22
J-Link>h
23
R0 = 00000000, R1 = 00000000, R2 = 00000000, R3 = 00000000
24
R4 = 00000000, R5 = 00000000, R6 = 00000000, R7 = 00000000
25
R8 = 00000000, R9 = 00000000, R10= 00000000, R11= 00000000
26
R12= 00000000, R13= FFFFFFFC, MSP= FFFFFFFC, PSP= 00000000
27
R14(LR) = FFFFFFFF, R15(PC) = FFFFFFFE
28
XPSR 01000000, APSR 00000000, EPSR 01000000, IPSR 00000000
29
CFBP 00010000, CONTROL 00, FAULTMASK 01, BASEPRI 00, PRIMASK 00
30
31
FPS0 = 00000000, FPS1 = 00000000, FPS2 = 00000000, FPS3 = 00000000
32
FPS4 = 00000000, FPS5 = 00000000, FPS6 = 00000000, FPS7 = 00000000
33
FPS8 = 00000000, FPS9 = 00000000, FPS10= 00000000, FPS11= 00000000
34
FPS12= 00000000, FPS13= 00000000, FPS14= 00000000, FPS15= 00000000
35
FPS16= 00000000, FPS17= 00000000, FPS18= 00000000, FPS19= 00000000
36
FPS20= 00000000, FPS21= 00000000, FPS22= 00000000, FPS23= 00000000
37
FPS24= 00000000, FPS25= 00000000, FPS26= 00000000, FPS27= 00000000
38
FPS28= 00000000, FPS29= 00000000, FPS30= 00000000, FPS31= 00000000
39
FPSCR= 00000000
40
J-Link>loadbin /home/a239368/personal/Mikrocontroller/Cortex/stm32f4/mikromedia/project.bin, 0x8000000
41
Loading binary file... [/home/a239368/personal/Mikrocontroller/Cortex/stm32f4/mikromedia/project.bin]
42
Writing bin data into target memory @ 0x08000000.
43
44
****** Error: PC of target system has unexpected value after calculating CRC. (PC = 0x20000054)!
45
---------------------------------------------------------------------- Registers -------------------------------------------------------------------------------------
46
      PC   = 20000054
47
Current:  R0   = 00000000,  R1   = 08000000,  R2   = 00004000,  R3   = 00000003
48
      R4   = 20000358,  R5   = 200003B8,  R6   = 000000FF,  R7   = 20000147
49
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
50
51
52
Info: J-Link: Flash download: Flash programming performed for 1 range (0 bytes)
53
54
****** Error: Failed to erase sectors 0 @ address 0x08000000 (erase error)
55
Info: J-Link: Flash download: Total time needed: 7369.926s (Prepare: 1.696s, Compare: 0.078s, Program: 0.000s, Verify: 7367.024s, Restore: 1.127s)
56
J-Link>r
57
Reset delay: 0 ms
58
Reset type NORMAL: Resets core & peripherals via SYSRESETREQ & VECTRESET bit.
59
Info: Found Cortex-M4 r0p1, Little endian.
60
Info: TPIU fitted.
61
Info: ETM fitted.
62
Info: FPUnit: 6 code (BP) slots and 2 literal slots
63
J-Link>g
64
J-Link>exit

Mein JLink Script:
1
#/usr/bin/bash
2
/usr/local/bin/JLinkExe << EOF
3
exec Device=STM32F407VG
4
h
5
loadbin ./project.bin, 0x8000000
6
r
7
g
8
exit
9
EOF

Da ich den JLink-EDU nur zum flashen brauche, bin ich mit den Meldungen
etwas überfordert ;-)

Hat jemand von Euch eine Ahnung, was da falsch läuft, oder mir
eventuell einen JLink Befehl, mit dem ich die CPU testen kann ?

Keine Ahung, ob ich durch die diversen Verkabelungsversuche etwas
zerstört habe, oder einfach (was ich hoffe), etwas noch nicht
begriffen habe.

von Daniel B. (dbuergin)


Lesenswert?

Ok, gelöst

Auf dem STM32F407VGT6 war in den sogenannten "Option Bytes" die
"Read Out Protection" auf Level 1 gesetzt.
Diese Bytes werden aktuell vom JLinkExe, nicht unterstützt.
Macht ja eigentlich auch keinen Sinn, da jeder, der ein
eigenes Board entwickelt, diese natürlich nicht setzt.

Laut Alex von Segger, werden die "Option Bytes" in einer der nächsten
Versionen unterstützt (überprüfen und wenn möglich setzen).

Ich habe jetzt halt noch einen ST-LINK/V2 Adapter in meiner Sammlung,
man hat ja nie genügend Programmieradapter....

Daniel

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.