c - Sparkfun SC16IS750 不适用于 Raspberry Pi

标签 c embedded raspberry-pi spi raspberry-pi2

我正在将 SC16IS750 spi-2-uart 桥连接到 Raspberry Pi 2,以增加 uart 端口的数量。该产品是 Sparkfun ( https://www.sparkfun.com/products/9981 ) 制造的分线板,使用 SC16IS750 芯片 ( http://www.nxp.com/documents/data_sheet/SC16IS740_750_760.pdf )。我使用 Mike McCauley 的 BCM2835 库来访问 SPI。

问题是,无论我尝试读取哪个寄存器,我总是返回 0xff。例如,

uint8_t tx[2];
tx[0] = 0x07 << 3 | 0x80;  // SPR register
tx[1] = 0x00;
uint8_t rx[2] = {0x00, 0x00};

// perform duplex write operation
bcm2835_spi_transfernb(tx, rx, 2);

rx[0] 和 rx[1] 返回 0xff。无论我尝试读取哪个寄存器,结果都是一样的。

分线板已将复位引脚接地。我将 CS 引脚连接到 SSEL1,CLK 连接到 GPIO11,SI 连接到 GPIO10,SO 连接到 GPIO9,SPI/I2C 接地。我尝试了另一个芯片,同样的 react 。 SPI 工作正常,因为我也成功地将它与另一个外设一起使用。

知道我接下来应该尝试什么吗?

最佳答案

原来问题出在时钟分频器上。设置SPI时钟分频为256及以上

bcm2835_spi_setClockDivider(BCM2835_SPI_CLOCK_DIVIDER_256)

解决了问题。

关于c - Sparkfun SC16IS750 不适用于 Raspberry Pi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30698644/

相关文章:

email - 树莓派 gmail 登录被谷歌阻止

c - 带链表的快速排序

c - Apache C 模块如何向客户端发送响应

python - Python 中的 C 指针算法

c - newlibc stub 应该如何包含/链接到代码中

c - 当我尝试使用 "%lu"而不是 32 位嵌入式平台上的数字打印 u64 变量时,为什么会得到 "%llu"?

python - 树莓派上的Python线程问题

在C中调用函数指针时出现编译错误

c - 我如何通过网络代理 mmap 读取和写入?

python - Raspberry Pi Google 助理问题