2015-06-07 31 views
5

Łączę mostek sp16-uart SC16IS750 z Raspberry Pi 2 w celu zwiększenia liczby portów uart. Produkt jest tablicą typu breakout firmy Sparkfun (https://www.sparkfun.com/products/9981), wykorzystującą układ SC16IS750 (http://www.nxp.com/documents/data_sheet/SC16IS740_750_760.pdf). Używam biblioteki BCM2835 Mike'a McCauleya, aby uzyskać dostęp do SPI.Sparkfun SC16IS750 nie działa na Raspberry Pi

Problem polega na tym, że niezależnie od tego, który rejestr próbuję przeczytać, zawsze otrzymuję zwrot 0xff. Na przykład:

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] i rx [1] zwraca 0xff. Nie ma znaczenia, który rejestr próbuję przeczytać, wynik jest taki sam.

Płytka wyłamywcza jest już uziemiona. Łączę pin CS do SSEL1, CLK do GPIO11, SI do GPIO10, SO do GPIO9, a SPI/I2C do uziemienia. Próbowałem z innym chipem, taką samą odpowiedzią. SPI działa dobrze, ponieważ również z powodzeniem używam go z innym urządzeniem peryferyjnym.

Jakiś pomysł na to, co powinienem spróbować dalej?

Odpowiedz

0

Okazuje się, że problemem jest dzielnik zegara. Ustawienie rozdzielacza zegara SPI na 256 i nowszy

bcm2835_spi_setClockDivider(BCM2835_SPI_CLOCK_DIVIDER_256) 

rozwiązało problem.

Powiązane problemy