Модифицировал функцию чтения до непрерывности:
Код
static uint8_t readOneByte(uint16_t addr)
{
uint8_t ret;
SPI_FLASH_CS_LOW();
WAIT_TXE(); SPI_I2S_SendData(SPI_FM25, FM25_READ_ADDR_HI( addr ));
WAIT_TXE(); SPI_I2S_SendData(SPI_FM25, FM25_READ_ADDR_LO( addr ));
WAIT_RXNE(); SPI_I2S_ReceiveData(SPI_FM25);
WAIT_TXE(); SPI_I2S_SendData(SPI_FM25, FM25_CMD_DUMMY );
WAIT_RXNE(); SPI_I2S_ReceiveData(SPI_FM25);
WAIT_RXNE();
ret = SPI_I2S_ReceiveData(SPI_FM25);
SPI_FLASH_CS_HIGH();
return ret;
}
Шесть последовательных вызовов с адресом от 0 до 5. Все вызовы возвращают 0. При этом, что происходит на выводах в приложенной картинке(всё как в даташите..). На ней снизу вверх: CS, SCK, MOSI, MISO . DUMMY равен 0x71. На MISO иногда проскакивают значения но они не ловятся приёмником...
ps: картинка gif - нужно кликнуть.
Сообщение отредактировал baralgin - Dec 10 2009, 14:40
Эскизы прикрепленных изображений