Hi,
I'm currently working with kinetis k60 and IAR workspace.I'm trying to write to UART via DMA channel 1,i.e. i have a buffer in memory:
#define DMA_BLK_SIZE 16
uint8 Dma_Source_Blk[DMA_BLK_SIZE]; //filled with data 0x01 - 0x10
and i trying to transfer this array to UART by DMA.
The DMA is configured to 1byte minor loop and 16 bytes major loop.When i set 1 byte major loop,i've received DMA interrupt,but when the major loop is defined as 16 bytes,DMA ISR isn't triggered.
I've worked with UART3 and DMA channel 1. DMA MUX source is 13.Is it right?
Thanks,
DMAMUX_SRC_UART0_RX = 2,
DMAMUX_SRC_UART0_TX = 3,
DMAMUX_SRC_UART1_RX = 4,
DMAMUX_SRC_UART1_TX = 5,
DMAMUX_SRC_UART2_RX = 6,
DMAMUX_SRC_UART2_TX = 7,
DMAMUX_SRC_UART3_RX = 8,
DMAMUX_SRC_UART3_TX = 9,
DMAMUX_SRC_UART4_RX = 10,
DMAMUX_SRC_UART4_TX = 11,
So, no, not 13. I think 13 is reserved. You want DMAMUX_SRC_UART3_TX = 9.
comsosysarch,
your quote below - I am using IAR on K60 and lookoing for these definitions (and all the peripheral slots assignable through the DMAMUX).
May I ask, where did you find these?
Thanks
Rich
2012-02-29 08:41 PM
DMAMUX_SRC_UART0_RX = 2,
DMAMUX_SRC_UART0_TX = 3,
DMAMUX_SRC_UART1_RX = 4,
DMAMUX_SRC_UART1_TX = 5,
DMAMUX_SRC_UART2_RX = 6,
DMAMUX_SRC_UART2_TX = 7,
DMAMUX_SRC_UART3_RX = 8,
DMAMUX_SRC_UART3_TX = 9,
DMAMUX_SRC_UART4_RX = 10,
DMAMUX_SRC_UART4_TX = 11,
K60 Sub-Family Reference Manual, Rev. 6, Nov 2011
pp 92-94
3.3.9.1 DMA MUX request sources
Table 3-24. DMA request sources - MUX 0
May not be the most recent but it is the one I have.
Yes, I have IAR EWARM-CM (and Keil uVision4) but had to make my own header file since both of them fail to include this information. Just like if you use DMA you may find that it is easier when writing code to remake the TCD definition using pointers instead of uint32_t for a few items - ymmv.
Go by that table, not my list (for example, for whatever reason long since forgotten I have the UART5 sources as reserved).
I guess that's what happens when you zoom in on the part thet you 'know is important' and forget the rest of the manual
Thanks.
thanks or ...... I have procesor MPC 5606B
I need send array byte[176][144] to UART with DMA ........ repeatedly ........ it is posible?????
example is :
"
In File registers.h:
#define DMAMUX_BASE_ADDR 0xFC084000/* Example only ! */
/* Following example assumes char is 8-bits */
volatile unsigned char *CHCONFIG2 = (volatile unsigned char *) (DMAMUX_BASE_ADDR+0x0002);
In File main.c:
#include "registers.h"
.
.*CHCONFIG2 = 0x00;
*CHCONFIG2 = 0xA2;
"
I have to this problem .... I need send same array with DMA to UART....... pleas help me