Added by tve about 4 years ago

Could you say a few words about why you are focusing on NXP LPC processor series? I don’t see another 8-pin DIP package out there, but beyond the LPC810, what sets the LPC800 series apart from offerings by freescale, cypress, etc? I’m not trying to pick on the choice, I’m just curious about what you’ve noticed out there. And if it’s that you know folks there and thus have been aware of them for a while, then that’s totally OK with me.

Replies (5)

RE: Why NXP LPCs? - Added by jcw about 4 years ago

Heh - no nefarious plots involved, for sure :)

(I do not have any inside contacts at NXP, though I do know some people who can probably get me there, if needed)

The main reasons are: small package (few pins), modern Cortex M0+, and probably above all, the switch matrix, i.e. the ability to tie the internal peripherals to any of the pins in the package. Once you start putting a chip on a board, and define some headers, it can make a huge difference to be able to re-use those pins in different ways.

The LPC810 is just plain neat IMO, for all its ARM-based capabilities, and I think the gentlest and cheapest way to get into “the world of ARMs”.
I’m also evaluating other chips in the LPC8xx family for future projects (again, not too many pins - and still solderable by hand, just barely).

There are alternatives out there, such as the (huge) STM32 series, but the nice thing is that I can easily move my attention to those later, without losing all of the effort and investment (learning, tools, etc) made so far. The internal peripherals are (very) different, but the rest just carries over - including much of the code, I expect.

As for all the offerings out there - you should see my workplace here. Probably a hundred different ARM boards by now (including STM, Freescale, Cypress, TI, Energy Micro).

RE: Why NXP LPCs? - Added by pbadger about 4 years ago

> I think the gentlest and cheapest way

In the eye of the beholder or code head I guess.


RE: Why NXP LPCs? - Added by reybob about 4 years ago

I agree that the 810 is just a neat chip. So far, the RFM69 code snips appear to be single function-node transmit and base receive. Do you think full bidirectional function can fit in the 4k program space?
I’m a noob at C++, is it common to include code in “.h” files as you have done in “radio.h”?

RE: Why NXP LPCs? - Added by martynj about 4 years ago

The guidance is typically:
* Non-private member templates should be defined in headers, unless they are explicitly instantiated.

RE: Why NXP LPCs? - Added by jcw about 4 years ago

Yes, the RF69’s rx + tx will fit together in the LPC810, probably still under 2 KB. I have working code here.

Running the RFM69 on an LPC810 is mostly a “because we can” experiment for me, also due to the pin limitations, but it’s always good to see where the limits are and what causes them. And I wouldn’t be surprised if the whole thing nevertheless ends up being quite usable, despite the memory and pin constraints.

As Martyn points out, C++ templates usually need to be fully defined in headers because the “template specialisation” happens at compile time: only when the actual class is defined does the compiler know how to generate and optimise code. Templates can easily become very complex, but when used sparingly they do tend to have magical effects.