Sometimes we need to extend or add more I/O ports to our microcontroller based project. Because usually we only have a limited I/O port left than the logical choice is to use the serial data transfer method; which usually only requires from one up to four ports for doing the data transfer. Currently there are few types of modern embedded system serial data transfer interface widely supported by most of the chip’s manufactures such as I2C (read as I square C), SPI (Serial Peripheral Interface), 1-Wire (One Wire), Controller Area Network (CAN), USB (Universal Serial Bus) and the RS-232 families (RS-423, RS-422 and RS-485). The last three interface types is used for long connection between the microcontroller and the devices, up to 1200 meters for the RS-485 specification, while the first three is used for short range connection.
Using Serial Peripheral Interface (SPI) Master and Slave with Atmel AVR Microcontroller – [Link]
I2C (read as I Squared C) bus first introduced by Philips in 1980, because of its simplicity and flexibility the I2C bus has become one of the most important microcontroller bus system used for interfacing various IC-devices with the microcontroller. The I2C bus use only 2 bidirectional data lines for communicating with the microcontroller and the I2C protocol specification can support up to 128 devices attached to the same bus. Today many I2C IC-devices available on the market such as Serial EEPROM, I/O Expander, Real-Time Clock, Digital to Analog Converter, Analog to Digital Converter, Temperature Sensor and many more.
How to use I2C-bus on the Atmel AVR Microcontroller – [Link]
Atmel has announced their AVR Xplained series of dev boards.
Atmel AVR Xplained is a series small-sized and easy-to-use evaluation kits for 8- and 32-bit AVR microcontrollers. It consists of a series of low cost MCU boards for evaluation and demonstration of feature and capabilities of different AVR familie. Example projects and code drivers are provided in AVR Studio 5. Code functionality is easily added by pulling in additional drivers and libraries from the AVR Software Framework.
The AVR Xplained series also consists of a range of add-on boards that can be stacked on the MCU boards to create platforms for specific application development. A wide range of add-on boards is available, including, intertial pressure and temperature sensors, ZigBee RF, and Cryptographic authentication.
List price for MCU boards is around $30, with sensor modules between $25-54.
Details on features and availability are available from Atmel.
Atmel AVR Xplained dev boards – [Link]
Here is a complete tutorial in 9 easy steps for programming ATtiny chips from Atmel using an Arduino. Fills in missing pieces from other online guides
Program an ATtiny Using an Arduino - [Link]
In this two series of tutorial, we will provides you with the information on the tools and the basic steps that are involved in using the C programming language for the Atmel AVR microcontrollers. It is intended for people who are new to this type of microcontrollers. The AVRJazz Mega168 board will be use in this tutorial, however this information could be applied to other AVR family as well.
The Atmel ATTiny85 chip is an 8-pin MCU that is totally awesome. If you’ve been programming with the bigger boys (the ATMega series), these are a nice adventure – you’re rather limited in the number of output pins, but a creative design gives us a lot of flexibility in a very small package.
Apple-style LED pulsing using a $1.30 MCU – [Link]
rbw writes – [via]
Pulse Width Modulation (PWM) is a technique widely used in modern switching circuit to control the amount of power given to the electrical device. This method simply switches ON and OFF the power supplied to the electrical device rapidly. The average amount of energy received by the electrical device is corresponding to the ON and OFF period (duty cycle); therefore by varying the ON period i.e. longer or shorter, we could easily control the amount of energy received by the electrical device. The Light Emitting Diode (LED) will respond to this pulse by dimming or brighten its light while the electrical motor will respond to this pulse by turning its rotor slow or fast.
Working with Atmel AVR Microcontroller Basic Pulse Width Modulation (PWM) - [Link]
Some time ago I published a short tutorial concerning the use of the internal EEPROM belonging to the Atmel ATmega328 (etc.) microcontroller in our various Arduino boards. Although making use of the EEPROM is certainly useful, it has a theoretical finite lifespan – according to the Atmel data sheet (download .pdf) it is 100,000 write/erase cycles.
One of my twitter followers asked me “is that 100,000 uses per address, or the entire EEPROM?” – a very good question. So in the name of wanton destruction I have devised a simple way to answer the question of EEPROM lifespan. We will write the number 170 (10101010 in binary) to each EEPROM address, then read each EEPROM address to check the stored number. The process is then repeated by writing the number 85 (01010101 in binary) to each address and then checking it again. The two binary numbers were chosen to ensure each bit in an address has an equal number of state changes.
After both of the processes listed above has completed, then the whole lot repeats. The process is halted when an incorrectly stored number is read from the EEPROM – the first failure. At this point the number of cycles, start and end time data are shown on the LCD.
The result? 1,230,163 write/read cycles (per address) before failure. That’s an order of magnitude+ beyond Atmel’s specs, though Atmel does tend to be conservative with their numbers.
EEPROM Destroyer - [Link]
Some time previous to getting my ham license, I was at a friends house who showed me an LC (inductance) meter built from a kit. It was based on a PIC16C22A, and I certainly do like the PIC mcu’s, but decided I would embark on the task of re-engineering my own that uses an Atmel AVR chip, the Atmega168. It’s been a journey. Also, I am giving away for free the schematics, firmware, and source code as open source under the GPL.
Inductance meter - [Link]