Your little chip only has 6 IO. First thing every will need to do is add some external parts to read buttons, drive LEDs or motors or displays or whatever.
Arduino has 20 digital, 6 of which may also be analog inputs.
CrossRoads:
Your little chip only has 6 IO. First thing every will need to do is add some external parts to read buttons, drive LEDs or motors or displays or whatever.
Arduino has 20 digital, 6 of which may also be analog inputs.
Yes, the LPC810 is like an ATtiny with its 6 GPIO.
The LPC812 is like an ATmega328 and has 18 GPIO.
Both MCUs have a switch matrix so any GPIO pin can be SPI, I2C, UART or any other of the onboard functions.
Jan and I had this discussion via email over a week ago and I must admit that I was pretty frosty to the idea too... but, I have soften some over the past few days re-thinking the concept.
Essentially it is a 32-bit 'tiny'. As with the 8-pin tiny85, I/O is always a premium, but I still find myself pulling out one every now and then because it is the right chip for the work.
With the 8-pin ARM chip, one has to consider "code density" and the efficiency that could be gained. This does not mean that every program will benefit from the 32-bit instruction set, but in some cases the under $1, this little chip may be just right. I am definitely going to get a few to play with... like Momma always said, "If you don't taste your food, how'd you know you don't like it?"
I changed the internal core clock to 40MHz.
And the core runs stable at Vdd=3.3v
The internal flash access time is 24nS and can run with zero waitstates at 41MHz core clock so its technically not overclocking but it might require the Vdd to be 3.6v
A 32-bit MCU at 40MHz is a quite powerful platform.
Since my Catweazle protoboard (yes, I have ordered PCB ) will contain a 2Mbyte flashchip I'm going to prove the raw DSP and processingpower of the NXP LPC8xx.
I'll write an analog synth and sampleplayer on the chip with filters and envelopes.
It could be done on the ATmega aswell but it's much easier with 32-bits and 40MHz.
I coded a simple Delta-Sigma 44.1KHz 16-bit DAC on a single digitalpin with an RC-filter on it.
It can even do stereo 16-bit on 2-pins without a sweat.
It's coded as a reverse state machine.
Main() is used to run the PDM DAC at 1.3MHz and a 44.1KHz ISR is updating the sample data.
1-bit PDM DAC on the LPC.
16-bit 44100Hz resolution.
Impressive. What's next?
I still think that for the traditional Arduino dude and dudett out in the Ether, that the Catweazle needs to be tied into the Arduino world via a mini-shield or I2C and used as a co-processor... I/O over on the Arduino side and the LPC doing something that would put the Arduino into a deep sweat. I betcha a really decent MP3 decoder could be a reality.
1-bit PDM DAC on the LPC.
16-bit 44100Hz resolution.
Impressive. What's next?
I still think that for the traditional Arduino dude and dudett out in the Ether, that the Catweazle needs to be tied into the Arduino world via a mini-shield or I2C and used as a co-processor... I/O over on the Arduino side and the LPC doing something that would put the Arduino into a deep sweat. I betcha a really decent MP3 decoder could be a reality.
1-bit PDM DAC on the LPC.
16-bit 44100Hz resolution.
Impressive. What's next?
I still think that for the traditional Arduino dude and dudett out in the Ether, that the Catweazle needs to be tied into the Arduino world via a mini-shield or I2C and used as a co-processor... I/O over on the Arduino side and the LPC doing something that would put the Arduino into a deep sweat. I betcha a really decent MP3 decoder could be a reality.
Ray
It could be done in 2 ways.
Either you upload code the LPC shield through the ISP interface in which case it will remain between boots.
Or create a sketch on the LPC that uploads code to the 1K SRAM and executes it.
In that case you could have some reduced instruction set DSP code to just do your task and return the result.
SInce I've sacrificed the reset pin for an extra GPIO, the only thing that can reset the chip is toggling the power.
So it may be better to run code in the internal sram?