Hello,
Has anyone ever had success testing the HSMCI (High Speed Memory Card) interface with the Arduino Due board?
I'm currently implementing a custom board based on the SAM3X8E processor used in the Due and I'm planning to use the HSMCI interface for SD card storage. Right now I'm trying to do some software testing using an Arduino Due with an SD card connected to the HSCMI interface pins. All the necessary signals except for MCDA0 are available on the headers. MCDA0 is available by soldering to the TXLED.
So far I have attempted to get this working by using the Atmel Software Framework examples in Atmel Studio 6, and then using bossac.exe to flash the board.
The closest to success that I have achieved so far is to start with the "SD/MMC/SDIO Card FatFs Example - SAM3X-EK" project. That project is intended for Atmel's SAM3X-EK demo board, so it uses the SAM3X8H processor instead of the SAM3X8E processor as used in the Due. I was able to change the device to the SAM3X8E in the project settings, then modify the board definition file so that the Card Detect pin uses a pin available on the Due, and get the project to compile and load.
With this project compiled and loaded, I can see the MCCK (clock) pin creating a square wave, and I can see some brief pulses on the MCCDA (command) pin, but the initialization process still fails, unable to communicate with the SD card.
My alternate approach was to start with an example project created for the Due specifically, and then use the ASF wizard to add the necessary files to match the SD example project. Although I can get that version to compile, load, and run, the clock pin never toggles nor does the command pin. It seems like for some reason the PIO is not correctly configuring those pins for HSMCI usage in that case.
Anyway, that's enough background to understand what I have tried so far. Has anyone else ever attempted to use the HSCMI interface with a Due board and had success?
Thanks so much in advance for any help or suggestions!
Dominic
PS - Before working with Atmel Studio and the ASF, I tried quite a lot to copy the relevant code into Arduino sketch files and compile within the IDE version 1.5.2, but I had absolutely no success getting it to compile as it could never seem to find the definitions and functions used in the ASF, even though I believe that most of those definition files should be part of the Arduino Due core library...
PPS - I am aware that there is a SPI interface SD library available for the Arduino Due. That was my plan A, but unfortunately I'm also using some SPI ADC chips that require precise timing for a fast control loop and therefore I can't tolerate the delays from the block writes over a shared SPI bus. If there are other alternatives (like software SPI to separate the SD vs. ADC busses, etc), I'm all ears!