DM8148的控制台串口如何从uart0改成uart2?

DM8148的控制台串口如何从uart0改成uart2?

此问题已被解答
All Replies
  • 秀才271分

    ipnc-rdk的控制台串口默认为uart0,现在想改成uart2,分析应该需要在uboot中做相应修改。

    尝试了一下,在uboot的ipnc\Source\ti_tools\ipnc_psp_arago\u-boot\include\configs的ti8148_ipnc.h和ti8148_ipnc_quick_mmc.h中增加CONFIG_SYS_NS16550_COM3的定义

    #define CONFIG_SYS_NS16550_COM1        0x48020000    /* Base EVM has UART0 */

    #define CONFIG_SYS_NS16550_COM2        0x48022000

    #define CONFIG_SYS_NS16550_COM3        0x48024000  /*增加uart2的地址定义*/

    并对串口选择做出如下修改

    /*
     * select serial console configuration
     */
    /*#define CONFIG_SERIAL1            1
    #define CONFIG_CONS_INDEX        1*/

    #define CONFIG_SERIAL1            3        /*改成uart2*/
    #define CONFIG_CONS_INDEX        3   /*改成uart2*/
    #define CONFIG_SYS_CONSOLE_INFO_QUIET

    但是,修改完以后,连上终端,uart2还是没有打印信息输出。

    请问专家,是不是还有别的什么地方需要修改?谢谢!

  • 状元17262分

    你好;

            /etc/inittab 有修改吗?

           uboot 、 内核 、 文件系统都需要修改

  • 秀才271分

    还没修改,只进行了uboot的修改,想法是先看到uboot的启动信息,然后再去修改内核和文件系统。

    但是,目前uboot的启动信息没有打印出来,所以后续的修改也没有展开。

  • 状元17262分

    有先配置GPIO复用模式为 UART 模式吗?

  • 秀才271分

    没有啊,请问如何配置GPIO复用模式为 UART 模式?另外,之前用uart0输出是可以打印信息的

  • 状元17262分

    你好;

            uart 0  没有 IO 复用,可以直接用;

            uart 2 是IO复用的;

            在 uboot 中配置: DVRRDK_04.01.00.02/ti_tools/linux_lsp/uboot/u-boot-dvr-rdk/board/ti/ti8148/mux.h

            配置这个文件就可以;

  • 秀才271分

    好的,谢谢!我试试看!

  • 秀才271分

    您好,我在ipnc/Source/ti_tools/ipnc_psp_arago/u-boot/board/ti/ti8148_ipnc中对mux.h文件进行修改:

    /* -56 */       BIT(0), BIT(0), BIT(0), BIT(0),
    /* -60 */       BIT(0), BIT(0), BIT(0), BIT(0),

    /* -56 */       BIT(0), BIT(0), BIT(0), BIT(3),
    /* -60 */       BIT(0), BIT(3), BIT(0), BIT(0),

    依据是uart2_TXD和uart2_RXD接的分别是U3和U4,而根据DM8148的管脚复用表

    重新编译uboot后运行,uart2还是没有输出!用示波器去测试uart2的TXD和RXD管脚,RXD的闲置状态为高电平,TXD的闲置状态为低电平,可以判断至少uart2的TXD管脚没有配置对。

    请问到底是是管脚复用没有修改对,还是uboot还有什么其他需要修改的地方呢?

    十分感谢您的解答!

  • 秀才271分

    重发管脚复用的表格

  • 秀才271分

    找到原因了,应该是改成

    /* 60 */     BIT(0), BIT(0), BIT(3), BIT(0),

    /* 64 */     BIT(3), BIT(0), BIT(0), BIT(0),

    因为前面引脚的编号是每行的结束编号,不是起始编号。

    谢谢!