Jens schrieb:
> Natürlich hatte ich das passende Plugin ausgewählt.
> Ich habe deswegen um es zu testen mit dem F7 Discovery Board getestet
Aha, da kommen also tröpfenweise die nötigen Infos. Es geht also
definitiv um ein F7-Discovery Board? Und welches? Es gibt deren zwei ...
> Wenn es nicht funktioniert hätte würde ich an Adresse 0x90000000 auch
> nicht die Daten sehen, welche ich mit dem FlashLoader geschrieben habe.
> Wenn die GPIO Register und die Grundkonfiguration nicht stimmen würde
> kann ich wohl kaum die Chip ID vom QSPI auslesen?
Nochmals aha! Wieder ein Tröpfchen hinterher. Das Auslesen der ID geht
aber nicht im Memory Mapped, sondern nur im Indirect Read mode. Und war
das im QPI-Modus oder SPI (1-Line)?
Aber Instruktion im 4-Line-, Adresse im 1-Line- und Daten dann wieder im
4-Line-Mode wie unten definiert macht überhaupt keinen Sinn.
Das QUAD_OUT_FAST_READ möchte Instruktion und Adresse im 1-Line, Daten
im 4-Line Modes.
Und (interne!!!) Konfiguration des Flash Chips? Die Default-Anzahl Dummy
Clocks (und manches mehr) ist im Flash (auch nicht-flüchtig)
programmierbar. Falsche Anzahl sollte allerdings nur falsche Daten beim
Auslesen ergeben, nicht lauter 0xFF.
> der Flash ist folgender: N25Q128A
Aha, also ist's das STM32F746-Disco, nicht F769, das nächste Tröpfchen
...
>
> #define QUAD_OUT_FAST_READ_CMD 0x6B
> #define DUMMY_CLOCK_CYCLES_READ_QUAD 10
> sCommand.InstructionMode = QSPI_INSTRUCTION_4_LINES;
> sCommand.AddressSize = QSPI_ADDRESS_24_BITS;
> sCommand.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
> sCommand.DdrMode = QSPI_DDR_MODE_DISABLE;
> sCommand.DdrHoldHalfCycle = QSPI_DDR_HHC_ANALOG_DELAY;
> sCommand.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;
>
> sCommand.AddressMode = QSPI_ADDRESS_1_LINE;
> sCommand.DataMode = QSPI_DATA_4_LINES;
>
>
> /* Configure Volatile Configuration register (with new dummy cycles)
> */
> QSPI_DummyCyclesCfg(&QSPIHandle);
>
> /* Reading Sequence ------------------------------------------------
> */
> sCommand.Instruction = QUAD_OUT_FAST_READ_CMD;
> sCommand.DummyCycles = DUMMY_CLOCK_CYCLES_READ_QUAD;
> sMemMappedCfg.TimeOutActivation = QSPI_TIMEOUT_COUNTER_DISABLE;