RA4M2 IO操作损坏单片机

瑞萨技术支持工程师,你们好,目前在使用过程中有个问题请教一下,下图是所使用芯片RA4M2AB3(48PIN)的IO口,误操作了P003和P004的寄存器位,导致单片机损坏了,不知道原因为何,P0口没有外引的端口寄存器位不能操作?有遇到过的来交流一下。

  • 请问您做了怎样的操作?

    MCU的损坏通常来说,应该是由于操作所引起的过压或过流造成的

  • 查明是后级的驱动的问题导致了单片机损坏。

    现在有了另外一个问题DMA+SCI的发送数据的问题:在发送函数中,进行地址和长度重置,

    R_DMAC_Reset(&g_transfer2_sci4_tx_ctrl,(void*)uiSendBuffer_Addr,(void*)&R_SCI4->TDR,usSendLen);

    SEND_ENABLE; //使能发送
    R_BSP_SoftwareDelay(1,BSP_DELAY_UNITS_MILLISECONDS);

    /* 手动触发传输数据寄存器空中断*/
    R_SCI4->SCR_b.TE = 0;
    R_SCI4->SCR |= (0xA0);

    串口助手进行测试时,发现只有第一次的DMA发送数据是正确的,后面的帧数据都是少了第一个字节“27”,试了很多办法,都没有找到原因。看了传入DMA的地址和长度都是对的。请帮忙分析一下。

    [11:48:05.335]发→◇27 03 00 00 00 0A C2 CB □
    [11:48:05.392]收←◆27 03 14 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 00 00 3F 80 C2 B4
    [11:48:06.587]发→◇27 03 00 00 00 0A C2 CB □
    [11:48:06.644]收←◆03 14 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 00 00 3F 80 C2 B4
    [11:48:07.892]发→◇27 03 00 00 00 0A C2 CB □
    [11:48:07.948]收←◆03 14 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 00 00 3F 80 C2 B4
    [11:48:08.965]发→◇27 03 00 00 00 0A C2 CB □
    [11:48:09.023]收←◆03 14 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 00 00 3F 80 C2 B4

  • 损坏的问题已经查明原因确实是后级的驱动导致的,

    现在有了新的问题,串口+DAM发送数据的问题:

    R_DMAC_Reset(&g_transfer2_sci4_tx_ctrl,(void*)uiSendBuffer_Addr,(void*)&R_SCI4->TDR,usSendLen);

    SEND_ENABLE; //使能发送
    R_BSP_SoftwareDelay(1,BSP_DELAY_UNITS_MILLISECONDS);
    /* Enable the DTC to handle incoming transfer requests. */

    WDT_Clear();
    //err = R_DMAC_SoftwareStart(&g_transfer2_sci4_tx_ctrl, TRANSFER_START_MODE_SINGLE);
    /* 手动触发传输数据寄存器空中断*/
    R_SCI4->SCR_b.TE = 0;
    R_SCI4->SCR |= (0xA0);

    只有第一帧数据发送是正常的,后面的帧都少了第一个字节“27”的数据,这个原因是什么呢,暂时试了很多没有找到原因是什么,请给予支持。

    [11:48:05.335]发→◇27 03 00 00 00 0A C2 CB □
    [11:48:05.392]收←◆27 03 14 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 00 00 3F 80 C2 B4
    [11:48:06.587]发→◇27 03 00 00 00 0A C2 CB □
    [11:48:06.644]收←◆03 14 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 00 00 3F 80 C2 B4
    [11:48:07.892]发→◇27 03 00 00 00 0A C2 CB □
    [11:48:07.948]收←◆03 14 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 00 00 3F 80 C2 B4
    [11:48:08.965]发→◇27 03 00 00 00 0A C2 CB □
    [11:48:09.023]收←◆03 14 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF 00 00 3F 80 C2 B4

  • 已查明原因是因为负载太重导致。

  • 目前遇到了SCI+dma发送数据第一次正常,后面再发就会丢失第一个字节的数据,配置如下:

    串口助手发送和收到数据对比

    请给予原因分析和支持。

  • 补充串口dma的配置代码:

  • 您使用分析仪抓抓波形,是否确认SCI发送时第一字节丢失了

  • 再就是设个断点看看,第二次发27时,是否出发的DMA