Proposed ARM Cortex M4 companion module
Peter Jakacki
Posts: 10,193
Who wants 192kB RAM and 1MB FLASH with a 168Mhz ARM+DSP????? Everybody I would think :cool:
I have scores and scores of Prop pcbs I have designed over the years and sometimes I also marry the Prop with another more powerful "applications" processor. My current design that I am putting through is with the new STM32F407 Cortex M4 CPU which is absolutely packed with you name it. Besides all the memory that it has onboard it also sports USB OTG and Ethernet, camera interface, fast 84Mhz I/O etc.
I'm a PropHead and a Prop fanboy but never to my own detriment, I will use what is appropriate but preferably a Prop. This is for the times when I want (and need) both!
The F4 module can be used on it's own but I can sandwich this to the bottom of the PuppyProp module as one assembly and I have low-profile header sockets that this can still plug into. Sure, that's a lot of I/O in parallel but I look at it like a Co-processor and I decide in software which does what. I'm looking at porting my fast IVOS Forth across to it and it will be even faster. The peripherals and CPU will allow me to do Ethernet, USB OTG, and even MP3 easily, there's even 12-bit ADCs and DACs to make this an all-in-one solution. The use of Forth will allow even those unfamiliar with ARM etc to be up and running within minutes. I expect that the Prop will end up being a peripheral to the F4 but it's a very flexible peripheral at that!
Here's a look at a mock-up of the F4 pcb next to the PuppyProp (upside down).
I have scores and scores of Prop pcbs I have designed over the years and sometimes I also marry the Prop with another more powerful "applications" processor. My current design that I am putting through is with the new STM32F407 Cortex M4 CPU which is absolutely packed with you name it. Besides all the memory that it has onboard it also sports USB OTG and Ethernet, camera interface, fast 84Mhz I/O etc.
I'm a PropHead and a Prop fanboy but never to my own detriment, I will use what is appropriate but preferably a Prop. This is for the times when I want (and need) both!
The F4 module can be used on it's own but I can sandwich this to the bottom of the PuppyProp module as one assembly and I have low-profile header sockets that this can still plug into. Sure, that's a lot of I/O in parallel but I look at it like a Co-processor and I decide in software which does what. I'm looking at porting my fast IVOS Forth across to it and it will be even faster. The peripherals and CPU will allow me to do Ethernet, USB OTG, and even MP3 easily, there's even 12-bit ADCs and DACs to make this an all-in-one solution. The use of Forth will allow even those unfamiliar with ARM etc to be up and running within minutes. I expect that the Prop will end up being a peripheral to the F4 but it's a very flexible peripheral at that!
Here's a look at a mock-up of the F4 pcb next to the PuppyProp (upside down).
Comments
There's a smaller 64 pin device as well as the larger ones so this chip could also be designed to fit "in the corner" of a Prop pcb.
Cool stuff!
I had an idea of using the prop for sensors and actuators, and a raspberrypi (ARM1176JZF-S 700-megahertz) ram, communication, crunching etc. Would there be any over lap between you work on the F4 and the raspberrypi?
About the same price as a Dracblade propeller board. The world is moving too fast. I was hoping to build a GUI for the propeller but it seems pointless when there are boards with a touch screen, better display and an operating system or three thrown in as well.
Time for a paradigm shift in thinking because the Prop can be a very nice companion for this board. For instance, the Prop could attach to the serial port and act as a smart serial router to expand 1 to 8 ports or more.
The Prop could also interface to a number of SPI A to D and D to A chips to give more real world I/O to that board.
There are many Prop/ARM synergies to explore.
[code]
CPU
Samsung S3C2440A 400MHz, Max freq. 533Mhz
SDRAM
Sign me up!
Closest I have come so far is an almost credit card sized ISEE IGEP ARM board running a version of Debian hooked up to a Propeller board.
@Prof: Once again this is ARM11 stuff you are talking about which is mostly multichip. I've tasted raspberry pie but I have never played with it. They say on their site that's it's a Linux box for $25 which is really good value when you want to run Linux and it sure makes the Prop look like a fish in deep space even trying to compete with this stuff. But I need manageable single-chip devices that I can just use for simple things, real-time things, or far more complex things (except Linux) and not have to drape 100's of megabytes of RAM off it. The IVOS Forth performed extremely well on the older ARM7 platform at 60MHz so I expect the Cortex M4 at 168MHz to go way beyond this level too. No problem with program memory space and the thing is fast enough with enough memory that I can bit-bash VGA signals under interrupts as I did on the ARM7 (but better with DMA) and still have enough memory and processing left over. I can fit a real lot of software in far less than 1MB of Flash so I think I have a lot of headroom with this chip. Still for many tasks I will be using the Prop, but for heavy app crunching and high-level connectively this is way better than say a dedicated chip just for Ethernet.
-Tor
And it is suggested (above somewhere) to use the P8X32A as a peripheral, to do what one would ask?
I'm waiting for the Discovery boards to become available from RS.
Now there's a thread started by Cluso asking about the features we like most and I know this sounds dumb but while I love a lot of things about the Prop what I like most is the flexibility of the I/O in that they are all identical and any one can be accessed by any cog. This is where other multi-core designs are lacking. When I lay out a PCB, normally it's a chore to decide what alternate function I want from the processor's port pins and then route that pin to where it should go. That is now a hardwired design and if I need a little flexibility later on to tweak the design then it might not be so easy. The Prop is very different and I've become "lazy" in that I use whichever pins are accessible and leave the rest to software. How many times has this proved invaluable I might be able to count but it doesn't stop there.
Most whiz-bang processors don't work that way and sometimes you can't use certain pins because the functions conflict with other functions etc or there are some other limitations.
They are a bit like this machine here (credits: Thinking Forth):
Yes, it seems to do everything but the one variation of it that you want is unobtainable, it's riveted and locked up.....and useless. I know the F4 will be a very powerful single-chip processor in it's own right but it doesn't have the flexibility of the Prop, or the fun factor. Primarily I'm after Ethernet, USB, and fast application space, the Prop will do the rest. BTW, I'm waiting on discovery eval boards too but I have chips already and in the process of pushing out a design (or two).
So, how are things for you? Good I hope.
My things are still running well here, thx you so much !!
Now I've got a question for the group, perhaps someone can help me. Does anyone know of an assembler for the Cortex M4 that generates listings and hex files? Most of the compilers out there seem to cripple anything to do with assembler while they try to force the community to accept C/C++ as the standard. All good and well for the majority but we are not all identical robots (yet). 32K is fine as a limit as long as I can generate usable output.
BTW, C/C++ is an option but I want to develop my IVOS Forth kernel first.
MDK-ARM Lite Edition
Programs that generate more than 32 Kbytes of code and data will not compile, assemble, or link.
From the Keil website http://www.keil.com/demo/limits.asp
Cheers
gcc --version|head -1
sbox-arm-linux-gcc (GCC) 3.4.4 (release) (CodeSourcery ARM 2005q3-2)
as --version|head -1
GNU assembler 2.16.91 20051213
and the GNU assembler can generate listings.
-Tor
I just rediscovered this thread. How is this work coming? Can you run linux and/or GO Language on this Cortex?
Sal just got the CSP channels going, its a demo, but from now on, the linux workstation thinks it has eight (six actually) cogs out there, and the prop thinks it can have one more BIG cog that has a big bunch of memory. This might mean fun on the Cortex....?
uClinux support ARM7TDMI, which is an older subset of what the Cortex M4 supports.
I use CoderSourceryas compler for a ARM7 that may work for You also ...
I would love to have some companion for the prop. Now I have a GT2449 FriendlyArm thing (SBC2440 Samsung) but it is to big.
I use it as Filesystem (well with boo webserver) for my Prop....
enjoy!
Mike
I meant "proper" Linux!
What on earth is "proper" Linux? There are so many variants of Linux, as long as it is a derivative of the Linux kernel, it IS Linux. uClinux is a derivative of Linux kernel 2.0 just without MMU.
I was going to say "surprising!" and the Cortex must be pretty special, since linux runs on smart phones.
So now you got curious, what's the difference between "proper linux" as defined by Leon, and uC linux as found on the smart phone? Just in general, in case (my) project ever gets that far.
Specifically, I only need a linux command line, and the ability to run a terminal program written in GO.
Smart phones don't run uCLinux!