初始问题

初始问题

初始问题

我使用 NXP 芯片 SC16IS740 作为嵌入式 Linux 系统(主线内核 v4.8)的外围设备。用例非常简单,应通过芯片的驱动程序读取连续传输的 uart 线(9600 8n1)。

到目前为止,我sc16is7xx在内核构建中包含了驱动程序模块,并且我能够将设备视为/dev/ttySC0.

但是,我现在无法读取串口,我怀疑我缺少正确的配置。我已经简单地尝试过了

cat /dev/ttySC0

minicom -D /dev/ttySC0 -b 9600 -8

由于设备目录(/sys/class/tty/ttySC0/)中只有只读文件,并且我没有找到任何有关如何使用驱动程序的文档,所以我已经没有想法了。

配置该驱动程序的正确方法是什么?


编辑:配置、日志和测量

配置

我将该模块包含在内核配方配置中,如下所示:

CONFIG_SERIAL_SC16IS7XX_CORE=m
CONFIG_SERIAL_SC16IS7XX=m
CONFIG_SERIAL_SC16IS7XX_I2C=y

要加载/卸载模块(这会导致加载/卸载设备/dev/ttySC0),我使用:

modprobe [-r] sc16is7xx

日志

查找此类消息中的结果dmesgsc16is7

[ 5592.212905] [<c0379a14>] (uart_get_baud_rate) from [<bf07cf84>] (sc16is7xx_set_termios+0x1c4/0x374 [sc16is7xx])
[ 5592.213045] [<bf07cdc0>] (sc16is7xx_set_termios [sc16is7xx]) from [<c0379f04>] (uart_change_speed+0x5c/0x124)

每次我执行以下操作时,都会准确记录这两条消息:

  • /dev/ttySC0使用minicom或打开或关闭连接cat
  • 更改波特率或其他串行端口设置minicom

测量

使用示波器进行测量(包括基本逻辑分析),当我执行以下操作时,我可以看到 I2C 线上与芯片的通信:

  • /dev/ttySC0打开或关闭与with 的连接minicom
  • 更改波特率或其他串行端口设置minicom

否则的话,线路上根本就没有任何交流。目前,我正在尝试分析发送的字节并使用数据表检查它们,即以某种方式调试驱动程序。

相关内容