Hallo Ich habe überlegt, ob es Sinn macht, für meine ADC Anwendung die Daten per DMA in den RAM zu schreiben. Meine Frage ist, kann die DMA Hardware den Multiplexer des ADC umschalten? Momentan schreibt der Prozessor die Daten in den RAM mit einer Routine, die 50 Mal pro Sekunde aufgerufen wird. Die Routine schaltet auch den ADC Multiplexer um. Ich benötige nur recht "langsam" Werte vom ADC. Ich nutze alle Pins und benötige nur eigentlich nur 4 Werte pro Sekunde. Wenn ich nun den DMA verwenden würde, müsste ich den Conversion Complete Interrupt nutzen, um den Multiplexer umzuschalten. Bei der minimalen Taktrate von 128kHz würde das ja mehr Prozessorlast bedeuten als vorher. Ist DMA hier möglich/sinnvoll?
Hallo, ich verwende z.B. folgendes Beispiel (Code wurde verkürzt) // ADC Init ADCA.EVCTRL=ADC_SWEEP_01_gc | ADC_EVACT_NONE_gc; // CH0 und CH1 // Free Running mode: On ADCA.CTRLB|=ADC_FREERUN_bm; // Enable the ADC ADCA.CTRLA|=ADC_ENABLE_bm; //DMA INIT DMA.CH0.TRIGSRC = 0x10; // ADCA CH0 is trigger source DMA.CH1.TRIGSRC = 0x11; // ADCA CH1 is trigger source Das funktioniert ohne einen Interrupt. Man hat aber nur 4 DMA-Channel DMA kann alle Modis des ADC verarbeiten. Gruß G.G.
Die neue XMega U Serie, zB. ATXMega32A4U kann auf ADC Kanal 0 automatisch nach jeder Messung die ADC Eingangspins durchschalten. Gruß hagen
Mein ATXMega ist ein ATXMega32A4AU. Ist das "U" Serie genug? Ich habe nämlich im XMega A Manual diese Funktion nicht gesehen. Oder steht das zufällig auch in einer Appnote?
Wohl eher nicht, er meint wohl den XMega mit USB... Dachte es gibt kaum Unterschiede zwischen den XMegas ohne und mit u, außer kleineres Erreta und USB?!
Ich habe gerade das hier gefunden: http://www.ineltek.com/de/news/Atmel_AVR_XMEGA_USB.php Da muss ich mal schauen, ob ich diese neuen U-Typen von gängigen Distrubutoren beziehen kann. btw. Habt ihr einen Geheimtipp, um günstig an Dip-Adapterplatinen wie die hier zu kommen? http://www.reichelt.de/Laborkarten/RE-903/3/index.html?;ACTION=3;LA=2;ARTICLE=105491;GROUPID=3374;artnr=RE+903;SID=11UIfDN38AAAIAAF-mE4Q667d892947e9bd93b4b43c6687d8ccd6 Für TQFP, SOT, usw.? Ich finde 5 Euro für so eine Platine, wenn der Prozessor schon nur 5 Euro kostet, ein bischen heftig.
Schau mal bei ANVILEX vorbei; die haben alle mögliche Adapterplatinen zu günstigen Preisen mfg
TQFP44 für 1 Euro bei 2€ Versand! Die sind ja genial! Danke für den Tip!
F. K. schrieb: > Mein ATXMega ist ein ATXMega32A4AU. > Ist das "U" Serie genug? > Ich habe nämlich im XMega A Manual diese Funktion nicht gesehen. > > Oder steht das zufällig auch in einer Appnote? Ist nicht die gleiche Serie, aber du kannst sie 1 zu 1 ersetzen. Ich meinte ATXmega32A4U-AU ist vergleichebar zu deinem ATXmega32A4-AU Sieh in das "XMega AU Manual.pdf" http://www.atmel.com/devices/ATXMEGA32A4U.aspx?tab=documents Distries: http://de.mouser.com/Search/Refine.aspx?Keyword=atxmega32a4u http://de.farnell.com/jsp/search/browse.jsp;jsessionid=IT4RS1ZTQALAUCQLCIRJK0Q?N=0&Ntk=gensearch&Ntt=atxmega32a4u&Ntx=mode+matchallpartial&exposeLevel2Refinement=true&suggestions=false&ref=globalsearch&_requestid=97024 Gruß hagen
Hallo die von Hagen erwähnte Funktion "Input Source Scan" habe ich bei den Xmegas noch gar nicht gefunden. Aber das klingt sehr interessant. Leider habe ich noch nicht ganz verstanden, wie ich diese automatische Umschaltung initialisieren, bzw. nutzen kann. Kann mir hier jemand weiter helfen, bzw. ein Beispiel für die Initialisierung posten. folgende Vorgang zum schnellen Auslesen des ADC stell ich mir vor. - alle 8 ADC Eingänge werden zu 4 Differentiellen ADC Kanälen initialisiert - Der Channel 0 liest nacheinander das Ergebnis der 4 Kanäle - Das Ergebnis wird vom DMA ausgelesen und in ein Array gespeichert. Vorteil, ich muss nur ein DMA Channel zum lesen der ADC Kanäle verwenden. Grüße Martin
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.