Forum: Mikrocontroller und Digitale Elektronik cc2510 Port lesen per DMA


von Roland (Gast)


Lesenswert?

Hallo an alle,
Seit Tagen versuche ich meinem cc2510 MCU von TI zu überreden das Port1 
per DMA in ein Array zu lesen. Leider funktioniert das nur mit mäßigen 
Erfolg. Wenn ich das Port direkt auslese (Test = P1) klappt es 
wunderbar. Wenn ich für das Gleiche die DMA benutze bekomme ich immer 
nur das Reset Value vom Port zurück. Hat einer von euch eine Idee was 
ich falsch mache???
Und ist das überhaupt möglich?

Hier die Funktion:
1
#define DATA_AMOUNT 512
2
static char copy[DATA_AMOUNT];
3
static DMA_DESC dmaConfig0;  
4
void main(void){
5
  P1SEL = 0x00;
6
  P1DIR = 0x00;
7
  P1INP = 0x00;
8
  P2INP = 0x40;
9
    dmaConfig0.SRCADDRH  = ((uint16)P1 >> 8) & 0x00FF;   // I thought here should stand 0xDF90 ????
10
    dmaConfig0.SRCADDRL  = (uint16)P1 & 0x00FF;
11
    dmaConfig0.DESTADDRH = ((uint16)copy >> 8) & 0x00FF;
12
    dmaConfig0.DESTADDRL = (uint16)copy & 0x00FF;
13
    dmaConfig0.VLEN      = DMA_VLEN_USE_LEN;
14
    dmaConfig0.LENH      = (DATA_AMOUNT >> 8) & 0x00FF;
15
    dmaConfig0.LENL      = DATA_AMOUNT & 0x00FF;
16
    dmaConfig0.WORDSIZE  = DMA_WORDSIZE_BYTE;
17
    dmaConfig0.TMODE     = DMA_TMODE_BLOCK;
18
    dmaConfig0.TRIG      = DMA_TRIG_NONE;
19
    dmaConfig0.SRCINC    = DMA_SRCINC_0;
20
    dmaConfig0.DESTINC   = DMA_DESTINC_1;
21
    dmaConfig0.IRQMASK   = DMA_IRQMASK_DISABLE;
22
    dmaConfig0.M8        = DMA_M8_USE_8_BITS;
23
    dmaConfig0.PRIORITY  = DMA_PRI_HIGH;
24
    DMA0CFGH = ((uint16)&dmaConfig0 >> 8) & 0x00FF;
25
    DMA0CFGL = (uint16)&dmaConfig0 & 0x00FF;
26
27
  DMAREQ |= DMAREQ0;
28
29
  while ( !(DMAIRQ & DMAIRQ_DMAIF0) );
30
31
  DMAIRQ &= ~DMAIRQ_DMAIF0;
32
while(1);
33
}

Danke schonmal im Voraus :D

Gruß

Roland
von Roland (Gast)


Lesenswert?

Hi,
Ok es sieht so aus als hätte ich keinen Zugriff auf diese eine XDATA 
Adresse:

 *   Some SFRs are not accessible through XDATA space.  For clarity, 
entries are included for these
 *   registers.  They have a prefix of _NA to denote "not available."

Gibt es da vielleicht noch eine Hintertür die ich benutzen kann? Diese 
Adresse umgehen oder so?
von Roland (Gast)


Lesenswert?

Hi, Ok leider bin ich mir jetzt sicher das es dafür keine Lösung gibt... 
Die DMA hat leider keinen Zugriff auf dieses Port...
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.