2024-08-24 05:30 PM
Hi all, i am planning on making an adapter board to use SD cards as a storage media for ipod classics which uses IDE hard drive. I will be using stm32f407 (512kb) for the development works. And yes i looked around and there seems to be no ic currently able to accomplish thi task apart from chinese boards, and for the ipod itself we have adapters but are locked down and to me it seems a bit pricey so trying to make a open source hardware/software solution with additional features which are not available anywhere for this device. I have figured out bits and pieces (hdd uses 3.3v, and ATAPI-6/UDMA-100 protocol) for this project but i have a few questions:
1) how do i go about creating a driver to translate the commands made with the ipod,
2) i will be using the fatfs file system for handling data on the sd card. How would the addressing and data read/write on atapt/udma works and any info on translating this to fatfs commands and vice vera will be helpful. Even crumbs of info! 😉
3) and most of all, is this microcontroller capable of doing these operations? Simply put this is a parallel to serial converter, just the technologies' age gap is vastly big!
2024-08-24 10:26 PM
IDE is basically a 16-bit data bus, with 8 addresses (3-bit address bus), so of thing you could use FMC/FSMC bus to communicate with.
FATFS wants you to provide a DISKIO layer to read/write sector(s) to the media, via a logical block number
2024-08-25 12:19 PM
Hello Tesla DeLorean,
I was unaware of the terminologies you mentioned in your comment, so i searched the terminologies and i came across your post on the DISKIO layer for the fatfs file system, so i guess im set on that front! Will comeback to you on any questions if im lost, if you're okay with it!
Can you please elaborate on the FMC/FSMC bus, cuz im getting a bit confused, since ATAPI command set will be used, as for protocols DMA is what the ipod/hdd seems to use and as per the T13 docs, all devices SHOULD support PIO protocol as well. Is FMC/FSMC bus is something which handles the I/O operation on the stm32 chip, for which i would be initializing 16 gpio pins as FMC/FSMC, for it to know it will be using 16bit parallel data transfer and write IDE/DMA/UDMA/PIO logic on top of that, or am i wrong and got confused hella lot more? :\
Thank you for all the help!