Hallo, suche Ideen, wie ich in Python mit Windowsrechner über USB 2*10
Bit DAC's und 1*10-12 Bit ADC beschreiben, bzw auslesen kann.
Preis ..nicht sehr hoch - das ist Hobbybedarf.
So nun genauer - es sollten circa je Sekunde 10 komplette DAC Wandlungen
und zwischen jeder einzelnen Wandlung 1 Lesevorgang des Ergebnisses
gemacht werden und zum Rechner übertragen werden, um sie darzustellen.
Analog ist das ewig fertig - aber in die Tage gekommen, wird im Moment
über langnachleuchtenden Bildschirm und Sägezahn gemacht.
Schön ware auch noch, wenn man (externer stm32 oder was auch immer) über
usb den DAC Bereich ändern könnte und ein paar Schaltausgänge hätte.
Raspberry ist über Spi zu langsam.
Hab im Moment keine Idee wie ich es mit der Geschwindigkeit
verwirklichen könnte.
Ist sowas zu realisieren und wer kann mir mit Vorschlägen weiterhelfen ?
Grüsse Pitti
> mit der Geschwindigkeit
Wirklich nur 10x/s Ausgänge setzen und Eingänge lesen?
Ein Arduino Due hat 2 12bit DACs und 12 12bit ADCs und kann über USB mit
der SW auf dem PC sprechen. DAC-Bereich ändern geht nur mit externer
Beschaltung, Pins dafür wären reichlich da.
Original 50€, Kopie 15€.
schön wäre es ja aber 2 mal 10 bit einzeln durchrattern um einen
Sägezahn zu erzeugen , das wird wohl eng - das noch 10 mal je Sekunde.
Also
DAC1 1 bit setzen, ADC lesen, DAC2 0-1023 jeden Schritt lesen > dann
DAC1+1 DAC2 0-1023 usw
denke das geht auf den Due nicht, da muss was dickeres her - oder ich
liege bei dem kpl falsch
Seh ein, das ich im ersten Text doch was unklar beschrieben hatte,
das würde der Due schaffen
------------------------------------
je Sekunde 10 komplette DAC Wandlungen
und zwischen jeder einzelnen Wandlung 1 Lesevorgang des Ergebnisses
----------------------------------------------
sind aber ein ""paar"" mehr
Das sind 10 kHz Update Rate. Das ist gar nix. Ich kann mir nicht
vorstellen dass das nicht geht, wahrscheinlich kann das Teil das zehn-
oder hundertfache.
Pitti schrieb:> je Sekunde 10 komplette DAC Wandlungen
Also bedeutet "1 komplette Wandlung" in diesem Fall "einmal jeden Wert
des Wertebereichs setzen".
ja so meinte ich es,
DAC1 grobes Raster
als Zwischenschritt DAC2 0-1023 > feines Raster (denke hier komme ich
mit 512 aus)
dann DAC1+1 und wieder DAC2
und bei jedem Schritt lesen
ja, das bekam ich auf Raspberry nicht hin - der war zu langsam, da er
auch das Bild darstellen musste, und die Einschänkung bei SPI noch hat,
als seriellen Bus für ADC und DAC
Deswegen die Frage hier - ob STM32 oder andere Prozessoren mit
eingebautem parallelen ADC/ DAC in der Lage sind das zu liefern.( oder
was ganz anderes )
Die Daten müssen ja auch noch über den USB Bus.
Danke fürs Lesen und Antworten
Lothar schrieb:> LPC4370 schafft 80 MSPS und das Eval-Board gibt es für 15 EUR
Hat aber nur 1 DAC, das Board hatte ich mir auch schon angeschaut
Wieviel Reserve hat die CPU noch, um die Daten per Usb zu liefern und
noch eine 2ten DAC zu steuern
Oder gibt es da etwas ähnliches mit 2 10bit DAC und ADC
Wenn es so günstig ginge, schraube ich auch meine Anforderungen zurück
auf 6 kpl Zyklen je Sec.
Aber die Raspberry Geschichte schaue ich mir mal an, sieht sehr
interessant aus.
Pitti schrieb:> Wieviel Reserve hat die CPU noch, um die Daten per Usb zu liefern und> noch eine 2ten DAC zu steuern
Es gibt ja drei Cores, man könnte also den M4 für den ADC nutzen (der
aber auch DMA hat), einen M0 für USB (hat aber auch DMA) und einen M0
als Serial Engine für einen externen DAC (der läuft ja mit 204 MHz und
schafft im Bit-Bang deutlich mehr als Hardware SPI oder I2C)
Pitti schrieb:> Lothar schrieb:>> LPC4370 schafft 80 MSPS und das Eval-Board gibt es für 15 EUR>> Hat aber nur 1 DAC, das Board hatte ich mir auch schon angeschaut> Wieviel Reserve hat die CPU noch, um die Daten per Usb zu liefern und> noch eine 2ten DAC zu steuern
Nimm einfach einen parallelen DAC und 10 GPIOs. Davon hat LPC43xx
reichlich.
Lothar schrieb:> (der läuft ja mit 204 MHz und> schafft im Bit-Bang deutlich mehr als Hardware SPI oder I2C)
Die SSPx sollten SPI mit CCLK/2 fahren können, das schafft man in
Software nicht. Ich bin mir allerdings nicht sicher ob die Pins
überhaupt Frequenzen >50 Mhz mitmachen.
Nach meiner Erfahrung mit der LPC43xx-Architektur bringen die mehreren
Cores nicht so unglaublich viel, weil die alle am selben Bus hängen und
nicht gleichzeitig auf den RAM zugreifen können. Auch nicht auf
verschiedene Bänke. Ob man dann DMA nimmt oder einen der Cores mit einer
Schleife ist relativ egal, das Problem ist immer dasselbe: wenn einer
der anderen Cores auch den RAM braucht, hängt's. Und quasi alles was man
mit so einer CPU tun kann braucht den RAM.
Eine eigene Frage?
Dieser Thread ist über 10 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.