MCP23008 I/O Expander for PIC10F200
Created: Mar 23, 2017
No description available.
The PIC10F200 is an 8-bit microcontroller that has a high-performance RISC CPU. It has 33 single-word instructions, which are all single-cycle except for the branch instructions. The PIC10F200 has a 12-bit wide instructions and 8-bit wide data path. It has a 9-bit program counter capable of addressing 512 x 12 program memory space, but only the first 256 address locations are physically implemented. The microcontroller have a 16 bytes SRAM, four I/O pins, and one 8-bit timer. It can operate from 2V up to 5.5V with a 4MHz maximum speed.
The PIC10F200 microcontroller is a 6-pin device. Two of its pins are used for powering the device while the other four are I/O pins. There are only three bidirectional I/O pins since one of the four pins is an input-pin only. In this design, an MCP23008 device is used to expand the I/O capability of the PIC10F200 microcontroller. The PIC10F200 acts as a master while the MCP23008 acts as its slaves. The two devices communicate through I2C interface. The MCP23008 have eight bidirectional general purpose I/O pins. It has three hardware address pins which allows up to eight devices to share the same bus. As shown in the circuit, the PIC10F200 and MCP23008 devices connect by shorting the pins of the headers J3 and J7 with a shunt connector. The header J3 connects the I2C buses while J7 connects the power supply of the PIC10F200 to the power supply pins of the MCP23008 device. The headers J4-J6 configure the hardware address of the MCP23008. All pins of the MCP23008 device are connected to the J2 header. If in case the user wants to use the two devices separately, the user can just remove the shunt connectors from the headers J3 and J7. All pins of the PIC10F200 microcontroller are connected to the header J1.
This reference design operates with a 5V power supply and only consumes small current. The MCP23009 GPIO pins are bidirectional, so it can accept inputs or control external devices. The combination of the PIC10F200 and MCP23008 can be used in applications such as controlling DC motors, driving relays, driving LEDs, and other applications that accept logic inputs.