LPC1768+SSP0+GPDMA some problem

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

LPC1768+SSP0+GPDMA some problem

942 次查看
Lee_Lee
Contributor I

Why is it that after opening DMACR in SSP0 and transmitting some data to BUF, DMACR is reset to zero, SSP0DR keeps changing, but BUF data remains unchanged.I also tried to reopen DMACR during the interrupt, but there was still no change in the BUF data.
Below is the code configuration:

 

#define SPI_RX_LEN 5386

extern U8 SPIRXBUF[SPI_RX_LEN];

void DMAInit_SPI_RX(U8 *destAddr, U32 len)
{
U32 part1 = (len > 4095) ? 4095 : len;
  U32 part2 = (len > 4095) ? (len - 4095) : 0;// 拆分传输(单通道最大4095字节)
 
  LPC_SC->PCONP |= (1 << 29); // 使能GPDMA时钟
  LPC_GPDMA->DMACConfig |= (1 << 0);//使能GPDMA
  LPC_GPDMA->DMACIntTCClear |= 0x01; // 清除通道0传输完成标志
  LPC_GPDMA->DMACIntErrClr |= 0x01;  // 清除通道0错误标志
 
// 链表项1:传输part1字节
  lli[0].srcAddr = (U32)&LPC_SSP0->DR; // 源:SPI0数据寄存器
  lli[0].destAddr = (U32)destAddr;     // 目的:缓冲区起始
  lli[0].control = (part1 & 0x0FFF)    // 传输大小(字节数)
                   | (0x00 << 12)        // 源突发大小
                   | (0x00 << 15)        // 目的发大小
                   | (0x00 << 18)        //源数据宽度
                   | (0x00 << 21)        //目的数据宽度
                   | (0x00 << 26)        //源地址不变(外设寄存器)
                   | (0x01 << 27)        //目的地址自增
                   | (1U << 31);       // 使能中断
 
    // 链表项2:传输part2字节(若需要)
  if (part2 > 0)
{
lli[0].nextLLI = (U32)&lli[1]; // 指向链表项2
      lli[1].srcAddr = (U32)&LPC_SSP0->DR;
      lli[1].destAddr = (U32)(destAddr + part1); // 缓冲区偏移
      lli[1].control = (part2 & 0x0FFF)    // 传输大小(字节数)
                   | (0x00 << 12)        // 源突发大小
                   | (0x00 << 15)        // 目的发大小
                   | (0x00 << 18)        //源数据宽度
                   | (0x00 << 21)        //目的数据宽度
                   | (0x00 << 26)        //源地址不变(外设寄存器)
                   | (0x01 << 27)        //目的地址自增
                   | (1U << 31);       // 使能中断
      lli[1].nextLLI = 0; // 结束链表
else
{
lli[0].nextLLI = 0;
}
 
    // 配置DMA通道0
LPC_GPDMACH0->DMACCConfig = 0;
  LPC_GPDMACH0->DMACCLLI = (U32)&lli[0]; // 链表起始地址
  LPC_GPDMACH0->DMACCSrcAddr = lli[0].srcAddr; // 源地址(SPI0 DR)
  LPC_GPDMACH0->DMACCDestAddr = lli[0].destAddr;     // 目的地址
  LPC_GPDMACH0->DMACCControl = lli[0].control;      // 控制字
  LPC_GPDMACH0->DMACCConfig = (0x01 << 15) //中断错误
| (0x01 << 14) //终端计数中断
| (0x02 << 11)        // 传输类型:外设到内存
| (0x00 << 6)         //目的外设:存储器
                            | (0x01 << 1)          // 源外设:SSP0 RX(参考手册)
                            | (0x01 << 0); // 通道使能
 
GPDMAEnabe();
}
 
 
void DMA_IRQHandler(void)
{
if(LPC_GPDMA->DMACIntTCStat & 0x01) // 通道0传输完成
{
LPC_GPDMA->DMACIntTCClear = 0x01; // 清除标志
//SSPSlave_Init();
//   RUN_LAMP_GLITTER;
// LPC_SSP0->DMACR |= (1 << 0);
// LPC_GPDMACH0->DMACCConfig |= (0x01 << 0);
LPC_GPDMA->DMACConfig |= (1 << 0);//使能GPDMA
time++;
}
  if(LPC_GPDMA->DMACIntErrStat & 0x01) // 通道0错误
{
LPC_GPDMA->DMACIntErrClr = 0x01; // 清除标志
}
}
void  SSPSlave_Init(void)
{
  LPC_SC->PCONP   |= (1 << 21);                                         /* 打开SSP电源                  */
/*****************************************************************
* 初始化SSP的通讯方式,设置数据长度为8bit,帧格式为SPI,SCK 为低有效,
* 数据在SCK 的第二个时钟沿采样,设置位速率。 
******************************************************************/
  LPC_SSP0->CR0  = (0x00 << |                                       /* SCR  设置SPI位速率           */
                   (0x01 << 7) |                                       /* CPHA 时钟输出相位            */
                   (0x00 << 6) |                                       /* CPOL 时钟输出极性            */
                   (0x00 << 4) |                                       /* FRF  帧格式 00=SPI,01=SSI,  */
                                                                       /* 10=Microwire,11=保留        */
                   (0x07 << 0);                                        /* DSS  数据长度,0000-0010=保留 */
                                                                        /* 0011=4位,0111=8位,1111=16位*/
LPC_SSP0->CPSR = 2; /* 时钟分频寄存器*/
 
LPC_SSP0->CR1  = (0x00 << 3) |                                      /* SOD  从机输出禁能,0=允许    */
                   (0x01 << 2) |                                      /* MS   主从选择,1=从机        */
                   (0x01 << 1) |                                      /* SSE  SSP使能,1=使能 */
                   (0x00 << 0);                                       /* LBM  回写模式                */
 
sysTimeDlay(5);
LPC_SSP0->DMACR |= (1 << 0);
 
}
标签 (1)
0 项奖励
回复
1 回复

850 次查看
Harry_Zhang
NXP Employee
NXP Employee

Hi @Lee_Lee 

I think DMA is' reading empty SSP FIFO ', but due to an incorrect access width, data has not been written correctly into memory.

What are you currently configuring

(0x00<<18)//源数据宽度
(0x00<<21)//目的数据宽度
But in LPC:

The DR register of SSP is a 16 bit register

Harry_Zhang_0-1765963833177.png

 

Even if you are using 8-bit SPI mode, DMA access to SSP0->DR must still be 16 bit access.

DMA did not actually write data correctly into memory
The result is that BUF remains unchanged.

So i think you can try to change the source and des width to 16.

BR

Harry

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2261516%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ELPC1768%2BSSP0%2BGPDMA%20%E7%9A%84%E4%B8%80%E4%BA%9B%E9%97%AE%E9%A2%98%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2261516%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9C%A8%20SSP0%20%E4%B8%AD%E6%89%93%E5%BC%80%20DMACR%20%E5%B9%B6%E5%B0%86%E4%B8%80%E4%BA%9B%E6%95%B0%E6%8D%AE%E4%BC%A0%E8%BE%93%E5%88%B0%20BUF%20%E4%B9%8B%E5%90%8E%EF%BC%8CDMACR%20%E8%A2%AB%20RESET%20%E4%B8%BA%E9%9B%B6%EF%BC%8CSSP0DR%20%E4%B8%80%E7%9B%B4%E5%9C%A8%E5%8F%98%E5%8C%96%EF%BC%8C%E4%BD%86%E6%98%AF%20BUF%20%E6%95%B0%E6%8D%AE%E4%BF%9D%E6%8C%81%E4%B8%8D%E5%8F%98%E3%80%82%E5%9C%A8%E4%B8%AD%E6%96%AD%E6%9C%9F%E9%97%B4%E6%88%91%E8%BF%98%E5%B0%9D%E8%AF%95%E9%87%8D%E6%96%B0%E6%89%93%E5%BC%80%20DMACR%EF%BC%8C%E4%BD%86%E6%98%AF%20BUF%20%E6%95%B0%E6%8D%AE%E4%BB%8D%E7%84%B6%E6%B2%A1%E6%9C%89%E5%8F%98%E5%8C%96%E3%80%82%3CBR%20%2F%3E%E4%BB%A5%E4%B8%8B%E6%98%AF%E4%BB%A3%E7%A0%81%E9%85%8D%E7%BD%AE%EF%BC%9A%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%23define%20SPI_RX_LEN%205386%3C%2FP%3E%3CP%3Eextern%20U8%20SPIRXBUF%5BSPI_RX_LEN%5D%EF%BC%9B%3C%2FP%3E%3CDIV%3Evoid%20DMAInit_SPI_RX(U8%20*destAddr%2C%20U32%20len)%3C%2FDIV%3E%3CDIV%3E%7B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3EU32%20part1%20%3D%20(len%26gt%3B%204095)%20%3F4095%20%3A%20len%EF%BC%9B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%20%20U32%20part2%20%3D%20(len%26gt%3B%204095)%20%3F(len%20-%204095)%20%3A%200%3B%2F%2F%20%E6%8B%86%E5%88%86%E4%BC%A0%E8%BE%93%EF%BC%88%E5%8D%95%E9%80%9A%E9%81%93%E6%9C%80%E5%A4%A7%204095%E5%AD%97%E8%8A%82%EF%BC%89%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%20%20lpc_sc-%26gt%3Bpconp%20%7C%3D%20(1%26lt%3B%26lt%3B%2029)%3B%20%2F%2F%20%E4%BD%BF%E8%83%BDgpdma%E6%97%B6%E9%92%9F%3C%2FDIV%3E%3CDIV%3E%20%20LPC_GPDMA-%26gt%3BDMACConfig%20%7C%3D%20(1%26lt%3B%26lt%3B%200)%3B%2F%2F%E4%BD%BF%E8%83%BD%20GPDMA%3C%2FDIV%3E%3CDIV%3E%20%20LPC_GPDMA-%26gt%3BDMACIntTCClear%20%7C%3D%200x01%3B%20%2F%2F%20%E6%B8%85%E9%99%A4%E9%80%9A%E9%81%930%E4%BC%A0%E8%BE%93%E5%AE%8C%E6%88%90%E6%A0%87%E5%BF%97%3C%2FDIV%3E%3CDIV%3E%20%20LPC_GPDMA-%26gt%3BDMACIntErrClr%20%7C%3D%200x01%3B%20%2F%2F%20%E6%B8%85%E9%99%A4%E9%80%9A%E9%81%930%E9%94%99%E8%AF%AF%E6%A0%87%E5%BF%97%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%2F%2F%20%E9%93%BE%E8%A1%A8%E9%A1%B91%EF%BC%9A%E4%BC%A0%E8%BE%93part1%E5%AD%97%E8%8A%82%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%20%20lli%5B0%5D.srcAddr%3D%20(u32)%26amp%3Blpc_ssp0-%26gt%3Bdr%3B%20%2F%2F%20%E6%BA%90%EF%BC%9Aspi0%20%E6%95%B0%E6%8D%AE%E5%AF%84%E5%AD%98%E5%99%A8%3C%2FDIV%3E%3CDIV%3E%20%20lli%5B0%5D.destAddr%3D%20(U32)destAddr%3B%20%2F%2F%20%E7%9B%AE%E7%9A%84%EF%BC%9A%E7%BC%93%E5%86%B2%E5%8C%BA%E8%B5%B7%E5%A7%8B%3C%2FDIV%3E%3CDIV%3E%20%20lli%5B0%5D.control%3D%20(part1%26amp%3B%200x0FFF)%20%2F%2F%20%E4%BC%A0%E8%BE%93%E5%A4%A7%E5%B0%8F%EF%BC%88%E5%AD%97%E8%8A%82%E6%95%B0%EF%BC%89%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%20(0x00%26lt%3B%26lt%3B%2012)%20%2F%2F%20%E6%BA%90%E7%AA%81%E5%8F%91%E5%A4%A7%E5%B0%8F%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%20(0x00%26lt%3B%26lt%3B%2015)%20%2F%2F%20%E7%9B%AE%E7%9A%84%E5%8F%91%E5%A4%A7%E5%B0%8F%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%20(0x00%26lt%3B%26lt%3B%2018)%20%2F%2F%E6%BA%90%E6%95%B0%E6%8D%AE%E5%AE%BD%E5%BA%A6%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%20(0x00%26lt%3B%26lt%3B%2021)%20%2F%2F%E7%9B%AE%E7%9A%84%E6%95%B0%E6%8D%AE%E5%AE%BD%E5%BA%A6%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%20(0x00%26lt%3B%26lt%3B%2026)%20%2F%2F%E6%BA%90%E5%9C%B0%E5%9D%80%E4%B8%8D%E5%8F%98%EF%BC%88%E5%A4%96%E8%AE%BE%E5%AF%84%E5%AD%98%E5%99%A8%EF%BC%89%E3%80%82%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%20(0x01%26lt%3B%26lt%3B%2027)%20%2F%2F%E7%9B%AE%E7%9A%84%E5%9C%B0%E5%9D%80%E8%87%AA%E5%A2%9E%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%20(1u%26lt%3B%26lt%3B%2031)%3B%20%2F%2F%20%E4%BD%BF%E8%83%BD%E4%B8%AD%E6%96%AD%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%2F%2F%20%E9%93%BE%E8%A1%A8%E9%A1%B92%EF%BC%9A%E4%BC%A0%E8%BE%93part2%E5%AD%97%E8%8A%82%EF%BC%88%E8%8B%A5%E9%9C%80%E8%A6%81%EF%BC%89%3C%2FDIV%3E%3CDIV%3E%20%20if%20(part2%26gt%3B%200)%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Elli%5B0%5D.nextLLI%20%3D%20(U32)%26amp%3Blli%5B1%5D%3B%20%2F%2F%20%E6%8C%87%E5%90%91%E9%93%BE%E8%A1%A8%E9%A1%B92%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20lli%5B1%5D.srcAddr%3D%20(u32)%26amp%3Blpc_ssp0-%26gt%3Bdr%EF%BC%9B%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20lli%5B1%5D.destAddr%3D%20(U32)(destAddr%20%2B%20part1)%3B%20%2F%2F%20%E7%BC%93%E5%86%B2%E5%8C%BA%E5%81%8F%E7%A7%BB%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20lli%5B1%5D.control%3D%20(part2%26amp%3B%200x0FFF)%20%2F%2F%20%E4%BC%A0%E8%BE%93%E5%A4%A7%E5%B0%8F%EF%BC%88%E5%AD%97%E8%8A%82%E6%95%B0%EF%BC%89%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%20(0x00%26lt%3B%26lt%3B%2012)%20%2F%2F%20%E6%BA%90%E7%AA%81%E5%8F%91%E5%A4%A7%E5%B0%8F%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%20(0x00%26lt%3B%26lt%3B%2015)%20%2F%2F%20%E7%9B%AE%E7%9A%84%E5%8F%91%E5%A4%A7%E5%B0%8F%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%20(0x00%26lt%3B%26lt%3B%2018)%20%2F%2F%E6%BA%90%E6%95%B0%E6%8D%AE%E5%AE%BD%E5%BA%A6%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%20(0x00%26lt%3B%26lt%3B%2021)%20%2F%2F%E7%9B%AE%E7%9A%84%E6%95%B0%E6%8D%AE%E5%AE%BD%E5%BA%A6%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%20(0x00%26lt%3B%26lt%3B%2026)%20%2F%2F%E6%BA%90%E5%9C%B0%E5%9D%80%E4%B8%8D%E5%8F%98%EF%BC%88%E5%A4%96%E8%AE%BE%E5%AF%84%E5%AD%98%E5%99%A8%EF%BC%89%E3%80%82%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%20(0x01%26lt%3B%26lt%3B%2027)%20%2F%2F%E7%9B%AE%E7%9A%84%E5%9C%B0%E5%9D%80%E8%87%AA%E5%A2%9E%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%20(1u%26lt%3B%26lt%3B%2031)%3B%20%2F%2F%20%E4%BD%BF%E8%83%BD%E4%B8%AD%E6%96%AD%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20lli%5B1%5D.nextLLI%3D%200%3B%20%2F%2F%20%E7%BB%93%E6%9D%9F%E9%93%BE%E8%A1%A8%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%7D%20%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Eelse%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Elli%5B0%5D.nextLLI%20%3D%200%EF%BC%9B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%2F%2F%20%E9%85%8D%E7%BD%AE%20DMA%20%E9%80%9A%E9%81%93%200%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3ELPC_GPDMACH0-%26gt%3BDMACCConfig%20%3D%200%EF%BC%9B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%20%20LPC_GPDMACH0-%26gt%3BDMACCLLI%20%3D%20(U32)%26amp%3Blli%5B0%5D%3B%20%2F%2F%20%E9%93%BE%E8%A1%A8%E8%B5%B7%E5%A7%8B%E5%9C%B0%E5%9D%80%3C%2FDIV%3E%3CDIV%3E%20%20LPC_GPDMACH0-%26gt%3BDMACCSrcAddr%20%3D%20lli%5B0%5D.srcAddr%EF%BC%9B%2F%2F%20%E6%BA%90%E5%9C%B0%E5%9D%80%EF%BC%88spi0%20dr)%3C%2FDIV%3E%3CDIV%3E%20%20LPC_GPDMACH0-%26gt%3BDMACCDestAddr%20%3D%20lli%5B0%5D.destAddr%EF%BC%9B%20%20%20%20%20%2F%2F%20%E7%9B%AE%E7%9A%84%E5%9C%B0%E5%9D%80%3C%2FDIV%3E%3CDIV%3E%20%20LPC_GPDMACH0-%26gt%3BDMACCControl%20%3D%20lli%5B0%5D.control%EF%BC%9B%20%20%20%20%20%2F%2F%20%E6%8E%A7%E5%88%B6%E5%AD%97%3C%2FDIV%3E%3CDIV%3E%20%20LPC_GPDMACH0-%26gt%3BDMACCConfig%20%3D%20(0x01%26lt%3B%26lt%3B%2015)%20%2F%2F%E4%B8%AD%E6%96%AD%E9%94%99%E8%AF%AF%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%7C%20(0x01%26lt%3B%26lt%3B%2014)%20%2F%2F%E7%BB%88%E7%AB%AF%E8%AE%A1%E6%95%B0%E4%B8%AD%E6%96%AD%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%7C%20(0x02%26lt%3B%26lt%3B%2011)%20%2F%2F%20%E4%BC%A0%E8%BE%93%E7%B1%BB%E5%9E%8B%EF%BC%9A%E5%A4%96%E8%AE%BE%E5%88%B0%E5%86%85%E5%AD%98%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%7C%20(0x00%26lt%3B%26lt%3B%206)%20%2F%2F%E7%9B%AE%E7%9A%84%E5%A4%96%E8%AE%BE%EF%BC%9A%E5%AD%98%E5%82%A8%E5%99%A8%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%20(0x01%26lt%3B%26lt%3B%201)%20%2F%2F%20%E6%BA%90%E5%A4%96%E8%AE%BE%EF%BC%9ASSP0%20RX%EF%BC%88%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C%EF%BC%89%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%20(0x01%26lt%3B%26lt%3B%200)%3B%20%2F%2F%20%E9%80%9A%E9%81%93%E4%BD%BF%E8%83%BD%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3EGPDMAEnabe()%EF%BC%9B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%7D%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3Evoid%20DMA_IRQHandler(void)%3C%2FDIV%3E%3CDIV%3E%7B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Eif(LPC_GPDMA-%26gt%3BDMACIntTCStat%26amp%3B%200x01)%20%2F%2F%20%E9%80%9A%E9%81%930%E4%BC%A0%E8%BE%93%E5%AE%8C%E6%88%90%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3ELPC_GPDMA-%26gt%3BDMACIntTCClear%20%3D%200x01%3B%20%2F%2F%20%E6%B8%85%E9%99%A4%E6%A0%87%E5%BF%97%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%2F%2FSSPSlave_Init()%EF%BC%9B%3C%2FDIV%3E%3CDIV%3E%2F%2F%20run_lamp_glitter%EF%BC%9B%3C%2FDIV%3E%3CDIV%3E%2F%2F%20lpc_ssp0-%26gt%3Bdmacr%20%7C%3D%20(1%26lt%3B%26lt%3B%200)%EF%BC%9B%3C%2FDIV%3E%3CDIV%3E%2F%2F%20LPC_GPDMACH0-%26gt%3BDMACCConfig%20%7C%3D%20(0x01%26lt%3B%26lt%3B%200)%EF%BC%9B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3ELPC_GPDMA-%26gt%3BDMACConfig%20%7C%3D%20(1%26lt%3B%26lt%3B%200)%3B%2F%2F%E4%BD%BF%E8%83%BD%20GPDMA%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%E6%97%B6%E9%97%B4%2B%2B%EF%BC%9B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%20%20if(LPC_GPDMA-%26gt%3BDMACIntErrStat%26amp%3B%200x01)%20%2F%2F%20%E9%80%9A%E9%81%930%E9%94%99%E8%AF%AF%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%7B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3ELPC_GPDMA-%26gt%3BDMACIntErrClr%20%3D%200x01%3B%20%2F%2F%20%E6%B8%85%E9%99%A4%E6%A0%87%E5%BF%97%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%7D%3CBR%20%2F%3E%3CDIV%3Evoid%20SSPSlave_Init(void)%3C%2FDIV%3E%3CDIV%3E%7B%3C%2FDIV%3E%3CDIV%3E%20%20lpc_sc-%26gt%3Bpconp%20%7C%3D%20(1%26lt%3B%26lt%3B%2021)%3B%20%2F*%20%E6%89%93%E5%BC%80%20ssp%20%E7%94%B5%E6%BA%90%20*%2F%3C%2FDIV%3E%3CDIV%3E%2F*****************************************************************%3C%2FDIV%3E%3CDIV%3E*%20%E5%88%9D%E5%A7%8B%E5%8C%96%20SSP%20%E7%9A%84%E9%80%9A%E8%AE%AF%E6%96%B9%E5%BC%8F%2C%E8%AE%BE%E7%BD%AE%E6%95%B0%E6%8D%AE%E9%95%BF%E5%BA%A6%E4%B8%BA%208bit%2C%E5%B8%A7%E6%A0%BC%E5%BC%8F%E4%B8%BA%20SPI%2CSCK%20%E4%B8%BA%E4%BD%8E%E6%9C%89%E6%95%88%E3%80%81%3C%2FDIV%3E%3CDIV%3E*%20%E6%95%B0%E6%8D%AE%E5%9C%A8sck%20%E7%9A%84%E7%AC%AC%E4%BA%8C%E4%B8%AA%E6%97%B6%E9%92%9F%E6%B2%BF%E9%87%87%E6%A0%B7%2C%E8%AE%BE%E7%BD%AE%E4%BD%8D%E9%80%9F%E7%8E%87%E3%80%82%20%3C%2FDIV%3E%3CDIV%3E******************************************************************%2F%3C%2FDIV%3E%3CDIV%3E%20%20LPC_SSP0-%26gt%3BCR0%20%3D%20(0x00)%26lt%3B%26lt%3B%20%3CLI-EMOJI%20id%3D%22lia_smiling-face-with-sunglasses%22%20title%3D%22%3Asmiling_face_with_sunglasses%3A%22%3E%3C%2FLI-EMOJI%3E%20%7C%20%2F*%20%E8%AE%BE%E7%BD%AEspi%E4%BD%8D%E9%80%9F%E7%8E%87*%2F%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20(0x01%26lt%3B%26lt%3B%207)%20%7C%20%2F*%20CPHA%20%E6%97%B6%E9%92%9F%E8%BE%93%E5%87%BA%E7%9B%B8%E4%BD%8D%20*%2F%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20(0x00%26lt%3B%26lt%3B%206)%20%7C%20%2F*%20CPOL%20%E6%97%B6%E9%92%9F%E8%BE%93%E5%87%BA%E6%9E%81%E6%80%A7%20*%2F%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20(0x00%26lt%3B%26lt%3B%204)%20%7C%20%2F*%20FRF%20%E5%B8%A7%E6%A0%BC%E5%BC%8F%2000%3DSPI%EF%BC%8C01%3DSSI%2C%20*%2F%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F*%2010%3DMicrowire%EF%BC%8C11%3D%E4%BF%9D%E7%95%99%20*%2F%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20(0x07%26lt%3B%26lt%3B%200)%3B%20%2F*%20DSS%20%E6%95%B0%E6%8D%AE%E9%95%BF%E5%BA%A6%2C0000-0010%3D%E4%BF%9D%E7%95%99%20*%2F%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F*%200011%3D4%E4%BD%8D%EF%BC%8C0111%3D8%E4%BD%8D%EF%BC%8C1111%3D16%E4%BD%8D*%2F%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Elpc_ssp0-%26gt%3Bcpsr%20%3D%202%3B%20%2F*%20%E6%97%B6%E9%92%9F%E5%88%86%E9%A2%91%E5%AF%84%E5%AD%98%E5%99%A8*%2F%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3ELPC_SSP0-%26gt%3BCR1%20%3D%20(0x00%26lt%3B%26lt%3B%203)%20%7C%20%2F*%20SOD%20%E4%BB%8E%E6%9C%BA%E8%BE%93%E5%87%BA%E7%A6%81%E8%83%BD%EF%BC%8C0%3D%E5%85%81%E8%AE%B8%20*%2F%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20(0x01%26lt%3B%26lt%3B%202)%20%7C%20%2F*%20MS%20%E4%B8%BB%E4%BB%8E%E9%80%89%E6%8B%A9%EF%BC%8C1%3D%E4%BB%8E%E6%9C%BA%20*%2F%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20(0x01%26lt%3B%26lt%3B%201)%20%7C%20%2F*%20SSE%20SSP%E4%BD%BF%E8%83%BD%EF%BC%8C1%3D%E4%BD%BF%E8%83%BD%20*%2F%3C%2FDIV%3E%3CDIV%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20(0x00%26lt%3B%26lt%3B%200)%3B%20%2F*%20LBM%20%E5%9B%9E%E5%86%99%E6%A8%A1%E5%BC%8F%20*%2F%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3EsysTimeDlay(5)%EF%BC%9B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Elpc_ssp0-%26gt%3Bdmacr%20%7C%3D%20(1%26lt%3B%26lt%3B%200)%EF%BC%9B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%7D%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2261516%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3ELPC17xx%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2264665%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20LPC1768%2BSSP0%2BGPDMA%20some%20problem%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2264665%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F257968%22%20target%3D%22_blank%22%3E%40Lee_Lee%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%E6%88%91%E8%AE%A4%E4%B8%BA%20DMA%20%E6%AD%A3%E5%9C%A8%20%22%E8%AF%BB%E5%8F%96%E7%A9%BA%E7%9A%84%20SSP%20FIFO%22%EF%BC%8C%E4%BD%86%E7%94%B1%E4%BA%8E%E8%AE%BF%E9%97%AE%E5%AE%BD%E5%BA%A6%E4%B8%8D%E6%AD%A3%E7%A1%AE%EF%BC%8C%E6%95%B0%E6%8D%AE%E6%B2%A1%E6%9C%89%E6%AD%A3%E7%A1%AE%E5%86%99%E5%85%A5%E5%86%85%E5%AD%98%E3%80%82%3C%2FP%3E%0A%3CP%3E%E6%82%A8%E7%9B%AE%E5%89%8D%E7%9A%84%E9%85%8D%E7%BD%AE%E6%98%AF%3C%2FP%3E%0A%3CP%3E(0x00%26lt%3B%26lt%3B%2018)%2F%2F%3CSPAN%3E%20%E6%BA%90%E6%95%B0%E6%8D%AE%E5%AE%BD%E5%BA%A6(0x00%26lt%3B%26lt%3B%3C%2FSPAN%3E%3CBR%20%2F%3E%2021)%2F%2F%3CSPAN%3E%20%E7%9B%AE%E7%9A%84%E6%95%B0%E6%8D%AE%E5%AE%BD%E5%BA%A6%3C%2FSPAN%3E%3CBR%20%2F%3E%20%E4%BD%86%E5%9C%A8%20LPC%20%E4%B8%AD%EF%BC%9A%3C%2FP%3E%0A%3CP%3ESSP%20%E7%9A%84%20DR%20%E5%AF%84%E5%AD%98%E5%99%A8%E6%98%AF%E4%B8%80%E4%B8%AA%2016%20%E4%BD%8D%E5%AF%84%E5%AD%98%E5%99%A8%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Harry_Zhang_0-1765963833177.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Harry_Zhang_0-1765963833177.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F370400i16B1A49DD3D19B21%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Harry_Zhang_0-1765963833177.png%22%20alt%3D%22Harry_Zhang_0-1765963833177.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E5%8D%B3%E4%BD%BF%E4%BD%BF%E7%94%A8%208%20%E4%BD%8D%20SPI%20%E6%A8%A1%E5%BC%8F%EF%BC%8C%E5%AF%B9%20SSP0-%26gt%3BDR%20%E7%9A%84%20DMA%20%E8%AE%BF%E9%97%AE%E4%BB%8D%E5%BF%85%E9%A1%BB%E6%98%AF%2016%20%E4%BD%8D%E8%AE%BF%E9%97%AE%E3%80%82%3C%2FP%3E%0A%3CP%3EDMA%20%E5%AE%9E%E9%99%85%E4%B8%8A%E6%B2%A1%E6%9C%89%E5%B0%86%E6%95%B0%E6%8D%AE%E6%AD%A3%E7%A1%AE%E5%86%99%E5%85%A5%E5%86%85%E5%AD%98%3CBR%20%2F%3E%E7%BB%93%E6%9E%9C%E6%98%AF%20BUF%20%E4%BF%9D%E6%8C%81%E4%B8%8D%E5%8F%98%E3%80%82%3C%2FP%3E%0A%3CP%3E%E5%9B%A0%E6%AD%A4%EF%BC%8C%E6%88%91%E8%AE%A4%E4%B8%BA%E6%82%A8%E5%8F%AF%E4%BB%A5%E5%B0%9D%E8%AF%95%E5%B0%86%E6%BA%90%E4%BB%A3%E7%A0%81%E5%92%8C%20des%20%E5%AE%BD%E5%BA%A6%E6%94%B9%E4%B8%BA%2016%E3%80%82%3C%2FP%3E%0A%3CP%3EBR%3C%2FP%3E%0A%3CP%3E%E5%93%88%E5%88%A9%3C%2FP%3E%3C%2FLINGO-BODY%3E