Here is a great article on EDN discussing how to select the right mcu for your project. Jacob Beningo writes:
Selecting the right microcontroller for a product can be a daunting task. Not only are there a number of technical features to consider, there are also business case issues such as cost and lead-times that can cripple a project. At the start of a project there is a great temptation to jump in and start selecting a microcontroller before the details of the system has been hashed out. This is of course a bad idea. Before any thought is given to the microcontroller, the hardware and software engineers should work out the high levels of the system, block diagram and flowchart them and only then is there enough information to start making a rational decision on microcontroller selection. When that point is reached, there are 10 easy steps that can be followed to ensure that the right choice is made.
10 steps to selecting a microcontroller – [Link]
PICkit 2 programmer is open source, so you can build your own:
PICkit 2 was originally built by Microchip as open design programmer with the schematic, source code and firmware available to boost the popularity of the PIC devices. Because of that it is easy to build a clone version of the original device. Most of the clones will produce unregulated 5 volt VPP where the original Microchip PICkit 2 provides adjustable VPP output to allow 3.3 and 2.5 volt parts programming. The schematic I have used is based on the original PICkit 2 without programmer-to-go functionality. That functionality allowing a hex file to be downloaded to the PICkit 2 to later program PIC microcontrollers without a PC with a simple pressing programmer’s push button. I do not think that functionality is required for a hobbyist but allows simplify the schematic by omitting two 24C512 EEPROM chips. The Eagle Files designed using only thru-hole mounting parts.
Build your own PICkit 2 programmer – [Link]
This mini breakout board is designed to simplify prototyping and experimentation work with the popular 18-pin PIC16F series microcontrollers. It is small in size (1.95″ X 0.75″) and is breadboard friendly. It supports PIC16F84A, PIC16F628A, PIC16F88, PIC16F648A, PIC16F1827, PIC16F1847, and other 18-pin microcontrollers in the same series.
Mini breakout board for 18-pin PIC16F series microcontrollers – [Link]
Ronald Willem Besinga writes:
One of the basic usage of the TIMER peripheral on every microcontroller is to provide the accurate timing mechanism. Using the TIMER peripheral as the basic timing, we could easily develop a stopwatch and display it to the 8-Digit seven segment numeric LED display. Thanks to the Maxim MAX7219 chip which enable us to interface this 8-Digit seven segment LED display much easier using just three wires of the SPI (serial peripheral interface) to display the hour, minute, second, and hundredth of seconds to the 8-Digit seven segments LED display.
Build your own stopwatch using Maxim MAX7219 Serially Interfaced, 8-Digit LED Display Drivers – [Link]
When collecting data from a sensor, it wonʼt be very long before you need to calculate some statistics on that data such as the mean and standard deviation. A touch sensor is a good example. Its data may not be very stable and an average needs to be calculated in order to determine a valid touch. Standard deviation is another useful measurement in helping determine the quality of the data gathered.
Because of the very limited memory in microcontrollers, the luxury of storing large data sets is not possible. This article describes a means to collect such a dataset with a very small storage footprint.
Statistics on the Arduino (also Pic or any microcontroller) – [Link]
Texas Instruments has developed a new, free real-time operating system (RTOS) based on a pre-emptive multithreading kernel, which will run on the full portfolio of TI microcontrollers, including dual core devices. TI-RTOS includes a deterministic, real-time multitasking kernel (SYS/BIOS) with a TCP/IP stack, including network applications, USB, EMAC, MMC/SD host and device stacks and class drivers, FAT-compatible file system fully integrated with C RTS file I/O functions and Ethernet, USB, UART, I²C and SD device drivers. It also supports low overhead core-to-core communication mechanism for dual-core devices. [via]
TI Launches RTOS for Microcontrollers – [Link]
MIcrocontroller design course. ECE 4760 deals with microcontrollers as components in electronic design and embedded control. There is a large final project. See also: http://www.youtube.com/playlist?list=PLEB09A7C8641987A8
Full course materials and project documentationare available at: http://people.ece.cornell.edu/land/courses/ece4760/
Lectures from Cornell, Spring 2012 ECE4760 “designing with microcontrollers” – [Link]
embedds.com point us to :
In many microcontroller projects you need to read and write data. It can be reading data from peripheral unit like ADC and writing values to RAM. In other case maybe you need send chunks of data using SPI. Again you need to read it from RAM and constantly write to SPI data register and so on. When you do this using processor – you loose a significant amount of processing time. In order to avoid occupying CPU most advanced microcontrollers have Direct memory Access (DMA) unit. As its name says – DMA does data transfers between memory locations without need of CPU.
Using Direct Memory Access (DMA) in STM23 projects – [Link]
SC-CPU SolderCore Main Board is a complete development platform consisting of an Arduino form-factor microcontroller “CPU” board with a new and exciting software development environment called CoreBASIC. The SC-CPU SolderCore Main Board features a TI LM359D92 Cortex-M3 processor capable of running at clock speeds of up to 80MHz and provides a compact, flexible solution for rapid product development. SolderCore is compatible with a large range of third party plug-in PCBs to expand its capabilities.
- 80MHz ARM Cortex-M3 processor
- 512kB of flash
- 96kB of RAM
- 20 user-programmable I/O pins + 6 power pins; can be programmed to perform alternative functions including
I2C, SPI, UART, PWM, CCP, ADC, QEI, and CAN
- 10/100Mbit Ethernet port
- Micro-AB USB On-The-Go connector
- Spring-loaded microSD card holder
- 2.2mm barrel jack for power supply, 6 – 9V; reverse polarity protected
- Standard Cortex 10-pin JTAG connector
- Two power indicator LEDs
- Five user programmable LEDs
- Reset button
SolderCore CPU with Interactive and Internet-enabled CoreBASIC Interpreter – [Link]
Michael Holachek writes:
The Arduino is a great platform for rapid prototyping because it’s so easy to use, well supported, and has a huge online community. However, sometimes you might want to make a smaller, cheaper, and more minimalistic circuit that can be put into permanent projects. Or, maybe you are wondering how the Arduino works. In any case, you’ll just want the brain of the Arduino: the AVR microcontroller. This chip contains the program that runs the Arduino.
Once you have just the AVR, you might be wondering how to program it. Since you no longer have a USB connection, how do you upload code? It turns out that the Arduino can program AVR chips! Let’s get started.
Programming an AVR with Arduino – [Link]