cancel
Showing results for 
Search instead for 
Did you mean: 

STM32 - ATA read/write

Evgeny Popov
Associate III

Well, i need to read data from the hardware that uses ATA interface, my mcu is stm32f407, all is came in my mind is to make software implementaion by bitbang the pins, but ATA has 16 bits data interface, therefore ill need to bitbang each pin connected to the stm32. Is it any another, more softer solutions?

2 REPLIES 2

You can write all 16 pins in a bank at the same time.

Perhaps FSMC would be a better choice? ATA was originally just a buffered bus transaction on an x86. ​The STM32 lacks an external DRQ/DACK DMA method. Might want a CPLD, or play games with address bus bits.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

You can use PATA to SATA adapder and find a MCU with hardware SATA support.

Or use 2 adapters - PATA -> SATA -> USB and use stm32f407's USB host.

If using adapters is not an option, you may find this PATA library for an AVR microcontroller useful - https://github.com/89Mods/AVR-PATA