This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

UCD3138: 485通讯出现异常

Part Number: UCD3138

用UDC3138做的一个恒流数字电源,SCI做的485通信,通过485设置输出电流,当设置的电流设置在5以下时,电源工作正常,通讯也正常,但是当电流设置在5A时,485就不通讯了,而且后面也不会通讯;

我使用了一个定时10s不通讯就复位SCI功能,也不能恢复通讯,除非在电源停止工作时,复位功能才起作用,可以恢复通讯,但是根据电源工作要求,这个方式行不通,只能用来验证,是由于电流过大造成的通讯中断;

请教有什么方法可解决此问题,或者在SCI软件配置上有什么方法可以改善?

  • 你好,能看一下你使用sci做485通信的部分吗

  • 是硬件干扰问题

  • 电源功率小时就没问题,功率大一点就又不行了,代码是参考的例程,

    MiscAnalogRegs.IOMUX.bit.JTAG_DATA_MUX_SEL = 1;//配置TDO_Pin功能为SCI_TX-0; TDI_Pin功能为SCI_RX-0
    Uart0Regs.UARTCTRL3.bit.SW_RESET = 0x0;

    //-UART控制寄存器0配置UARTCTRL0 ---波特率57600,数据位8位,检验位无,停止位1位
    Uart0Regs.UARTCTRL0.bit.ADDR_MODE = 0;
    Uart0Regs.UARTCTRL0.bit.DATA_SIZE = 0x07;
    Uart0Regs.UARTCTRL0.bit.SYNC_MODE = 0x01;
    Uart0Regs.UARTCTRL0.bit.PARITY_ENA = 0x0;
    Uart0Regs.UARTCTRL0.bit.PARITY = 0x00;
    Uart0Regs.UARTCTRL0.bit.STOP = 0x0;

    Uart0Regs.UARTHBAUD.bit.BAUD_DIV_H = 0x0;
    Uart0Regs.UARTMBAUD.bit.BAUD_DIV_M = 0x0;
    Uart0Regs.UARTLBAUD.bit.BAUD_DIV_L = 0x21;

    Uart0Regs.UARTRXST.bit.RX_ENA = 0x01;
    Uart0Regs.UARTTXST.bit.TX_ENA = 0x01;

    //-UART中断状态寄存器UARTINTST(只读)
    Uart0Regs.UARTINTST.all = 0xff;
    Uart0Regs.UARTINTST.all = 0;

    rx_byte0 = Uart0Regs.UARTRXBUF.all; //清除RXRDY标识
    Uart0Regs.UARTIOCTRLTX.bit.IO_FUNC = 0x01;
    Uart0Regs.UARTIOCTRLRX.bit.IO_FUNC = 0x01;

    Uart0Regs.UARTCTRL3.bit.CLOCK = 0x01;
    Uart0Regs.UARTCTRL3.bit.SW_RESET = 0x01;
    Uart0Regs.UARTIOCTRLSCLK.bit.IO_FUNC = 0x0;
    Uart0Regs.UARTTXBUF.all = '\n'; //put out a byte to get things started.