This project embodies the concept of I2C bus standard. It signifies how important to know the I2C devices and how they will be integrated. There are a lot of innovation can be made using the standard and more people are attracted to get involve in the embedded world professionally or just as hobbyist. The number of I2C devices included in this project may develop new ideas and designs.
The design includes 8-Bit Microchip PIC18F14K22 microcontroller which serves as the master of the I2C bus communication principle. The PCA9547D device is an 8-channel I2C-bus multiplexer with reset that communicates with the I2C devices one at a time. The PCA9500 device is an 8-bit I/O expander with an on-board 2-kbit EEPROM that simplifies the connection of LCD to the multiplexer. The MCP9801-M/MS device is a 2-Wire High-Accuracy Temperature Sensor for temperature monitoring. The 24LC025/ST device is a 2.5V, 2 Kbit Addressable Serial EEPROM (Tape and Reel) with no WP pin for firmware application. The MCP3221A0T-I/OT and TC1321EOATR devices are both for data conversion. The MCP3221A0T-I/OT is a Low Power 12-Bit A/D Converter With I2C Interface and the TC1321EOATR device is a 10-Bit Digital-to-Analog Converter with Two-Wire Interface. The MPL115A1 device is Miniature I2C Digital Barometer for pressure sensing applications. The MCP79400-I/MS is a Battery-Backed I2C™ Real-Time Clock/Calendar with SRAM and Protected EEPROM for applications that includes time. The PCA9530D device is a 2-bit I2C-bus LED SMBus I/O expander optimized for dimming LEDs in 256 discrete steps for Red/Green/Blue (RGB) color mixing and backlight applications. The 2X16 LCD is for display and monitoring application.
The design is very versatile since it opens up ideas to innovate. It is an excellent project for embedded system application. There are a lot of student will be attracted to develop their own design.
Interfacing MCU to various I2C Devices XD - [Link]
Spacewrench over at Dorkbotpdx writes:
This is a rebuild of the TeensyPrime project I built a while ago, using a separate breadboard that’s almost too small (I had to use magnet wire to fit some of the connections) and a microcontroller that’s almost too small. The ATTiny13A is a neat chip: AVR with 1K of flash, 64 bytes of RAM and 64 bytes of EEPROM. I programmed it using a Teensy-2.0-based waldo running Ward Cunningham’s TXTZYME.
The programming for this is actually kind of interesting. Every time you push the button, the AVR retrieves the currently-displayed number (which is stored in EEPROM), and then increments it, clicks the counter, and tests for primality. If the number isn’t prime, it increments and clicks again. When a prime number is reached, it stops and waits for another button press.
TinyPrime project based on ATTiny13A - [Link]
This is another common device people use everyday, in which a circuit drives the motor found in our watches or clocks to determine the time.
The circuit is mainly operated by PCA1462U IC, specially suited for battery-operated quartz-crystal controlled wrist watches. The quartz crystal is used to input an oscillated signal to the PCA1462U IC then produces an output of pulses that drives the stepping motor ON.
The IC used in this circuit is specialized for this application featuring an amplitude regulated 32KHz oscillator, with excellent frequency stability resulting in a high immunity from oscillator-to-leakage currents. The loss of motor steps is not possible because of an on-chip detection on the induced motor voltage, this output is applicable for different types of bipolar stepping motors. This IC also has a very low current consumption; typically 170 nA, and the time calibration of the pulses is electrically programmable and reprogrammable (via EEPROM).
- PCA1462U CMOS integrated circuit
- 1.55V dc power source
- Quartz Crystal Oscillator
- Stepper Motor
Quartz-crystal Controlled Wrist Watch – [Link]
Microchip’s ENC28J60 is a 28-pin, 10BASE-T stand alone Ethernet Controller with on board MAC & PHY, 8 Kbytes of Buffer RAM and an SPI serial interface.
It takes just few components to get the ENC28J60 up and running and connected to a host microprocessor or microcontroller which support the standard SPI interface. Below I have designed a small ENC28J60 module. The ENC28J60 has a operating voltageof 3.3V, but the board is designed to run with 5V supply voltage, i.e. inculdes a 3.3 voltage regulator for the power supply and a 74ACT125 used as level shifter for the control lines. So it can be directly connected to any 5V microcontroller system. Optionally, an I2C EEPROM can be assembled on the board which can be used e.g. to store websites if the board is used in an embedded webserver environment.
ENC28J60 Ethernet Module - [Link]
This project is an Automatic School bell system. Such a system triggers a bell (or operates any other load) at predifined time. In this version some advanced features are introduced. I used PIC18f4520 microcontroller as the brain of the system. RTC1307 IC is used to maintain the clock,date and day with a 3V backup voltage battery. Bell timings are stored in the internal EEPROM of mcu.
Automatic School Bell - [Link]
janw @ instructables.com writes:
A few months ago, I saw an instructable by fjordcarver on how to build a coloursensor with an RGB led and an LDR. It inspired me to try whether I could improve his design.
Here are the things that I wanted:
The sensor should have as few pins as possible.
It should work as a stand-alone device. All calculations should be done on the device.
It should have a triggered mode and a continuous mode.
All parameters should be programmable.
Calibration parameters should be stored in the EEPROM of the microcontroller.
Firmware updates should be made possible
And finally: size does matter ⇒ The smaller the better.
I did choose an smd attiny85 as the brain of the sensor. It has a small footprint but a large enough flash for the calculations. It also has just enough pins for the project (all eight pins are used).instructables.com
Build your own (at)tiny colour sensor - [Link]
Alberto Maccioni posted an update on his multi-chip opensource programmer based on a PIC18F2550. It supports PIC, I2C-SPI-MicroWire EEPROMs, some ATMEL AVRs, and (soon) other devices:
In the last few years, as serial and parallel interfaces have almost disappeared, electronics enthusiasts find even more difficult to program microcontrollers; old time programmers don’t work any more; common solutions include using USB to serial adapters (which can’t accept direct access but only slow API calls), or add-on interface chips, like FTDIxxxx, which appear substantially as serial interfaces and require custom or proprietary drivers. So why not use PIC controllers and their native USB interface? After searching a while I couldn’t find an USB programmer which was at the same time functional, free, and open source, so I decided to design one.
Open Programmer v0.8.x - [Link]
This tiny little breakout board has Microchip’s 24LC512 EEPROM and MCP9802 temperature sensor devices, both of which support I2C protocol. This board can be used for both sensing the ambient temperature and storing it. The MCP9802 is a digital temperature sensor with an user-selectable resolution from 9 to 12 bit. It can measure temperature ranging from -55°C to +125°C and notifies the host microcontroller when the ambient temperature exceeds a user programmed set point through its ALERT output pin. This board allows you to store up to 32000 temperature samples when you use the sensor in high resolution mode (12-bit, 0.0625°C) with each sample stored as two bytes. Raj (from embedded-lab.com) is selling this board for $9.00 on Tindie.
I2C EEPROM plus Temperature Sensor breakout board - [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]
MSC now offers the E520.32 programmable smoke detector IC from Elmos Semiconductor, a device that includes all active electronic components of a network capable smoke detector.
The E520.32 combines a configurable 200 mA driver for the transmitter LED, a high impedance input for the voltage conversion to the receiver diode and a 2-wire bus interface. It is equipped with 4 KByte of flash ROM and 32 Byte of EEPROM. In addition to a wide photo input current range of 1.5nA to 45nA, the device also features a low current consumption of only 88 µA.
Fully programmable smoke detector IC with integrated bus interface - [Link]