我正在将 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/