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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
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!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.