Hi
Tx use is equivalent to Rx use - but in the other direction. It needs a second DMA channel.
When testing, monitor the DMA error register since it reports any configuration problems that stop it from working. In particular, make sure that each used DMA channel has its own unique priority since setting any two with the same (or left in uninitialised state) will lead to an immediate priority error.
There is setup code for UART DMA below - copied from the uTasker project whereby this code allows all UARTs to be operated in DMA mode if desired. Not shows is the initialisation of all DMA channel priorities which is best done before any DMA has been started in the system since changing priorities during operation could cause spurious problems; if you have a chip with multiple DMA groups also ensure that the groups priorities don't conflict.
Regards
Mark
KINETIS_DMA_TDC *ptrDMA_TCD = (KINETIS_DMA_TDC *)eDMA_DESCRIPTORS;
ptrDMA_TCD += UART_DMA_TX_CHANNEL[Channel];
ptrDMA_TCD->DMA_TCD_SOFF = 1; // source increment one byte
ptrDMA_TCD->DMA_TCD_DOFF = 0; // destination not incremented
ptrDMA_TCD->DMA_TCD_ATTR = (DMA_TCD_ATTR_DSIZE_8 | DMA_TCD_ATTR_SSIZE_8); // transfer sizes always single bytes
ptrDMA_TCD->DMA_TCD_DADDR = (unsigned long)&(uart_reg->UART_D); // destination is the UART's data register
ptrDMA_TCD->DMA_TCD_NBYTES_ML = 1; // each request starts a single transfer
ptrDMA_TCD->DMA_TCD_CSR = (DMA_TCD_CSR_DREQ | DMA_TCD_CSR_INTMAJOR); // stop after the defined number of service requests and interrupt on completion
fnEnterInterrupt((irq_DMA0_ID + UART_DMA_TX_CHANNEL[Channel]), UART_DMA_TX_INT_PRIORITY[Channel], (void (*)(void))_uart_tx_dma_Interrupt[Channel]); // enter DMA interrupt handler
uart_reg->UART_C5 |= UART_C5_TDMAS; // use DMA rather than interrupts for transmission
POWER_UP(6, SIM_SCGC6_DMAMUX0); // enable DMA multiplexer 0
*(unsigned char *)(DMAMUX0_BLOCK + UART_DMA_TX_CHANNEL[Channel]) = ((DMAMUX_CHCFG_SOURCE_UART0_TX + (2 * Channel)) | DMAMUX_CHCFG_ENBL); // connect UART tx to DMA channel
uart_reg->UART_C2 |= (UART_C2_TIE); // enable the tx dma request (DMA not yet enabled) rather than interrupt mode