Commit Graph

8 Commits

Author SHA1 Message Date
Byron Lathi
ee95a592cd Reset bit count upon entering RXDATA
The but count should be set to 7 when entering RXDATA. previously it was
not reset or left at 0, which caused the first byte to only have the lsb
set and all other bits to be read incorrectly.
2022-04-14 11:20:48 -05:00
Byron Lathi
3a59de2947 Change data count to have proper width (9)
This was probably an off-by-one mistage, with the width set to 10
instead of 9. The width should be 9 since the buffer is 512 bytes.
2022-04-14 11:19:08 -05:00
Byron Lathi
c9269b2fb8 Fix some warnings
Adds some missing cases, length specifiers.
2022-04-11 16:13:38 -05:00
Byron Lathi
87d1457d94 Add logic to store and readback data from SD card
After a data read (e.g. CMD17) the data received from the SD card is
stored into a buffer which can be read back one byte at a time by the
CPU through address 5.

There is also a flag which is set when data is received. This can be
checked by reading the CMD register, which doubles as the status
register.
2022-04-11 13:57:56 -05:00
Byron Lathi
f5f1d7ccc6 Add read flag to sd controller
Read flag is set when the sd controller reads response data in from the
sd card. When the cpu reads from the controller, the flag is reset.

This flag does not trigger an interrupt, it mmust be polled.
2022-04-10 23:16:10 -05:00
Byron Lathi
1128b986eb Fix state transitions with regard to clock
The SD card expects data to transition on falling edges and be stable on
rising edges.

Additionally, writes from the CPU were not handled with correct timing.

Now, there is an extra state when writing to the command register so
that the command is properly latched before the CRC is calculated.
2022-04-10 17:52:07 -05:00
Byron Lathi
31a4656cac Reduce sd_controller addr width from 4 to 3 2022-04-09 17:31:25 -05:00
Byron Lathi
f89ecfa038 Add SD Card controller for sending commands
Adds the start of the SD card controller which is capable of sending
commands using the SD protocol.

It is accessed by writing the arguments first and triggered by writing
the command number.
2022-04-08 12:28:17 -05:00