We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
I am new to ARM Cortex 4 and to ADSP-CM403F. I worked with AVR stuff and was able using SD cards with SPI, AVR-GCC. I am working on a schematic for the 120pin ADSP-CM403F chip. To be able to code for MicroSD I will have to connect the right pins of the card to the CPU. Unfortunately I did not find an example yet to see if its possible using 4 data lines as SDIO offers. In the data sheet Rev. A november 2015 there are signals like SPI clock, SPI data 2, SPI data 3. I cannot see SPI data 0 or data 1.
Can anybody please give me a hint where to find an example how to add a MicroSD card (and also a QSPI flash, SRAM) to this chip including a simple C example code? Thank you very much !
"Dealing with the peripherals on an ARM chip is really no different to dealing with the peripherals on an AVR or any other microcontroller - it's all just about reading & writing registers."Yes. I know how to access a MicroSD card with one channel SPI and AVR. But I did not do yet with a 4 channel SPI. I read the data sheets of the SD card and the data sheet from ADI. But unfortunately its still not clear for me where to connect CMD to. I still search for an example. Hopefully at ADI there will be somebody willing to help here.
Well, yes - Analog Devices (as the name suggests) are the analogue experts.
So if that's your key requirement, that's going to have to drive your decision.
Dealing with the peripherals on an ARM chip is really no different to dealing with the peripherals on an AVR or any other microcontroller - it's all just about reading & writing registers.
"I suggest that you get a copy of Joseph Yiu's Definitive Guide"thank you for this hint !
"none of this has anything to do with ARM - and nothing to do with the GNU Toolchain!"Yes ! So this is off topic here. So where should I ask?ARM is only part of the ADI chip I want to use.The GNU toolchain is part I want to use for programming registers and so on. Without a program no function at all."In 4-bit mode, you need the full protocol - which requires a licence (which is, presumably, paid by the silicon manufacturer and included in the chip price)."seems to be that ADI is using that. I do not know the difference in operation between the solution that STM uses (SDIO) and SPI with 4 data lines. I assume its similar. I can try finding out.
"It does sound like you'd be better off choosing a different board."If you have a helpful hint here Andy - please tell.
"Plenty of others offer 16 (and more bit) ADCs"I did not find much boards using precise 16bit ADCs like ADI does offer. Many are offering ADCs which are much compromized in accuracy by design. "I think you have a lot of basics to cover before thinking of designing PCBs"I already have a 16bit design using a Atmega2560, AD7714, MAX5717. This worked well. I then switched to Atmega32u4, AD7798, MAX5717. The PCB is there - has to be tested yet. So this ADSP-chip is just the next step. In 1986 I worked with a 10bit AD-converter in a medical device. So all this is not so new for me.
Again, none of this has anything to do with ARM - and nothing to do with the GNU Toolchain!
SDIO is the interface defined by the SD Card Association:
https://en.wikipedia.org/wiki/SD_card#SDIO_cards
It is not the same as, nor a synonym, for QSPI.
https://en.wikipedia.org/wiki/Serial_Peripheral_Interface#Intelligent_SPI_controllers
The reason that most low-cost dev boards use SPI is that it allows you to use the free, simplified SD-Card protocol.
In 4-bit mode, you need the full protocol - which requires a licence (which is, presumably, paid by the silicon manufacturer and included in the chip price).
I am not so sure about that. STM uses the term SDIO. ADI does not use this term. In the ADI description I found the hint: "In quad mode data transmit the SPI_MISO, SPI_D2, and SPI_D3 signals are also outputs. In quad mode data receive, the SPI_MOSI, SPI_D2, and SPI_D3 signals are also inputs.There are signal names there like:SPI0_CLKSPI0_D2SPI0_D3SPI0_MISOSPI0_MOSISPI0_SEL1SPI0_SEL2SPI0_SEL3SPI0_SSDont you think this type of "quad mode" could be used here for MicroSD?
It does sound like you'd be better off choosing a different board.
Plenty of others offer 16 (and more bit) ADCs
Many have low-cost dev kits; even with SD Cards on them - but more usually just connected over SPI. Using the 4-bit interface is more advanced.
To be honest, it does sound like you're being a bit over-ambitious here - I think you have a lot of basics to cover before thinking of designing PCBs ...
"That's what Development Kits are for!"I know.
"Never go straight to a PCB without first having got up to speed, and proved your concepts, on a Dev Kit."
Unfortunately this dev kit is quite expensive and it does not fit to what I want to have.No MicroSD easily to attach for testing. No code for it. No support as it seems.I decided starting using the schematic on the dev kit and try building my schematic from this base. Its not easy for a beginner with this but I try.
Matt007 said:I wanted to use 4 data lines for MicroSD
For that, you need an SDIO peripheral, not QSPI - don't you?
The ADI document describes the ADI IP.
You will see that there is very little about the M4 Core in the ADI documents - because that documentation is provided by ARM.
http://infocenter.arm.com/help/topic/com.arm.doc.subset.cortexm.m4/index.html#cortexm4
For an excellent reference on the M4 Core, I suggest that you get a copy of Joseph Yiu's Definitive Guide:
https://www.elsevier.com/books/the-definitive-guide-to-arm-cortex-m3-and-cortex-m4-processors/yiu/978-0-12-408082-9
See also:
http://www.keil.com/books/
http://www2.keil.com/mdk5/learn
I wanted to use this chip because of the more precise 16bit AD converter in comparison to others. Also I wanted getting some experience with Cortex M4. There are other projects with Cortex M4 which seem to work well even for beginners to use like Adafruit or Teensy. I wanted to use 4 data lines for MicroSD like many others showed doing. Clearly also this ADSP chip should be able doing so according to description.
That's what Development Kits are for!
Never go straight to a PCB without first having got up to speed, and proved your concepts, on a Dev Kit.
You said: "Note that it is the Hardware Reference manual which contains the detailed operating descriptions of the peripherals - including the Register descriptions."If ARM only delivers the M4 Core and not the peripherals - then the peripherals are from somebody else made. So I have to use the register descriptions from ADI here? Is this correct? I cannot use Cortex M4 descriptions for that? Did I understand this correctly?
So why did you choose this particular chip?
Why is QSPI important?
Is Cortex-M4 important?