Sparkfun SC16IS750不适用于Raspberry Pi

时间:2015-06-07 21:33:08

标签: 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连接到地。我尝试了另一种芯片,同样的反应。 SPI工作正常,因为我也成功地使用它与另一个外设。

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

1 个答案:

答案 0 :(得分:1)

原来问题是时钟分频器。将SPI时钟分频器设置为256以上

$.ajax({
    type: "GET",
    url: "https://api.imgur.com/3/album/Cfy6A/images",
    dataType: "text",
    beforeSend: function(xhr) {
        xhr.setRequestHeader('Authorization', 'Client-ID <client-id>');
    },
    success: function(data) {
        var json = $.parseJSON(data);
        console.log(json);
    }
});

解决了这个问题。