Hallo zusammen, ich versuche gerade auf einem EVK1104 (also AVR32 UC3) das on-board SPI dataflash im "continuous array read"-Modus auszulesen. Der Treiber in der ASF unterstützt diesen Modus nicht direkt, daher versuche ich direkt über SPI mit dem Chip zu kommunizieren. Leider kriege ich bei spi_read einen Timeout-Fehler zurück. Was mache ich falsch? Hier der relevante Ausschnit aus meinem Code:
1 | #define AT45DBX_CMDA_RD_ARRAY_AF_SM 0x0B //!< Continuous Array Read, Any-Frequency Mode (Serial Mode).
|
2 | |
3 | // ...
|
4 | |
5 | {
|
6 | at45dbx_init(...); |
7 | |
8 | // ...
|
9 | |
10 | // issue read continuous array command
|
11 | spi_selectChip(AT45DBX_SPI, AT45DBX_SPI_FIRST_NPCS); |
12 | spi_write(AT45DBX_SPI, AT45DBX_CMDA_RD_ARRAY_AF_SM); |
13 | // start at address 0
|
14 | spi_write(AT45DBX_SPI, 0); |
15 | spi_write(AT45DBX_SPI, 0); |
16 | spi_write(AT45DBX_SPI, 0); |
17 | // dummy bytes
|
18 | spi_write(AT45DBX_SPI, 0xff); |
19 | |
20 | for(n=READ_SIZE; n!=0; --n) |
21 | {
|
22 | status = spi_read(AT45DBX_SPI, &data); |
23 | // TODO: process data
|
24 | }
|
25 | |
26 | // ...
|
27 | }
|
Wer kann mir helfen?