11.10.2010, 04:04 PM
Zitat:Original geschrieben von Rumgucker
Zitat:Original geschrieben von alfschSo. Ich geh jetzt diese Sache mal an Typischerweise ist bei Atmel-Soft-DDS-Generatoren bei ein paar zig kHz Schluss. Alfsch hat aber Recht: die Kisten sollten mehr können. Ich teste mit dem mega1284, weil der genug Beinchen für allerlei Bedienungs- und Anzeigefirlefanz hat.
..and now for something different..
prinzip: dds loop für mega48:
LOOP1:
add r28,r24 ; 1
adc r29,r25 ; 1
adc r30,r26 ; 1
ld r0,Z ; 3
out PORTB,r0 ; 1
rjmp LOOP1 ; 2 => 8 cycles !!
bei 20mhz clock -> max. 2,5 M sampels out
Mist. Das haut alles nicht hin. Ich muss zumindest den FM-Eingang abfragen. Zwar kann ich den AD-Wandler kontinuierlich durchrattern lassen, aber allein das Übertragen des Ergebnisses in R24-26 degradiert die 8-Zyklen-Schleife deutlichst.
Und damit ist es noch nicht getan. Ich wollte eigentlich auch noch die Symmetrie mit einem Poti erfassen und in den Mega einspeisen. Und auch Port-Change-Änderungen an den Frequenz-Kodierschaltern sind schwer zu erfassen, weil die Dinger in einer Matrix abgefragt werden und ich in der Schleife dann auch den Matrix-Multiplexer rattern lassen müsste. So käme man schnell von knapp über 1 MHz auf 500 kHz oder so.
Das ist also eine Sackgasse.
Also brauch ich doch den Pollin-CPLD. Ich stell mir das so vor, dass der Mega alle Bedienelemente abfragt und dann dynamisch das lookup-RAM des CPLD-Boards befüllt. Entweder mit Sinustabellen oder mit Dreieckstabellen oder Sägezahn usw. Die gaanze nichtflüchtige Tabellenspeicherung macht der Atmel und auch die ganze Datenvorbereitung der lookup-Table.
Sobald die Tabelle dann geladen ist, läuft der CPLD los und kann bis zu 10 MHz DDS schaffen (mehr bringt das 55ns-Pollin-Ram nicht).
Ok.... das könnte so klappen.
...aber was für ein Aufwand...