Ich möchte einen STM32-Mikrocontroller verwenden, um Daten von einem Mehrkanal-ADC zu lesen. Der Mikrocontroller, den ich verwenden möchte, wird höchstwahrscheinlich aus der F7-Serie stammen (z. B. STM32F746ZGT ), während der ADC, den ich derzeit im Auge habe, der LTC2358-18 von Analog Devices ist.
Das Projekt, an dem ich arbeite, erfordert, dass ich gleichzeitig 6 analoge Kanäle (mit einer angemessenen Datenrate) auslese. Soweit ich weiß, kann der jeweilige ADC-Chip seine Konvertierungsergebnisse auf verschiedenen seriellen Datenausgabekanälen (SDO) ausgeben, die parallel ausgelesen werden können (der serielle Takt ist für alle identisch):
Ich habe mich gefragt, ob es möglich ist, eine einzelne STM32-MCU zum Lesen der 6-Kanal-Ausgangsdaten über SPI zu verwenden (ich brauche die beiden verbleibenden Kanäle nicht wirklich). Im Allgemeinen würde ich davon ausgehen, dass ich 6 SPI-Schnittstellen konfigurieren muss, die auf STM32F746ZGT wie folgt verfügbar sind:
Oder mit anderen Worten, es würde in etwa so aussehen:
Würde diese Art der Konfiguration tatsächlich funktionieren oder übersehe ich etwas?
Ich bin kein Experte für STMs, aber für ungefähr jeden Controller, mit dem ich gearbeitet habe, würde dies aus folgenden Gründen nicht funktionieren:
Was Sie stattdessen tun sollten, ist, sie wie beabsichtigt seriell zu lesen (normalerweise geschieht dies durch einen DMA-Lesevorgang). Da sich nur ein ADC im Inneren befindet und die maximale Abtastrate laut Datenblatt 200k (8ch) beträgt, führt die Annahme einer 24-Bit-Übertragung (nicht sicher, ob der DMA des STM damit umgehen kann) zu einer Datenrate von etwa 40 MBit / Spi-Geschwindigkeit. Dies sollte möglich sein, ohne die Nachbearbeitung zu berücksichtigen.
Ihr STM-Prozessor ist nicht multithreaded, vergessen Sie das nicht. Sie können physikalisch nicht 6 Zeilen parallel lesen. Nur jeweils eine, verwenden Sie die Kanal-IDs und verbinden Sie alles mit einer Leitung. Die ADC-Wandlung dauert dabei am längsten. Befehlen Sie den ADCs, die Ausgänge zu konvertieren und dann einzeln zu lesen. Setzen Sie sie alle in dieselbe Zeile und sagen Sie dann „Zeile 1 gibt mir Daten“, jetzt „Zeile 2 gibt mir Daten“, eine nach der anderen. Aus diesem Grund gibt es Kanal-IDs, sonst würden sie wertvolle Bits verschwenden.
Stunden
DiBosco
KR
Arsenal
KR
Arsenal
Tut