Estoy usando FatFS . Después de resolver la tarjeta problema de inicialización Estoy tratando de leer el sector 0 , pero la tarjeta devuelve datos no deseados.
Esta es mi operación de lectura: Veoquelatarjetarespondiócon0x00,loquesignificaqueseleeparaentregardatos.
Porsupuesto,misectorzerothdescargadoconunlectordetarjetasUSBsevecorrectamente:
Este es mi registro de depuración (los números CMD están en hexadecimal):
388:mmc_disk_initialize: SPI initialized
366:send_cmd_INTERNAL: call 401 Cmd 00 response 01
403:mmc_disk_initialize: CMD0 okay
366:send_cmd_INTERNAL: call 405 Cmd 08 response 01
406:mmc_disk_initialize: CMD8 okay - this is an SDv2 card
409:mmc_disk_initialize: CMD8 response 000001AA
413:mmc_disk_initialize: Waiting for leaving idle state
366:send_cmd_INTERNAL: call 309 Cmd 37 response 01
366:send_cmd_INTERNAL: call 415 Cmd 29 response 01
366:send_cmd_INTERNAL: call 309 Cmd 37 response 01
366:send_cmd_INTERNAL: call 415 Cmd 29 response 01
366:send_cmd_INTERNAL: call 309 Cmd 37 response 01
366:send_cmd_INTERNAL: call 415 Cmd 29 response 01
366:send_cmd_INTERNAL: call 309 Cmd 37 response 01
366:send_cmd_INTERNAL: call 415 Cmd 29 response 01
366:send_cmd_INTERNAL: call 309 Cmd 37 response 01
366:send_cmd_INTERNAL: call 415 Cmd 29 response 01
366:send_cmd_INTERNAL: call 309 Cmd 37 response 01
366:send_cmd_INTERNAL: call 415 Cmd 29 response 00
419:mmc_disk_initialize: Checking CCS bit in OCR
366:send_cmd_INTERNAL: call 420 Cmd 3A response 00
423:mmc_disk_initialize: CMD58 response 80FF8000
452:mmc_disk_initialize: Init okay
40:disk_initialize: status = 0
58:disk_read_INTERNAL: Call from 27
366:send_cmd_INTERNAL: call 494 Cmd 11 response 00
60:disk_read_INTERNAL: buf=20001588 sector=0 count=1
27:test_task1: Read result 0
28:test_task1: dump len 512
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FE000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
0000000000000000001B3DAFBF000080
0101008311F4FD3E000000C2EF3A0000
00000000000000000000000000000000
00000000000000000000000000000000
- Mis datos de depuración son 100% consistentes con el tráfico del analizador lógico.
- La inicialización es la misma que en el controlador de referencia de FatFS, solo se cambia la capa SPI, por lo que esperaría que la inicialización fallara si algo estuviera mal con la SPI en sí misma
- el reloj SPI es de alrededor de 150 kHz
- La tarjeta devuelve la misma basura cada vez, otra tarjeta devuelve otra basura de forma confiable
- Estoy enviando 2 bytes ficticios con alto CS entre comandos
¿Qué debo marcar / cambiar para que el comando de lectura funcione de manera confiable?