UART with DMA

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

UART with DMA

4,763 次查看
renka
Contributor II

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,

 

0 项奖励
回复
6 回复数

2,785 次查看
comsosysarch
Contributor III

    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.

0 项奖励
回复

2,785 次查看
richyankee
Contributor II

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

 

    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,

0 项奖励
回复

2,785 次查看
comsosysarch
Contributor III

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

 

0 项奖励
回复

2,785 次查看
richyankee
Contributor II

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 :smileyhappy:

 

Thanks.

 

 

0 项奖励
回复

2,785 次查看
patooooo
Contributor I

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;

"

0 项奖励
回复

2,785 次查看
patooooo
Contributor I

I have to this problem .... I need send same array  with  DMA to UART....... pleas help me

0 项奖励
回复