Difference between revisions of "DigIO16-I2C"

From Land Boards Wiki
Jump to navigation Jump to search
 
(16 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
[[File:tindie-mediums.png|link=https://www.tindie.com/products/5160/]]
 +
 
[[File:DigIO16-I2C-X3-CCA-5454-640px.jpg]]
 
[[File:DigIO16-I2C-X3-CCA-5454-640px.jpg]]
  
Line 4: Line 6:
  
 
* 16 bit GPIO
 
* 16 bit GPIO
* [http://ww1.microchip.com/downloads/en/DeviceDoc/20001952C.pdf MCP23017] I2C Parallel I/O
+
** [https://ww1.microchip.com/downloads/aemDocuments/documents/APID/ProductDocuments/DataSheets/MCP23017-Data-Sheet-DS20001952.pdf MCP23017 Datasheet] - Rev D
 +
** [https://hackaday.com/2023/02/03/mcp23017-went-through-shortage-hell-lost-two-inputs/?fbclid=IwAR1ktG1CsU7ns5fmTYXdlpBLdqaJmBioXrVrG1_Lgqe8MTQr1AY4rp6IETU MCP23017... LOST TWO INPUTS]
 +
*** MCP23017 now a 14/16-bit expander, with two of the pins (GPA7 and GPB7) losing their input capabilities
 +
*** The chips look the same, are called the same, and act mostly the same — if you don’t download the latest version of the datasheet (Revision D), you’d never know that there’s been a change
 
** I2C host interface
 
** I2C host interface
 
** 100/400 KHZ operation
 
** 100/400 KHZ operation
 
** 25mA sink/source capability per I/O
 
** 25mA sink/source capability per I/O
* Jumper selectable terminators
+
* Jumper selectable I2C terminators
 
* 3-bit address (Jumper selectable) - Up to 8 boards
 
* 3-bit address (Jumper selectable) - Up to 8 boards
 
* I2C Connector
 
* I2C Connector
Line 14: Line 19:
 
* Power Connector
 
* Power Connector
 
* DB-25 Connector for GPIO lines
 
* DB-25 Connector for GPIO lines
* 24LC024 Personality EEPROM
+
* [https://www.mouser.com/ProductDetail/579-24LC024-P 24LC024] [[Open_Data_Acquisition_System#Personality_EEPROM|ODAS Personality EEPROM]]
 +
** pid = 1
 
* 3.3V or 5V operation
 
* 3.3V or 5V operation
 
* Compatible with Arduino, Raspberry Pi, BeagleBone Black
 
* Compatible with Arduino, Raspberry Pi, BeagleBone Black
Line 22: Line 28:
 
== Connectors ==
 
== Connectors ==
  
== J1 - Power Connector (Optional) ==
+
=== J1 - Power Connector (Optional) ===
  
 
[[File:DIGIO16-I2C-X2-J1-POWER.PNG]]
 
[[File:DIGIO16-I2C-X2-J1-POWER.PNG]]
  
== J2, J3 - Daisy-chained I2C Connectors ==
+
=== J2, J3 - Daisy-chained I2C Connectors ===
  
 
[[File:DIGIO16-I2C-X2-J2-I2C.PNG]]
 
[[File:DIGIO16-I2C-X2-J2-I2C.PNG]]
  
== J4 - Address Base Jumpers ==
+
=== J4 - Address Base Jumpers ===
  
 
* Install for address bit = 0
 
* Install for address bit = 0
Line 36: Line 42:
 
[[File:DIGIO16-I2C-X2-J4-ADR.PNG]]
 
[[File:DIGIO16-I2C-X2-J4-ADR.PNG]]
  
== J5 - Interrupt/Card Present ==
+
=== J5 - Interrupt/Card Present ===
  
 
[[File:DIGIO16-I2C-X2-J5-INT.PNG]]
 
[[File:DIGIO16-I2C-X2-J5-INT.PNG]]
  
== J6 - I2C Terminators ==
+
=== J6 - I2C Terminators ===
  
 
[[File:DIGIO16-I2C-X2-J6-I2C-TERM.PNG]]
 
[[File:DIGIO16-I2C-X2-J6-I2C-TERM.PNG]]
  
== J7 - Write Enable Jumper ==
+
=== J7 - Write Enable Jumper ===
  
 
* Install to enable writes
 
* Install to enable writes
Line 50: Line 56:
 
[[File:DIGIO16-I2C-X2-J7-WR-ENABLE.PNG]]
 
[[File:DIGIO16-I2C-X2-J7-WR-ENABLE.PNG]]
  
== ==
+
=== J8 - DB-25F I/O connector ===
  
 
[[File:DIGIO16-I2C-X2-J8-DIGIO.PNG]]
 
[[File:DIGIO16-I2C-X2-J8-DIGIO.PNG]]
Line 58: Line 64:
 
* [http://land-boards.com/DigIO16-I2C/DigIO16-I2C_X3_Schematic.pdf Schematic]
 
* [http://land-boards.com/DigIO16-I2C/DigIO16-I2C_X3_Schematic.pdf Schematic]
  
== Driver ==
+
== Drivers ==
 +
 
 +
=== Arduino ===
 +
 
 +
* [https://github.com/land-boards/lb-Arduino-Code/tree/master/libraries/LandBoards_MCP23017 LandBoards_MCP23017 Driver code]
 +
* [https://github.com/land-boards/lb-Arduino-Code/tree/master/libraries/LandBoards_MCP23017/examples/PROTO16I2CBlink LandBoards_MCP23017 Example code]
 +
 
 +
=== Raspberry Pi ===
 +
 
 +
* [https://github.com/land-boards/RasPi/blob/master/RPI-I2C-Hub/RPI-I2C-Hub-2x16/RPI-I2C-Hub-2x16.py Example code]
 +
 
 +
=== Raspberry Pi Pico ===
 +
 
 +
==== MMBASIC ====
  
* [https://github.com/land-boards/lb-Arduino-Code/tree/master/libraries/LandBoards_DIGIO16I2C Driver code]
+
* [https://github.com/land-boards/RasPiPico/blob/main/PicoMite_MMBASIC/PicoMite_VGA/Land%20Boards%20BASIC%20Programs/SWLEDX8-01.bas SWLEDX8-01.bas] - Read 8x switches, write 8x LEDs
* [https://github.com/land-boards/lb-Arduino-Code/tree/master/LBCards/DIGIO16I2C Example code]
+
* [https://github.com/land-boards/RasPiPico/blob/main/PicoMite_MMBASIC/PicoMite_VGA/Land%20Boards%20BASIC%20Programs/lbcards/GPIO16-02.bas MMBASIC Example Code] - Bounce a bit across the 16-bits (not for use with [[SWLEDX8]] card)
  
 
== Assembly Sheet ==
 
== Assembly Sheet ==

Latest revision as of 14:44, 4 February 2023

Tindie-mediums.png

DigIO16-I2C-X3-CCA-5454-640px.jpg

Features

  • 16 bit GPIO
    • MCP23017 Datasheet - Rev D
    • MCP23017... LOST TWO INPUTS
      • MCP23017 now a 14/16-bit expander, with two of the pins (GPA7 and GPB7) losing their input capabilities
      • The chips look the same, are called the same, and act mostly the same — if you don’t download the latest version of the datasheet (Revision D), you’d never know that there’s been a change
    • I2C host interface
    • 100/400 KHZ operation
    • 25mA sink/source capability per I/O
  • Jumper selectable I2C terminators
  • 3-bit address (Jumper selectable) - Up to 8 boards
  • I2C Connector
    • Daisy-chained 4-pin host interface connector (Ground, Power, Clock, Data)
  • Power Connector
  • DB-25 Connector for GPIO lines
  • 24LC024 ODAS Personality EEPROM
    • pid = 1
  • 3.3V or 5V operation
  • Compatible with Arduino, Raspberry Pi, BeagleBone Black
  • 95x95mm form factor
  • (4) 6-32 mounting holes - one on each corner

Connectors

J1 - Power Connector (Optional)

DIGIO16-I2C-X2-J1-POWER.PNG

J2, J3 - Daisy-chained I2C Connectors

DIGIO16-I2C-X2-J2-I2C.PNG

J4 - Address Base Jumpers

  • Install for address bit = 0

DIGIO16-I2C-X2-J4-ADR.PNG

J5 - Interrupt/Card Present

DIGIO16-I2C-X2-J5-INT.PNG

J6 - I2C Terminators

DIGIO16-I2C-X2-J6-I2C-TERM.PNG

J7 - Write Enable Jumper

  • Install to enable writes

DIGIO16-I2C-X2-J7-WR-ENABLE.PNG

J8 - DB-25F I/O connector

DIGIO16-I2C-X2-J8-DIGIO.PNG

Schematic

Drivers

Arduino

Raspberry Pi

Raspberry Pi Pico

MMBASIC

Assembly Sheet