Hi Leute
Bevor ich mir einen STM in Form eines BluePill, WeMos oder Nucleo kaufe
und in die Software einarbeite, bloss um vielleicht festzustellen, daß
es mit ihm doch nicht geht, frage ich mal lieber Leute dich sich schon
auskennen:
Ich muss ein Analogsignal mit ungefähr 1Msps abtasten, dabei aber ein
CLK Signal mit steigender und fallender Flanke erzeugen.
Offiziell kann ein STM32 das, sein A/D ist laut Datenblatt schnell
genug, aber das I/O Verhalten ist mit unsynchronem eigenen Takt und
eventuell DMA etwas unübersichtlich, so daß ich nicht sofort im
Datenblatt erkennen kann ob es geht.
1 | -- -- -- --
|
2 | CLK ---- ----- ----- ----- -----
|
3 |
|
4 | A/D -X------X------X------X------X--
|
Ich muss also an einem GPIO so ein CLK Signal erzeugen (mindestens 200ns
high und 200ns low, aber auch 1us low und 1us high wäre ok) und
innerhalb der Pause den A/D-Wandler zur Umwandlung überreden,
taktsynchron. Die 1Msps müssen nicht genau stimmen, es können auch
0.5Msps oder 2Msps sein, auch die Zeit des Sampelns ist nicht kritisch,
irgendwann bevor der nächste Takt losgeht. Die 2048 Samples selbst
müssen bloss in einem Puffer abgelegt werden, ob 8, 10 oder 12 bit wäre
egal, dafür sollten die 20k RAM ja reichen, und danach per USB
weggesendet werden.
Kann ein STM32 das, und mit welcher Art der Programmierung ?
Ich glaube mich sogar daran zu erinnern, daß es schon ein
Beispielprojekt gab, welches eine solche Art der oszilloskopähnlichen
Datenerfassung (schnelles Samplen, dann per USB an Rechner übertragen)
gemacht hat, finde es aber nicht wieder.