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 !
You've posted in the GNU Toolchain forum, but you seem to be asking hardware questions?
For chip specific question, you need to go to the Chip manufacturer - they have nothing to do with ARM.
https://www.analog.com/en/products/adsp-cm403f.html
That's also the most likely place to find specific examples.
For the distinction between what ARM does, and what chip manufacturers do, see:
https://community.arm.com/developer/tools-software/tools/f/keil-forum/43684/lpc2148-timer0-not-working-as-expected/158950#158950
Thank you Andy. Yes - I have posted in the code section because I need some example code for that. For the example code to work the hardware wiring must be set up correctly. So I would need an example for both - software and hardware. Should I ask in another forum for that?I had been at https://www.analog.com/en/products/adsp-cm403f.html and had a look at the documentation they are giving. There is a description of EVAL-CM40X-EZLITE, but unfortunately they are not using and showing a microSD with this. There does not seem to be an Application Note for this."you need to go to the Chip manufacturer - they have nothing to do with ARM."they seem to use an ARM core. Is this not the core where the SPI pins are connected to?Thank you for the link. I will have a look at.
Matt007 said:Is this not the core where the SPI pins are connected to?
No.
See the post I linked: the "core" is just the CPU itself; the SPI, SDIO, QSPI, etc are all the chip manufacturer's own IP - so you need to speak to them for details.
The diagram on the AD Product Page makes it clear:
Only the block marked 'ARM' is the ARM part.
See the section, "ARM CORTEX-M4 CORE" in the datasheet;
See also section 2, "ARM Cortex-M4 Core Memory Sub-System" in the Hardware Reference manual.
Note that it is the Hardware Reference manual which contains the detailed operating descriptions of the peripherals - including the Register descriptions.
I guess this is the same question: https://www.mikrocontroller.net/topic/478451 ?
Yes. Unfortunately they have not been able yet answering my question related to this ADSP chip with Cortex M4 and QuadSPI. May be only some people are interested in this chip at all.
So what would you do here?Leave this chip?Take another one with more support?Find another forum?
I had a look at the files that AD is giving related to this chip. Unfortunately I did not find until now all that I need to make a final decision about the hardware connections of the MicroSD card to the ADSP chip. Without a schematic I cannot start making a PCB. Without PCB I cannot test any software writing to registers.
So why did you choose this particular chip?
Why is QSPI important?
Is Cortex-M4 important?
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?
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.
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.
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
Matt007 said:I wanted to use 4 data lines for MicroSD
For that, you need an SDIO peripheral, not QSPI - don't you?
"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.
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 ...
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?