Sparkfun SC16IS750不适用于Raspberry Pi

JZY*_*ZYL 5 c embedded spi raspberry-pi 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);
Run Code Online (Sandbox Code Playgroud)

rx [0]和rx [1]返回0xff.我试图读取哪个寄存器无关紧要,结果是一样的.

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

关于我接下来应该尝试什么的任何想法?

JZY*_*ZYL 1

事实证明问题出在时钟分频器上。将 SPI 时钟分频器设置为 256 及以上

bcm2835_spi_setClockDivider(BCM2835_SPI_CLOCK_DIVIDER_256)
Run Code Online (Sandbox Code Playgroud)

解决了问题。