Thomas Francois

M52259EVB - DMA0 transfers to UART1

Discussion created by Thomas Francois on Jul 4, 2011
Latest reply on Jul 12, 2011 by Thomas Francois

Hi all,


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 */
  asm {
    move.l  #0x20000221,d0
    movec   d0,RAMBAR




      DMAREQC |= DMAREQC_DMAC00_BITMASK;    //maps UART1 transmit
      PACR1 |= PACR1_ACCESS_CTRL00_BITMASK;    //Enable DMA access to the UART1

      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...


PS: I already have succeed in using UART, SPI, PIT, and interrupts, so I am an improved newbie :smileyhappy: