Forum: Mikrocontroller und Digitale Elektronik STM32F7 Parallelbus Problem (kein chip select) nach dem Bootloader


von Anatoly (anatolik)


Lesenswert?

Hallo Zusammen,

meine Anwendung läuft auf einem STM32F576VGT6. Es ist ein 
Datenerfassungssystem mit Ethernet (LwIP, HAL, Keil). Im Hintergrund 
laufen ein Paar Timer und Interrupts. Per Timer wird ein ADC über 
Parallelbus abgefragt und die Daten gehen über Ethernet raus.
Die Anwendung funktioniert einwandfrei.
Um Updates zu ermöglichen, wurde ein Bootloader erstellt, der eine 
Binärdatei über TFTP zieht und die ab 0x8010000 flasht. Der Bootloader 
funktioniert auch - zieht und flasht bei Bedarf oder startet das 
Vorhandene ab 0x8010000.
Jetzt kommt mein Problem:
Die Anwendung (VECT_TAB_OFFSET 0x00010000U, Targetoptionen -> IROM1 
0x8010000) läuft korrekt bis auf Lesen von Parallelbus (ChipSelect kommt 
einmal beim Starten, und danach nicht wieder), also I/O's, Ethernet, 
Interrupst - alles da. Nur Chip select und RD werden nicht ausgelöst.

Hat jemand schon so etwas gehabt?

von uff basse (Gast)


Lesenswert?

Anatoly schrieb:
> STM32F7 Parallelbus Problem

Anatoly schrieb:
> auf einem STM32F576VGT6

Erkenne das Fragezeichen.

Anatoly schrieb:
> Nur Chip select und RD werden nicht ausgelöst.

Da liegt es nahe dass dein Bootloader irgendetwas in der
Konfiguration deiner Applikation verstellt was nicht so
einfach reversibel ist (z.B. Alternate Functions).

Oft ist es hilfreich in der eigenen Applikation die Reset-
Funktion (De-Init, "alles auf Anfang") des HAL bzw. des
Low-Level-Treibers anzuwenden bevor man die eigentliche
Initialisierung startet.

von Anatoly (anatolik)


Lesenswert?

Nach einem erkannten Reset werden durch Bootloader nur I/O's 
initialisiert (LED's) und Anwendung gestartet.
Alternate Functions für Parallelbus habe ich kontrolliert, sind auch 
korrekt...

von Anatoly (anatolik)


Lesenswert?

DE-Inits ausprobiert - alles Mögliche deinitialisiert vor dem Reset, hat 
nichts gebracht.

Es lag an dem DCACHE - SCB_EnableDCache();
War beim Bootloader aktiviert, in der Anwendung aber deaktiviert.
Deaktiviert man DCACHE im Bootloader - läuft alles!

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.