| 8051 The 8051 ("MCS-51") is an 8 bit microcontroller architecture introduced by Intel in the 70's. For all practical purposes, as old as I am. I originally programmed the 8051 derivatives exclusively in assembly, now whenever I need to target an 8051, I generally use SDCC. |
|
![]() Creative Electronic Solutions
|
Unlike some (any?) other 8 bit micros, 8051/2 compatible processors are made by several different companies.
Assemblers, compilers, debuggers, etc, etc, have been around forever. Everybody's saying the ARM is the 8051 of the next century.. I think the 8051 may be the 8051 of the next century, given the fact that manuf's don't need to pay ARM a fee, and there are many special purpose apps that do not require a high-end core. If an 8051 core adds $0.20 to a part, and the ARM core adds $0.25.. guess what'll get used.Regardless of this, I try to avoid the 8051 if there's any > 8 bit math to do at all... I've also had the frustrating experience of running out of direct addressable memory space in an app I thought I could squeeze in. NOT FUN! Even if it's possible to do something with a low end uC, it's often more efficient in programming time to use a bigger hammer.. for me that means C on the TMS2000 series parts or the Cortex M3 ARM.
I have extensive experience with the Analog Devices ADUC parts... they include good very nice A-D converters and DACs and a reference in the part. It's really sold as a A-D/DAC which includes a uC, not the other way around. Fine with me. The DAC/ADC probably take up more silicon on the part than the 8051 core. The other really cool thing about the ADUC parts is that they'll run from one of my favorite components: 34.768kHz watch crystal. Watch xtals are dirt cheap, accurate, reliable, very low power parts! The ADUC also has the ability to keep a realtime clock going and wake up the core at long-term intervals. Nice. Did I mention they've got nice DACs on the part? Yes, you can use a PWM for a DAC.. but, that doesn't work well to observe fast changing signals. In fact, I have used an ADUC814 to do a single-period PWM-to-voltage converter a client requested.
The ADuC processors are in-system programmable using only its
on-board UART. This is good... you can program it using only a serial
port. ADI supplies downloading software, all for use with Windows hosted systems.
To make use of the ADuC's in-system programmability from a Linux hosted tool chain,
I wrote and open sourced a small utility that talks to the chips' download protocol. Karl Hiramoto
added control capability of Reset and Dload over serial control lines in v0.3.
If you're interested, here's the code:
This never got beyond prototype because USB is quite diffcult to galvanically isolate. Future instruments with the need for speed will talk over Ethernet (which is transformer isolated!)