: , [ ].
6.6: , , . , , , "roll-over". , , 0 .
, : for (i = 0; i < 64; i++). , LSB (xlow) . - : for (i = xlow % 64; i < 64; i++)
, . , 0x0000, , .
, .
: (, 0x01,0x02,0x03,... , , [ ].
, , (.. , 64 ), , .
, 13 [ WRITE] , , ROM , , , (-) . , , , (.. )
, 0 64 0x04. , .
, "", 0x04 .
, SILO, -, - ( _spi->transfer )
, , - (, 10 ), (, xhigh = 0; xlow = 4) , .
UPDATE:
[].
, SCLK . . , . , , . , SCLK / (.. transfer) SCLK GPIO? transfer [ ].
SPI : https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus, .
, :
uint8_t SPI_transfer_byte(uint8_t byte_out)
{
uint8_t byte_in = 0;
uint8_t bit;
for (bit = 0x80; bit; bit >>= 1) {
write_MOSI((byte_out & bit) ? HIGH : LOW);
delay(SPI_SCLK_LOW_TIME);
write_SCLK(HIGH);
if (read_MISO() == HIGH)
byte_in |= bit;
delay(SPI_SCLK_HIGH_TIME);
write_SCLK(LOW);
}
return byte_in;
}
, , , , . , .
, , -, . , , .
CPOL=0,CPHA=1. CPOL=0,CPHA=0, , .
, . , CPOL=0,CPHA=0:
SCLK
__
| |
___| |___
DATA
___
/ \
/ \
, (CPOL=0,CPHA=1) - ROM:
SCLK
__
| |
___| |___
DATA
___
/ \
/ \
CPOL=0,CPHA=0 CPOL=1,CPHA=1. , ( ). , . SDK , , , (, . 18 . ROM).
, , , , .
, . , , LSB, [ ] .
, transfer(xlow) , , [ ].
xlow (, 3) . xlow, , . , , .