Difference between revisions of "PROTO16-I2C"

From Land Boards Wiki
Jump to navigation Jump to search
(Created page with "== 16-Bit Digital I/O Card with Prototyping area == File:Proto16-I2C-P1010411-640px.jpg == Features == 16-bit Digital I/O card MCP23017 16-bit I2C I/O Expander Strong l...")
 
Line 5: Line 5:
 
== Features ==
 
== Features ==
  
16-bit Digital I/O card
+
* 16-bit Digital I/O card
MCP23017 16-bit I2C I/O Expander
+
** MCP23017 16-bit I2C I/O Expander
Strong library support for all major microprocessors for MCP23017
+
** Strong library support for all major microprocessors for MCP23017
I2C Interface - Two Wire Interface
+
* I2C Interface - Two Wire Interface
Can run at 400 KHz or faster
+
** Can run at 400 KHz or faster
I/O Connector is inexpensive/standard DB-25
+
* I/O Connector is inexpensive/standard DB-25
Fuse protected power output on DB-25 with jumper bypass
+
** Fuse protected power output on DB-25 with jumper bypass
Large prototyping area
+
* Large prototyping area
Connections at edges to DB-25 and GPIO lines
+
** Connections at edges to DB-25 and GPIO lines
EEPROM for board ID and application specific information
+
* EEPROM for board ID and application specific information
Write Enable jumper protects against accidental writes
+
** Write Enable jumper protects against accidental writes
Open Data Acquisition System (ODAS) form factor (width is 95 mm)
+
* Open Data Acquisition System (ODAS) form factor (width is 95 mm)
Host connectors
+
* Host connectors
Daisy-chain I2C connector
+
** Daisy-chain I2C connector
Address select jumper
+
** Address select jumper
Expandable I2C via I2C-RPT - I2C Repeater
+
** Expandable I2C via I2C-RPT - I2C Repeater
Interrupt out/Card Present
+
** Interrupt out/Card Present
Power connector (not required for minimal loads)
+
** Power connector (not required for minimal loads)
Reversible pinout for safety
+
*** Reversible pinout for safety
I2C Termination jumpers for end of I2C chain
+
** I2C Termination jumpers for end of I2C chain
Power can be 3.3V or 5V
+
* Power can be 3.3V or 5V
95mm wide Open Data Acquisition System format
+
* 95mm wide Open Data Acquisition System format
6-32 Mounting holes
+
* 6-32 Mounting holes
Prototyping Area
 
Large prototyping area
 
Ideal for through-hole ICs
 
Extra I/O Rows on both sides
 
One side connects to DB-25 connector
 
Other side connects to MCP23017 pins
 
Prototyping area in the center of the card with power/ground bus up the middle two pins
 
Easy connection to IC Power/Grounds
 
Silkscreen on both sides of the card
 
PROTO16-protoarea-I2C.PNG
 
  
The above is the top two rows of the prototyping area
+
=== Prototyping Area ===
The pins on the far left are the pin number of the DB-25 connector (ex: Pin 24 is the top left, and pin 11 is in the next row).
+
 
The next 3 pins are bussed across to each other (the same row)
+
* Large prototyping area
The next column has GND in all column positions
+
* Ideal for through-hole ICs
The next column has VCC in all column positions
+
* Extra I/O Rows on both sides
The next 3 pins are bussed across to each other (the same row)
+
** One side connects to DB-25 connector
The far right pin has the DIGIO part connections (blank for the first row and Digital I/O pin 8 in the next point).
+
** Other side connects to MCP23017 pins
Connectors
+
* Prototyping area in the center of the card with power/ground bus up the middle two pins
PROTO16-I2C-cad-bw.png
+
** Easy connection to IC Power/Grounds
 +
* Silkscreen on both sides of the card
 +
 
 +
[[File:PROTO16-protoarea-I2C.PNG]]
 +
 
 +
* The above is the top two rows of the prototyping area
 +
* The pins on the far left are the pin number of the DB-25 connector (ex: Pin 24 is the top left, and pin 11 is in the next row).
 +
* The next 3 pins are bussed across to each other (the same row)
 +
* The next column has GND in all column positions
 +
* The next column has VCC in all column positions
 +
* The next 3 pins are bussed across to each other (the same row)
 +
* The far right pin has the DIGIO part connections (blank for the first row and Digital I/O pin 8 in the next point).
 +
 
 +
== Connectors ==
 +
 
 +
[[File:PROTO16-I2C-cad-bw.png]]
 +
 
 +
=== H1 - Power ===
  
H1 - Power
 
 
Connector is 1x5 of 0.1" header
 
Connector is 1x5 of 0.1" header
 
Connector is reversible
 
Connector is reversible
Line 58: Line 64:
 
PWR
 
PWR
 
GND
 
GND
H2 - Interrupt/Card Present Flag
+
 
 +
=== H2 - Interrupt/Card Present Flag ===
 +
 
 
GND
 
GND
 
INT0*
 
INT0*
 
CARD_PRESENT* (Low if card is present, should be pulled up by Host card)
 
CARD_PRESENT* (Low if card is present, should be pulled up by Host card)
H3 - Address Select
+
 
 +
=== H3 - Address Select ===
 +
 
 
Sets the I2C offset address of the card
 
Sets the I2C offset address of the card
 
Three bit address A1, A2
 
Three bit address A1, A2
Line 68: Line 78:
 
A1
 
A1
 
A2
 
A2
H4 - I2C
+
 
 +
=== H4 - I2C ===
 +
 
 
Connector is 2x5 of 0.1" header
 
Connector is 2x5 of 0.1" header
 
Intended to be used for I2C daisy-chain of 4-pin cabling
 
Intended to be used for I2C daisy-chain of 4-pin cabling
Line 77: Line 89:
 
VCC
 
VCC
 
GND
 
GND
H5 - EEPROM Write Enable
+
 
 +
=== H5 - EEPROM Write Enable ===
 +
 
 
Install to allow writes to EEPROM
 
Install to allow writes to EEPROM
 
Remove to prohibit writes to EEPROM
 
Remove to prohibit writes to EEPROM
H6 I2C Termination
+
 
 +
=== H6 I2C Termination ===
 +
 
 
Two of two position headers
 
Two of two position headers
 
Install headers in each position to terminate I2C line
 
Install headers in each position to terminate I2C line
 
There should only be one I2C termination and it should be at the end of the I2C line
 
There should only be one I2C termination and it should be at the end of the I2C line
J1 - DB-25 I/O Connector
+
 
 +
=== J1 - DB-25 I/O Connector ===
 +
 
 
Pins 1, 2, 14 are connected to Ground
 
Pins 1, 2, 14 are connected to Ground
 
Pins 12, 13, 25 are connected to Power
 
Pins 12, 13, 25 are connected to Power
 
Pins 3-11 and 15-24 are connected to the Prototype area and are labeled on the PCB
 
Pins 3-11 and 15-24 are connected to the Prototype area and are labeled on the PCB
MCP23017 Drivers
+
 
 +
== MCP23017 Drivers ==
 +
 
 
There are quite a I2C drivers for every major microcontroller (Arduino, Raspberry Pi, BeagleBone, etc).
 
There are quite a I2C drivers for every major microcontroller (Arduino, Raspberry Pi, BeagleBone, etc).
Arduino Drivers
+
 
 +
=== Arduino Drivers ===
 +
 
 
Land Boards Arduino Driver Code/Example Software for the PROTO16-I2C Card
 
Land Boards Arduino Driver Code/Example Software for the PROTO16-I2C Card
 
Adafruit MCP23017 Arduino Driver
 
Adafruit MCP23017 Arduino Driver
Raspberry Pi Drivers
+
 
 +
=== Raspberry Pi Drivers ===
 +
 
 
Raspberry Pi WiringPi Driver
 
Raspberry Pi WiringPi Driver
BeagleBone Black Drivers
+
 
 +
=== BeagleBone Black Drivers ===
 +
 
 
BeagleBone Black Example
 
BeagleBone Black Example
ESP32 MicroPython Drivers
+
 
 +
=== ESP32 MicroPython Drivers ===
 +
 
 
MicroPython MCP23017 driver
 
MicroPython MCP23017 driver
 
MicroPython Example code
 
MicroPython Example code
PyBoard MicroPython Drivers
+
 
 +
=== PyBoard MicroPython Drivers ===
 
MicroPython MCP23017 driver
 
MicroPython MCP23017 driver
 
MicroPython Example
 
MicroPython Example
Linux Drivers
+
 
 +
=== Linux Drivers ===
 
Linux Driver source code
 
Linux Driver source code
EEPROM
+
 
 +
== EEPROM ==
 +
 
 
24LC024 EEPROM
 
24LC024 EEPROM
 
2kbit
 
2kbit
Line 114: Line 146:
 
EEPROM has a board ID
 
EEPROM has a board ID
 
ODAS EEPROM Code
 
ODAS EEPROM Code
Factory Acceptance Tests
+
 
 +
== Factory Acceptance Tests ==
 +
 
 
Proto16-I2C-P1010614-720px.jpg
 
Proto16-I2C-P1010614-720px.jpg
  
Setup
+
=== Setup ===
 +
 
 
Runs ODAS Card Test Software on Arduino Nano NANO-BKOUT with I2C-RPT card
 
Runs ODAS Card Test Software on Arduino Nano NANO-BKOUT with I2C-RPT card
 
USB running puTTY
 
USB running puTTY
 
9600 baud
 
9600 baud
Program Personality EEPROM
+
 
 +
=== Program Personality EEPROM ===
 +
 
 
Menu driven
 
Menu driven
 
Auto-detects card
 
Auto-detects card
Line 149: Line 186:
 
Company=land.boards.com
 
Company=land.boards.com
 
Product=PROTO16-I2C
 
Product=PROTO16-I2C
Run I2C Loopback Tests
+
 
 +
=== Run I2C Loopback Tests ===
 +
 
 
Test 'T'
 
Test 'T'
 
Loopback Test PASS = 1, FAIL = 0
 
Loopback Test PASS = 1, FAIL = 0
  
Run Bouncing LEDs
+
=== Run Bouncing LEDs ===
 +
 
 
Select B
 
Select B
 
Bouncing LEDs - any key to stop
 
Bouncing LEDs - any key to stop
Line 159: Line 199:
 
Proto16-I2C-Card-WithPogos-720px-P569.jpg
 
Proto16-I2C-Card-WithPogos-720px-P569.jpg
  
Issues with Rev X1 board
+
== Issues with Rev X1 board ==
 +
 
 
Add A0 jumper for EEPROM and MCP23017
 
Add A0 jumper for EEPROM and MCP23017
 
Verified works in Rev X2 (Kickstarter)
 
Verified works in Rev X2 (Kickstarter)
Assembly Sheet
+
 
 +
== Assembly Sheet ==
 +
 
 +
[[Proto16-I2C Assembly Sheet]]
  
 
== PROTO16-I2C Assembly Sheet ==
 
== PROTO16-I2C Assembly Sheet ==
  
 
[[PROTO16-I2C Assembly Sheet Rev X1]]
 
[[PROTO16-I2C Assembly Sheet Rev X1]]

Revision as of 12:43, 19 January 2020

16-Bit Digital I/O Card with Prototyping area

Proto16-I2C-P1010411-640px.jpg

Features

  • 16-bit Digital I/O card
    • MCP23017 16-bit I2C I/O Expander
    • Strong library support for all major microprocessors for MCP23017
  • I2C Interface - Two Wire Interface
    • Can run at 400 KHz or faster
  • I/O Connector is inexpensive/standard DB-25
    • Fuse protected power output on DB-25 with jumper bypass
  • Large prototyping area
    • Connections at edges to DB-25 and GPIO lines
  • EEPROM for board ID and application specific information
    • Write Enable jumper protects against accidental writes
  • Open Data Acquisition System (ODAS) form factor (width is 95 mm)
  • Host connectors
    • Daisy-chain I2C connector
    • Address select jumper
    • Expandable I2C via I2C-RPT - I2C Repeater
    • Interrupt out/Card Present
    • Power connector (not required for minimal loads)
      • Reversible pinout for safety
    • I2C Termination jumpers for end of I2C chain
  • Power can be 3.3V or 5V
  • 95mm wide Open Data Acquisition System format
  • 6-32 Mounting holes

Prototyping Area

  • Large prototyping area
  • Ideal for through-hole ICs
  • Extra I/O Rows on both sides
    • One side connects to DB-25 connector
    • Other side connects to MCP23017 pins
  • Prototyping area in the center of the card with power/ground bus up the middle two pins
    • Easy connection to IC Power/Grounds
  • Silkscreen on both sides of the card

File:PROTO16-protoarea-I2C.PNG

  • The above is the top two rows of the prototyping area
  • The pins on the far left are the pin number of the DB-25 connector (ex: Pin 24 is the top left, and pin 11 is in the next row).
  • The next 3 pins are bussed across to each other (the same row)
  • The next column has GND in all column positions
  • The next column has VCC in all column positions
  • The next 3 pins are bussed across to each other (the same row)
  • The far right pin has the DIGIO part connections (blank for the first row and Digital I/O pin 8 in the next point).

Connectors

PROTO16-I2C-cad-bw.png

H1 - Power

Connector is 1x5 of 0.1" header Connector is reversible Connector is optional since power can also be brought in via the I2C connector GND PWR GND PWR GND

H2 - Interrupt/Card Present Flag

GND INT0* CARD_PRESENT* (Low if card is present, should be pulled up by Host card)

H3 - Address Select

Sets the I2C offset address of the card Three bit address A1, A2 A0 A1 A2

H4 - I2C

Connector is 2x5 of 0.1" header Intended to be used for I2C daisy-chain of 4-pin cabling Power can be attached to the connector or power can be provided to the card via the J1 power connector May still want to connect ground SCL SDA VCC GND

H5 - EEPROM Write Enable

Install to allow writes to EEPROM Remove to prohibit writes to EEPROM

H6 I2C Termination

Two of two position headers Install headers in each position to terminate I2C line There should only be one I2C termination and it should be at the end of the I2C line

J1 - DB-25 I/O Connector

Pins 1, 2, 14 are connected to Ground Pins 12, 13, 25 are connected to Power Pins 3-11 and 15-24 are connected to the Prototype area and are labeled on the PCB

MCP23017 Drivers

There are quite a I2C drivers for every major microcontroller (Arduino, Raspberry Pi, BeagleBone, etc).

Arduino Drivers

Land Boards Arduino Driver Code/Example Software for the PROTO16-I2C Card Adafruit MCP23017 Arduino Driver

Raspberry Pi Drivers

Raspberry Pi WiringPi Driver

BeagleBone Black Drivers

BeagleBone Black Example

ESP32 MicroPython Drivers

MicroPython MCP23017 driver MicroPython Example code

PyBoard MicroPython Drivers

MicroPython MCP23017 driver MicroPython Example

Linux Drivers

Linux Driver source code

EEPROM

24LC024 EEPROM 2kbit I2C Serial EEPROM Wide Voltage range (1.8V to 5.5V) 400 KHz operating range 10 mS write cycle time EEPROM has a board ID ODAS EEPROM Code

Factory Acceptance Tests

Proto16-I2C-P1010614-720px.jpg

Setup

Runs ODAS Card Test Software on Arduino Nano NANO-BKOUT with I2C-RPT card USB running puTTY 9600 baud

Program Personality EEPROM

Menu driven Auto-detects card If test has been run before Checking EEPROM for board type...Detected PROTO16-I2C board R=Read EEPROM, W=Write EEPROM, T=Test DIGIOs, L=Loop Test, B=Bounce LEDs Presents card type list for un-programmed EEPROMs Checking EEPROM for board type...Company Mismatch Select the board type 1 - DIGIO16-I2C board 2 - DIGIO-128 board 3 - OptoIn8-I2C board 4 - OptoOut8-I2C board 5 - DIGIO32-I2C board 6 - PROTO16-I2C board 7 - ODAS-PSOC5 board 8 - TBD board 9 - TBD board Select board > Select board Select board > 6 Writing EEPROM Initializing eep buffer len of buffer=96 reading block Family=ODAS Company=land.boards.com Product=PROTO16-I2C

Run I2C Loopback Tests

Test 'T' Loopback Test PASS = 1, FAIL = 0

Run Bouncing LEDs

Select B Bouncing LEDs - any key to stop Use LED card Proto16-I2C-Card-WithPogos-720px-P569.jpg

Issues with Rev X1 board

Add A0 jumper for EEPROM and MCP23017 Verified works in Rev X2 (Kickstarter)

Assembly Sheet

Proto16-I2C Assembly Sheet

PROTO16-I2C Assembly Sheet

PROTO16-I2C Assembly Sheet Rev X1