Saturday, March 24, 2012

3V to 5V and 5V to 3V logic converters

Here is an adapter for converting up to 4 lines of 5V logic to 3V logic and vice versa.  Using two Texas Instruments SN74AHC125N logic buffers, one running at a 5V and one running at 3V, we have bidirectional converters useful for interfacing circuits running at different voltages.

There are three jumpers.  The top jumper has 5V, ground, and 3V inputs from left to right.  The left 8-port jumper is the inputs and outputs for 5V logic, with the inputs on top and outputs on bottom.  The right 8-port jumper is the 3V logic I/O with the outputs on top and inputs on bottom.  The 5V logic flows from left to right on the top four connections of left and right jumpers, and the 3V logic flows from right to left on the bottom four connections of right and left jumpers.

Careful!  Be sure to read the TI datasheet to review current limits, especially when overdriving the inputs on a 3V chip with 5V inputs.  It is allowed for this chip in the AHC logic family as long as you follow the rules.  This is not guaranteed to work with other families of logic chips.

Testing with 5V and 3.3V
Socket wiring

I/O flow

Monday, March 19, 2012

Arduino Ethernet Shield

Shield shown ready to use with FEZ Panda II and WIZnet module
Here is another Ethernet shield for Arduino.  It mates an Arduino Duemilanove or compatible board with the WIZnet WIZ811MJ module.

This module and shield is compatible with the standard Arduino Ethernet library because it uses the underlying W5100 chip.  It is also compatible with GHI Electronic's FEZ Panda II which runs on Microsoft .NET Micro Framework and includes networking libraries for W5100 compatible boards.

An Arduino style microcontroller must have its SPI lines at D13 (SCK), D12 (MISO), D11 (MOSI) to be compatible with the wiring of this board.  This should include the Arduino UNO, Secret Lab's Netduino, and similar boards.  Other boards may not be compatible.

The benefit of this board is to continue the support the reuse of the WIZ811MJ module by providing a socket.  I can continue to reuse the module with other microcontrollers.  I don't claim any originality in this design.  Others have manufactured similar shields in the past.

Sunday, March 18, 2012


This shield was created to help learn SPI (Serial Peripheral Interface).  The hardware consists of an empty prototype shield for Arduino with a Microchip 25AA1024 EEPROM, jumpers, sockets, LED, switch, and discrete components.

This shield allows an microcontroller to store and retrieve up to 128K bytes of data using SPI at up to 20MHz speed.
The target platform was Microsoft .NET Micro Framework 4.1 as shown mounted on the Netduino Plus, and also demonstrated to work on the FEZ Panda IISource code for the project is posted at github in the form of a class library DLL and test application.  Note this code requires Microsoft .NET Micro Framework APIs and will not work on a standard Arduino.  Many others have written libraries for this chip for Arduino and other platforms.

The large array of jumpers allows configuration of the chip select line to one of digital pins 2-10.  The hold pin is pulled high and socketed to allow for future use, but is not wired to any of the microcontroller's pins.  The WP (write protect) pin is jumpered to allow it to be pulled high (disabled) or pulled low (enabled).  The circuit for the LED and reset switch was already present on the prototype shield.

A possible revision to this circuit would be to add a jumper for choosing 3.3V or 5V operation if it needs to be used with a board that is not 5V tolerant.  The boards I used run at 3.3V but are 5V tolerant. 

Future revisions to the source code could include supporting a wider range of EEPROMs from Microchip, SST, and other manufacturers, and/or porting the code to other platforms including mbed, chipKIT, PIC, and Arduino.

EEPROM Shield Schematic
Under belly of the shield