First of all, as a newbie, I put the subject of my message as my alias... Hum, does anybody has a solution for that?
Now lets talk about my problem.
I am using the M52259EVB and I am trying to use DMA0 transfers to UART1, and it doesn't work. The point is that when I use the debugger and that I look at the DMA0's register (such as SAR0, DAR0, DCR0...) values, I can see that they always stay at 0. I have been through the forum, searching for DMA similar problems but it was unsuccessful. The UART1 works well.
I am using Codewarrior IDE 5.9.0 .
Here is the code I use to initialize DMA0 (I followed the instructions written in the MCF52259 reference manual):
/* Initialize RAMBAR */
DMAREQC |= DMAREQC_DMAC00_BITMASK; //maps UART1 transmit
DMAREQC |= DMAREQC_DMAC02_BITMASK;
DMAREQC |= DMAREQC_DMAC03_BITMASK;
PACR1 |= PACR1_ACCESS_CTRL00_BITMASK; //Enable DMA access to the UART1
PACR1 |= PACR1_ACCESS_CTRL01_BITMASK;
DCR0 |= DCR0_START_BITMASK;
DCR0 |= DCR0_CS_BITMASK; //cycle steal mode
DCR0 |= DCR0_SSIZE0_BITMASK; //one byte size
DCR0 |= DCR0_DSIZE0_BITMASK; //one byte size
DCR0 |= DCR0_D_REQ_BITMASK; //disable external requests when BCR reaches zero
SAR0 = (uint32) &source; //address of the source data
DCR0 |= DCR0_SINC_BITMASK; //increment source pointer
DAR0 = (uint32) &UTB0; //address of the UART transmit buffer
DCR0 &= !DCR0_DINC_BITMASK; //clear DINC
BCR0 |= BCR0_BCR4_BITMASK; //Number of bytes to transmit
DCR0 |= DCR0_EEXT_BITMASK; //start data transfers
Once again, when I am using the debugger to watch at DMA0 registers their values do not change.... Is there any write access to allow in addition to enable DMA access to UART1?
Thanks in advance for any answers that may help me to figure out what is my problem...