Forum: Mikrocontroller und Digitale Elektronik STM32F407VGT6 (Cortex-M4)


von Andreas P. (amicyb)


Lesenswert?

Guten Tag

Ich bräuchte einen Ratschlag von den vielen Experten hier. Ich überlege 
gerade nach langjähriger PIC Benutzung auf die Familie STM32 
umzusteigen. Bevor ich ein Dev Kit, Programmer u.s.w. bestelle hätte ich 
zu einem aktuell anliegenden Projekt eine Frage:

Eigentlich habe ich CPU <-> Busanbindungen immer mit einem CPLD (MAX 
3000)gelöst. Aktuell müsste ich die CPU an ein ziemlich "langsames" 7 
MHz 8 Bit Interface anbinden. Primär zur Steuerung und etwas 
Datenübernahme. Hat die STM32 CPU genug Power bzw. Reaktionszeit, dass 
ich es da eventuell wagen könnte auf den CPLD zu verzichten?

Falls sich jemand bereits damit beschäftigt hat oder generell die STM32 
Familie gut kennt bin ich für Tipps / Ratschläge sehr dankbar ob ich den 
Gedanken weiterverfolgen kann oder es lieber sein lasse.

MFG Andreas P.

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


Lesenswert?

Der Bus nennt sich "FSMC" und ist in der Doku beschrieben. An den 
100-Pinner gibt es das FSMC Interface. Ja nach dem wie viele 
Adressleitungen benötigt werden müsstest du einen 144-Pinner nehmen.

Ansonsten haben ich mit dem externen Bus nichts programmiert, sollte 
alles im Reference Manual RM0090 stehen.

von Andreas P. (amicyb)


Lesenswert?

@ Markus

Vielen Dank für die Antwort! Werde mir das Reference Manual mal etwas 
genauer ansehen. Wie ist die Arbeit mit der CPU so im "allgemeinen" 
schon etwas mit I2C oder ISP angesteuert?

MFG Andreas

von holger (Gast)


Lesenswert?

>Wie ist die Arbeit mit der CPU so im "allgemeinen"

Im Vergleich zu welchem PIC?
Wenn man mal von einem ATmega128 ausgeht
dann fragt dich die CPU dauernd: War das schon alles?
Ich hab noch 90% Rechenzeit frei. Gibt es noch was zu tun?

>schon etwas mit I2C oder ISP angesteuert?

I2C pfui Teufel.

Wenn du mit ISP SPI meinst:
SD Karte oder Display mit 20MHz oder noch mehr
ansteuern geht gut.

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


Lesenswert?

Im allgemeinen bin ich mit der CPU sehr zufrieden. Die neuen STM32F2xx / 
F4xx haben bessere Funktionen in der Peripherie und vor allem eine 
bessere Zuordnung der alternativen Funktionen. Auch sind jetzt fast alle 
IOs 5V-Tolerant.

Mit I2C habe ich leider noch das Problem dass der bei mir nicht tut, 
siehe hier: Beitrag "STM32F4xx I2C bei aktivieren Busy"
Bisher habe ich noch keine Lösung gefunden, leider (den Bus von Hand 
proggen, darauf wollte ich gerne verzichten).

Ich baue gerade ein größeres Projekt um und da habe ich schon viel am 
laufen. Ein paar Dinge muss ich noch umproggen, denn vorher war es ein 
8051.

Vor 4 Jahren hatte ich mit dem STM32F1 angefangen und seit kurzem den 
STM32F4. Ich finde es gibt derzeit nicht wirklich was besseres auf dem 
Markt (ich kenne Atmel, Pic, LPC uvm.)
Und wenn es in einem Projekt nicht auf 50 ct. ankommt, nimmt man besser 
gleich den STM32F4 anstatt den F1.

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


Lesenswert?

>I2C pfui Teufel.
Brauche ich trotzdem, weil bestehendes Projekt in dem nur die CPU Karte 
erneuert wird. Beim STM32F103 laufen meine Routinen problemlos, der 
STM32F4 hat die gleichen Register und da tut der nicht mehr.

von Andreas P. (amicyb)


Lesenswert?

@ holger
Als PIC verwendete ich bisher meistens entweder den 16F887 oder den 
leistungsfähigeren 18F45K22. Gibt es beide im praktischen DIP Gehäuse, 
dass sich toll für einen schnellen Lochraster-Proto eignet.

Ja ich meinte natürlich SPI. Böser dreher meinerseits...

@Markus
Danke für die Erfahrungsinfos bezüglich der STM32 Familie. Sie sind da 
ja schon lange mit dabei!


Hoffe, dass das Problem mit dem "bösen" I2C für Sie noch lösbar ist.

Habe mir heute ein Devkit mit dem STM32F407VGT6 168MHz Cortex-M4 zum 
warmwerden mit der neuen CPU gekauft.

MFG Andreas

von Frank K. (fchk)


Lesenswert?

Andreas P. schrieb:
> @ holger
> Als PIC verwendete ich bisher meistens entweder den 16F887 oder den
> leistungsfähigeren 18F45K22. Gibt es beide im praktischen DIP Gehäuse,
> dass sich toll für einen schnellen Lochraster-Proto eignet.

Dann wäre doch der einfachere Upgradepfad die PIC24E/dsPIC33E und der 
PIC32. Die kleineren gibts auch in DIL, die 100-Pinner natürlich nicht 
mehr. Dein PicKIT3 bzw ICD3 und das MPLAB kannst Du weiter verwenden, 
nur den C30 bzw C32 Compiler musst Du Dir neu runterladen und 
dazuinstallieren. Der Rest läuft wie gehabt.

fchk

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


Lesenswert?

I2C läuft jetzt.

Dafür habe ich jetzt eine "bösen" RTC.

von suhas sajjan (Gast)


Lesenswert?

i am working on a project "Evaluation of a 3 axis accelerometer and 
gyroscope." I just have the theoretical knowledge about I2C and all 
other related aspects Regarding this project but i am new to the 
programming and have no idea how to start the coding part.Here is the 
short description of my project. I have STM32F407 microcntroller board 
and GY521 breakout board (MPU6050) my microcontroller acts as a master 
and as a slave mpu 6050 acts and interfacing Has to be done to 
establish_link the so called "communication" between two synthesis via 
I2C bus and code
 Has to be written in
 software Cocoox Coide MPU 6050 Consists of accelerometer and gyroscope 
sensors Which reads sensor values ​​.... when interfacing is done ..... 
This is what the project is all about.

von W.S. (Gast)


Lesenswert?

Andreas P. schrieb:
> Ich überlege
> gerade nach langjähriger PIC Benutzung auf die Familie STM32
> umzusteigen.

Mach das ruhig, aber lies dir das HW-Manual durch. Ja, ich weiß. Dieses 
Manual ist von Franzosen und Italienern geschrieben und ist entsprechend 
geschwätzig und nicht wirklich stringent.

Ansonsten sehe ich keine großen Unterschiede zu den diversen LPC's von 
NXP und frage mich, warum in diesem Forum ausgerechnet STM32 so gepusht 
wird. Aber vielleicht ist das wie bei den AVR's.

Was deine Bedenken zu irgendwelchen externen Bus-Geschichten betrifft, 
so sehe ich da keine Probleme. Normalerweise kann man verschiedenen /CS 
verschiedene Anzahl von Waitstates zuordnen, nur Vorscht: m.W. ist die 
maximale Anzahl Waitstates begrenzt, also doch lieber das HW-Manual 
befragen. Wenn's noch langsamer gehen soll, dann bleibt ja immer noch 
der Port-zugriff zu Fuß.

Ach ja, nochwas zu den diversen Eval-Kits: Bei den billigen 
STM32-Dingern ist da im allgemeinen KEIN herausgeführter Systembus 
vorgesehen. Du solltest dir also beizeiten dein eigenes System 
hardwaremäßig entwickeln.


W.S.

von holger (Gast)


Lesenswert?

>Mach das ruhig, aber lies dir das HW-Manual durch.

Nach 1 1/2 Jahren wird er sich sicher entschieden haben;)

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.