Forum: Digitale Signalverarbeitung / DSP / Machine Learning EDMA steuerung durch GPIO Interrupt


von Kai Z. (liquidsteel)


Lesenswert?

Moin,

ich suche eine Loesung fuer folgendes Problem: Ich habe ein System 
bestehend aus ner DSP TMS320C6747 und einem ADC (10 MHz, 16 bit). 
Bislang sieht die configuration folgen aus:
- ADC verbunden an GPIO
- Sample ready Signal vom ADC geht an GPIO und loesst beim EDMA ein 
Event aus --> das EDMA uebertraegt das Sample in den Speicher.
Soweit funktioniert alles super.
Der ADC lauft constant mit 10 MHz Sampling Rate. Nun brauche ich aber 
eine Loesung, die mir den EDMA transfer nicht beim jeden fertigen 
Sample, sondern erst bei z.b. jedem 100tel Sample den EDMA transfer 
asloest. Also ich will im Prinzip nicht jeden, sondern nur jeden 100ten 
wert, den mir der ADC bereitstellt, speichern. Meine bisherige loesung 
ist ja komplett unabhaengig von der CPU, so sollte es am besten auch 
bleiben.
Hat jemand eine Idee wie ich das anstellen kann?

Gruss
Kai

von Kai Z. (liquidsteel)


Lesenswert?

Ich habe zwar immer noch keine Loesung gefunden, aber bei der Suche ist 
ein neues Problem entstanden.

Und zwar bekomme ich es nicht hin, den EDMA zu stoppen --> mit der CPU 
den Param zu programieren und danach den EDMA transfer wieder zu 
starten.

Bislang hatte ich einfach durch verlinkung den Param aktualisiert. Nun 
will ich ihn aber mit der CPU aktualisieren. Der EDMA transfer ist 
generel Eventgesteuert. Mein Vorgehen ist, dass ich zuerst den Event 
stoppe (mittels Event Clear Register), die neuen Param Werte schreibe 
und dann den Event wieder starte. Aber der Transfer will nicht mehr 
starten.

Hat jemand erfahrung mit EDMA transfers mittels CPU und Eventsteuerung, 
oder mal so ein Routinecode parat?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.