PDA

View Full Version : Proposed ARM Cortex M4 companion module



Peter Jakacki
10-18-2011, 07:13 AM
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 (http://www.st.com/internet/evalboard/subclass/959.jsp?q=keyword&search=stm32f407&standard=cross+reference)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 :innocent: 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).
86050

Cluso99
10-18-2011, 07:53 AM
Nice Peter :)

Peter Jakacki
10-18-2011, 08:11 AM
Ain't nice yet, theres' a lotta lotta work to do...........
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.

TonyD
10-18-2011, 10:00 AM
........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.
Now, that would be nice.

prof_braino
10-18-2011, 01:00 PM
Now, that would be nice.

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?

Dr_Acula
10-18-2011, 01:02 PM
I've just ordered one of these http://www.ebay.com.au/itm/Samsung-S3C2440-ARM9-Board-4-3-TFT-LCD-Touch-Screen-/110608092034?pt=LH_DefaultDomain_0&hash=item19c0c18b82

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.



CPU
Samsung S3C2440A 400MHz, Max freq. 533Mhz
SDRAM
64MB SDRAM
32bits Data Bus width
100MHz Clock
Flash
256MB Nand Flash
2MB Nor Flash, BIOS installed
LCD
4 wire resistive touch screen interface
Up to 4096 color STN, 3.5 inches to12.1 inches, up to 1024x768 pixels
Up to 64K color TFT, 3.5 inches to 12.1 inches, up to1024x768 pixels
In box 16M color 480x272/4.3 inches TFT screen, with touch screen
Interface and Resource
1 x 10M Ethernet RJ-45(CS8900)
3 x Serial Ports(1 RS232 with CTS and RTS)
1 x USB Host
1 x USB Slave Type B
1 x SD Card Interface
1 x Stereo audio out, 1 Micro In
1 x 20-Pin JTAG
4 x USER LEDs
4 x USER buttons
1 x PWM Beeper
1 x POT can be used for A/D converter adjust
1 x AT24C08 for I2C test
1 x 20-Pin Camera Interface
1 x Battery for RTC
1 x Power In(12V), with switch and lamp

Oscillator Freq.
12MHz
RTC
Internal
Expand Interface
1 x 34-Pin 2mm GPIO
1 x 44-Pin 2mm System Bus
Dimension
120 x 100(mm)
OS Support
Linux 2.6.32
Windows CE.Net 5.0/6.0
uCos2

Content List

1 x S3C2440 board (Preload with Linux)
1 x Serial cable
1 x Net cable
1 x USB cable
1 x 12V power adapter
1 x Parallel port wiggler JTAG emulator(for H-JTAG)
1 x DVD-ROM with product reference
1 x TFT LCD: 4.3" 480x272, with touch panel

Material list on DVD-ROM

(1) H-JTAG Debugger
(2) Windows Flash Programmer SJF2440
(3) Linux Nand Flash Programmer Jflash-2440(source code included)
(4) Serial tool CRT, dnw
(5) Bitmap to C Language transfer tool
(6) USB Driver(WindowXP/2000)
(7) vivi source code(linux bootloader)
(8) LED test program(ADS1.20 project)
(9) 2440test program(ADS1.20 project), include :
key test, RTC test, ADC test, IIS Audio play(wav), IIS Audio record,
touch screen test, I2C test, Samsung 3.5"LCD, 640x480 TFT test
(10) WindowsCE 5.0/6.0 BSP and sample project files.
(11) Pre-compiled WinCE 5.0/6.0 image for evaluation
(12) Linux tool and kernel source code
- arm-linux-gcc-4.4.3 with EABI
- yaffs2 file system image maker -mkyaffs2image
- linux-2.6.32 for S3C2440 kernel source code(include CS8900, LCD driver, Audio,
Touch screen, YAFFS Source code, SD Card, RTC, Expand serial driver,
USB Camera,USB Mouse and Keyboard, U-Disk)
(13) Pre-compiled Linux image for evaluation
(14) Qtopia 2.2.0 source codes, web browser source codes
(15) uCos2 source code and binary images
(16) Schematics(Protel99SE/PDF)
(17) User Manual(English)

mindrobots
10-18-2011, 01:16 PM
Wow! This is a great idea! If you can tie IVOS Forth into the MultiProp features of PropForth, your new board could sit on an impressive stack of seamless Forth controlled I/O!

Sign me up!

Heater.
10-18-2011, 01:32 PM
Yep, almost what I have been dreaming of since discovering the Prop. A small board with ARM, FLASH, SDRAM, ethernet, USB, serial, SD card etc which also carries one or more Props. The ARM side running Linux so as to be usable as a dev system for the Propellers. The Prop side doing the real-time propellery stuff.

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.

Peter Jakacki
10-18-2011, 01:37 PM
@Drac: The thing with a lot of this ARM11 stuff is that it is more than a single-chip and all this becomes bloatware when you are trying to design a system. Sure this "all on one board" assemblies are great for certain things and I have looked into them too but I want to be able to fit the system into a low-end compact pcb as well and not be dependent upon these SOBs (system on a 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
10-18-2011, 02:03 PM
Adding ARM seems to be popular.. Altera started mailing out ads for its new Cyclone FPGA setup with a built-in Cortex ARM buddy SoC included on the same chip. The promo says '..that combine an FPGA, embedded ARM processor, and DSP functions all in one integrated chip.'

-Tor

rod1963
10-18-2011, 10:47 PM
I'll buy one. They make a neat combo IMO and is as you stated is better than having a dedicated Ethernet chip.

Batang
10-19-2011, 06:05 PM
STM32 F4 MCU Series Highlights

Latest ARM Cortex-M4 core
Pin-to-pin and software compatible with the high-performance F2 series
7-layer multi-AHB bus matrix and multi-DMA controllers for concurrent execution and data transfers
Single-cycle DSP instruction support
Floating Point Unit
90nm CMOS process technology
Integrated ST Adaptive Real Time ART Accelerator
Zero-wait-state program execution up to 168 MHz, and best-in-class dynamic power
Integrated single-precision FPU boosts the execution of control algorithms, adds more features to applications, improves code efficiency, reduces time-to-market, eliminates scaling and saturation, and allows the use of meta-language tools
Up to 1 Mbyte of on-chip Flash memory, 192 Kbytes of SRAM, reset circuit, internal RCs, PLLs, sub 1microAmp real-time clock with sub-second accuracy
4 Kbytes of backup SRAM to save data in standby or battery backup modes
Typical RTC consumption of <1uA in Vbat mode
Internal voltage regulator with power scaling capability
Broad offering of Integrated Development Environments, Meta-language tools, a DSP library, inexpensive starter kits, software libraries and stacks
Camera interface, Crypto/Hash HW processor, Ethernet MAC10/100 with IEEE 1588 v2 support, two USB OTG (one with HS support)
Dedicated audio PLL and two full duplex I2S
Up to 15 communication interfaces (including six USARTs running up to 10.5 Mbits/s, three SPI running up to 42 Mbits/s, three I2C, two CAN, SDIO)
Two 12-bit DACs, three 12-bit ADCs reaching 2.4 MSPS or 7.2 MSPS in interleaved mode
Up to 17 timers: 16-bit and 32-bit running up to 168 MHz
Available in WLCSP (< 4.5 x 4.5 mm), LQFP64, LQFP100, LQFP144, LQFP176 and UFBGA176 packages


And it is suggested (above somewhere) to use the P8X32A as a peripheral, to do what one would ask?

Leon
10-19-2011, 06:31 PM
It does seem somewhat superfluous. :)

I'm waiting for the Discovery boards to become available from RS.

rod1963
10-19-2011, 07:04 PM
I'd use the Prop for video and keyboard and that's about it. The M4 will handle all the rest.

Peter Jakacki
10-20-2011, 12:53 AM
Just to put this into context as from the specs it appears that the F4 will do everything! Well, this may be true but like like many of the more powerful processors these days the peripheral complexity and learning curve surpasses the CPU itself. Sure it has the capability but it's not a Prop and most of my designs are Prop centric.

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):
86105

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).

rod1963
10-20-2011, 05:16 AM
Taking another look at the proposed F4 module, it looks you cut it's I/O at the knees rendering it a crippled chip, what gives?

Peter Jakacki
10-20-2011, 05:50 AM
This module is piggy-backing onto the Prop module but don't worry, I have other boards too.......

BTX
10-20-2011, 12:04 PM
Great Job Peter !!! It's amazing board !!!

Peter Jakacki
10-20-2011, 12:12 PM
Hey Alberto!!! It would be amazing once I have my boards finished and then the monumental task of porting my software to it. I still haven't decided on a tool chain, I used the free assembler part of the IAR IDE last time.

So, how are things for you? Good I hope.

BTX
10-20-2011, 01:00 PM
Yeah Peter !! I mean, It will be amazing :) You sure, let us know about your progress in board.
My things are still running well here, thx you so much !!

Peter Jakacki
10-23-2011, 01:47 AM
Well my STM32F4 DISCOVERY evaluation boards are on their way and should be here in a day or two while my other boards are being designed. The other feature that I will add to the device is MP3 playback with 7-stage equalizer as this proves to be a breeze for this chip whereas it's altogether impossible for the Prop itself. Once the main functions have been developed then we can treat the chip as we would any other specialized chip such as the Wiznet, Vinculum, MP3, FTDI devices etc except they all rolled into one.

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.

Batang
10-23-2011, 06:23 AM
KEIL

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

Tor
10-23-2011, 11:15 AM
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.
Well, if there is GCC then there is also GAS.. the Gnu Assembler. Often called just 'as'. The cross-compiling environment I use for my (older) ARM Nokia N800 has this:

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

prof_braino
04-23-2012, 01:39 AM
Hey Peter

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....?

Leon
04-23-2012, 05:25 AM
It's a Cortex chip, so it won't run Linux. You need one of the bigger ARM chips for that.

pedward
04-23-2012, 08:05 AM
It's a Cortex chip, so it won't run Linux. You need one of the bigger ARM chips for that.
http://www.uclinux.org/ports/

uClinux support ARM7TDMI, which is an older subset of what the Cortex M4 supports.

msrobots
04-23-2012, 08:31 AM
Hi Peter,

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

Leon
04-23-2012, 09:50 AM
http://www.uclinux.org/ports/

uClinux support ARM7TDMI, which is an older subset of what the Cortex M4 supports.

I meant "proper" Linux!

MacTuxLin
04-23-2012, 01:12 PM
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.

prof_braino
04-23-2012, 01:17 PM
I meant "proper" Linux!

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.

Leon
04-23-2012, 01:46 PM
Full Linux requires an MMU.

Smart phones don't run uCLinux!

Heater.
04-23-2012, 02:57 PM
I would imagine that if your Linux is not pulled from Linus Torvalds' git repository (or is modified afterwards) it is not "propper Linux".
Of course that means that RedHat, Ubuntu and everyone else who patches the kernel before including it in their distros is not shipping "proper Linux" either.
Also let's not get confused between uClinux an uclibc. The former is a cut down version of Linux without MMU. The latter is a cut down C language support library for small systems which could quite easily be used on "proper Linux".
I'm not sure if smart phones use uclibc or not.

Braino,


Specifically, I only need a linux command line, and the ability to run a terminal program written in GO.


That may be so. However a lot of the Linux command line goodness ultimately relies on features provided by the kernel and libc/ulibc
How much of the GO languge relies on the underlying POSIX conformant OS?

MacTuxLin
04-24-2012, 10:37 AM
Sorry, don't know what got onto me. You're right. Your proper means differently compared to mine. The only proper Linux I face are those that installed properly. In the early 90's, Linux was so hard to get it properly installed but that's history now.



Full Linux requires an MMU.

Smart phones don't run uCLinux!

prof_braino
04-24-2012, 01:03 PM
features provided by the kernel and libc/ulibc
How much of the GO languge relies on the underlying POSIX conformant OS?

This gets into OS design and architecture that is out of my league. I guess it would need to design a common interface at some intergal level, so the processing interfaces can be assigned via pointers to the physical interfaces, whatever they may be.

But as you pointed out, I'm not the CSP expert, so I can state with any certainty the actual requirements. I'll re-visit this is I get information from the Python-CSP people.

rod1963
04-24-2012, 05:31 PM
Consider using Bell Labs Inferno OS and assorted tools. It runs on systems with just 1 megabyte of ram.

http://www.vitanuova.com/inferno/index.html

brucee
04-24-2012, 09:42 PM
but inferno would require an MMU, and in software that would be a bit slow.

rod1963
04-25-2012, 12:45 AM
Yeah, so does Linux. Yes there's uclinux that doesn't require a MMU but no one uses that anymore. That said Inferno( the Styx protocol) has been ported to a older Lego Mindstorm brick with a H8 and 32 KB of ram. That's the part that interests me. I'd like to try that on the ARM Cortex M4 as time permits.

Mind you I'm no fan of stuffing a major OS of any sort on the Prop, I brought it up because it is a possible alternative to Linux. The resource footprint looks to be a lot smaller than say Redhat or Ubuntu.

prof_braino
05-19-2012, 04:21 PM
Hi Peter

Is this the one you are using?

http://www.st.com/internet/evalboard/product/252419.jsp
STM32F4DISCOVERY
Discovery kit for STM32 F4 series - with STM32F407 MCU

Did you try this on your setup? Frank Sergeant is pretty sharp. His Pygmy for DOS is still my favorite for PC and totally rocks all the way down to x386

http://pygmy.utoh.org/riscy/cortex/

Its written for Cortex M3, but it looks like the only thing lacking is the float support.

Leon
05-19-2012, 05:32 PM
I've got one of those Discovery kits. They are good value.