What is the next step after Arduino? I have been working with Arduino mini’s for about 6 months, but I believe my interrupts are now coming too quickly for the Arduino CPU interrupt handler.
I have been looking at the Coridium, but I think its speed is 60mHz – only 4 times faster than Arduino.
If I am going to jump onto a new learning curve, it should be a substantial jump in performance (and off course, not too much jump in knowledge :)).
I can solder through hole but not SMT, and I can program in C. My application is relatively trivial (but of course crucial to me).
What is “state of the art” for ARM or LPC development, but not bleeding edge?
rjl:
What is the next step after Arduino? I have been working with Arduino mini’s for about 6 months, but I believe my interrupts are now coming too quickly for the Arduino CPU interrupt handler.
I have been looking at the Coridium, but I think its speed is 60mHz – only 4 times faster than Arduino.?
There's a lot more to consider than just processor clock speed when comparing the performance of two systems and when implementing interrupt handlers. What's the minimum time period between the arrival of your interrupts?
rjl:
What is the next step after Arduino? I have been working with Arduino mini’s for about 6 months, but I believe my interrupts are now coming too quickly for the Arduino CPU interrupt handler.
I have been looking at the Coridium, but I think its speed is 60mHz – only 4 times faster than Arduino.
If I am going to jump onto a new learning curve, it should be a substantial jump in performance (and off course, not too much jump in knowledge :)).
I can solder through hole but not SMT, and I can program in C. My application is relatively trivial (but of course crucial to me).
What is “state of the art” for ARM or LPC development, but not bleeding edge?
Tell us about what you are trying to do.
Don’t judge a CPU’s speed by the clock rate. Little correlation.
Coridium uses ARM7. There are many, many ARM7 boards. If you move up to ARM, consider a board with JTAG. And use GCC, not Arduino’s variant not intended for technical people. Coridium is OK for a quick and dirty, but that BASIC is ill-advised for anything non-trivial. And their variant of the GCC C library is likewise.
But tell us about your goal. The problem is most likely a technique or algorithm problem, not a lack of CPU speed. Reading the posts, studying the projects section examples, on avrfreaks.net, may pay off too.
rbarris:
I have a Luminary ARM (LM3S815) handling about 63K interrupts per second at 50MHz… is that fast ?
that’s about 1k cycles per interrupt. are the interrupts complicated so that they take that long to complete?
No, I’m only using about 30% of the CPU in the ISR for this task. I’m running the ADC at 500KSPS and processing blocks of 8 samples in the ISR, so it goes off every 8th sample or 62.5 thousand times per second.
For Cortex M3, I think your best startup option is to get one of the Luminary Micro LM3S811 dev boards. It’s not only a target board, but it’s also a FTDI based JTAG programmer/debugger for itself and any target boards you make/buy.
So for $50.00 you get the JTAG unit, plus a small dev board for the price of just a USB JTAG unit seperately.
Different versions come with different compiler evaluation kits. I don’t think it’s that important, but just be aware. They are all the same price. This is the CodeSourcery version.
I have no personal experience with either of these products, so I’m basing this recommendation on research alone. I do have experience with the Luminary Micros LM3S811, but it’s on a test board that I made myself.
TheDirty:
For Cortex M3, I think your best startup option is to get one of the Luminary Micro LM3S811 dev boards. It’s not only a target board, but it’s also a FTDI based JTAG programmer/debugger for itself and any target boards you make/buy.
So for $50.00 you get the JTAG unit, plus a small dev board for the price of just a USB JTAG unit seperately.
With T.I. acquiring Luminary - could be good influx of capital, or another innovative start-up lost in the bowels of a big company. Hope for the former.
SodaAnt:
If you decide to go with the Cortex-M3, I highly recommend this [book.[/quote]
that would not be something I would recommend to anyone wanting to learn the chips for practical purposes.
it is heavy on the architecture of the chip, the instructions, but very little on the peripherals, and even lighter on step-by-step examples to actually program the chip to do things.
I thought the book is best for a CE person wanting to know generally what the chips are about, without wanting to know how to program the chip.
for the latter, I have yet to find a good book, or sample code (without resorting to OEM apis).](Amazon.com)
In the case of Luminary’s DriverLib (renamed StellarisWare iirc) you get all the source. For me this acted both as convenience - just call the API - and education (open up the sources and see how things are done).
rbarris:
In the case of Luminary’s DriverLib (renamed StellarisWare iirc) you get all the source. For me this acted both as convenience - just call the API - and education (open up the sources and see how things are done).
the use of STellarisWare adds structure to the design, eliminates some quality issues for a novice programmer and also adds portability - that’s a plus.
it also adds to the learning curve, as well as complexity to simple jobs. It took me a while to set up blinky through StellarisWare, and I am yet done with the ADC.
I am sure that if you stay down the path and add project complexity, the investment in Stellarisware will pay off. Otherwise, …
rbarris:
In the case of Luminary’s DriverLib (renamed StellarisWare iirc) you get all the source. For me this acted both as convenience - just call the API - and education (open up the sources and see how things are done).
the use of STellarisWare adds structure to the design, eliminates some quality issues for a novice programmer and also adds portability - that’s a plus.
it also adds to the learning curve, as well as complexity to simple jobs. It took me a while to set up blinky through StellarisWare, and I am yet done with the ADC.
I am sure that if you stay down the path and add project complexity, the investment in Stellarisware will pay off. Otherwise, …
No real disagreement, I would just add that even at a minimum, you have working source to read through, even if you don’t want to put it in your makefile and compile it in etc.
Hello - I’m also considering stepping up from arduino and have the ollimex lpc2148 board. Based on my requirements… I need a third UART which will be used not very frequently.
Is somebody aware of a Serial Software Library (like in arduino) that I can use to implement a third UART on any PIN of the lcp?
It should be fairly easy to implement a software UART, although timings can be difficult to calculate with the ARM. You could also use one of the existing UARTs with a multiplexer by modifying the board.