Hacker News new | ask | show | jobs
by jack12 2137 days ago
It hadn't occurred to me that PATA/IDE could be so simple to speak. Now I'm excited about the possibility of being able to dump a 25 or 30-year-old IDE drive I have that my USB adapter doesn't want to talk to (via another SATA-to-IDE adapter).

The README says this option relies on the kernel's "ATA framework" (presumably for the protocol/non-interfacing logic?). Is that part of the "talking to a drive" stack very much to have to implement? Or do you know of any existing code for microcontrollers?

1 comments

Depends on what you want to do :) If you just want to read/write sectors of 512 bytes at a time, it's pretty easy to implement even on a simple MCU.

There's a couple of registers which need to be set: https://wiki.osdev.org/ATA_PIO_Mode and you can then just read/write the data from the parallel lines.

Here's a similar project using an ATmega32: https://github.com/zwostein/idetrol (i used this code, ported to ARM to check my hardware before I wrote the kerneldriver)

How can this be so easy but talking to an SD card is an impossible task without implementing a billion vendor/type quirks.
ATA was implemented by engineers and then described in a spec.

SD was designed by committee and then implemented as best they could.

Ooh the hours lost trying to reverse the proper call sequence and frequency for my SD card, thanks for the reminder.