Difference between revisions of "I2CIO16-DB25"

From Land Boards Wiki
Jump to navigation Jump to search
Line 344: Line 344:
 
=== Run Test Code ===
 
=== Run Test Code ===
  
 +
* Runs [https://github.com/land-boards/RasPiPico/blob/main/PicoMite_MMBASIC/PicoMite_VGA/Land%20Boards%20BASIC%20Programs/lbcards/GPIO16/I2CIO16-DB25.bas I2CIO16-DB25.bas] code
 
* Run on [[PiPicoMite02 Based Test Station]]
 
* Run on [[PiPicoMite02 Based Test Station]]
  

Revision as of 13:30, 20 June 2022

Tindie-mediums.png

I2CIO16-DB25 P18283-720px.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 female
    • Easy/quick to connect/disconnect
    • 16 Digital I/O lines
    • (3) Power, (3) Ground
  • Host connectors
    • Daisy-chain I2C connector
    • Address select jumper
    • I2C base address = 0x20
    • Jumpers allow card to be put at any I2C address in range 0x20-0x27
    • Expandable I2C via I2C-RPT or I2C-RPT-08 - I2C Repeater
      • Maximal example
        • 8 I2C-RPT-08 Multiplexers
        • 8 cards per multiplexer
        • 16 I/O connections per card
        • 1,024 I/O
    • I2C Termination jumpers for end of I2C chain
  • Power can be 3.3V or 5V
  • Easy mounting options
    • Front panel cut-out
    • 6-32 Mounting holes
    • Boards can be stacked with 6-32 standoffs

Connectors

I2CIO16-DB25.PNG

J1 - DB-25 I/O Connector

  • DB-25 female pinout from the front of the card/connector

DB25 F.png

  • Pins 1, 2, 14 are connected to Power
  • Pins 12, 13, 25 are connected to Ground
  • Pins 11, 15, 24 are not used

I2CIO16-DB25 J1.PNG

J2 - I2C Termination

  • Two of two position headers
  • Install headers in each position to terminate I2C line
  • There should only be one set of I2C termination jumpers and termination should be at the end of the I2C daisy-chain
  • Side-by-side horizontal orientation (opposite of Address jumpers orientation)

I2CIO16-DB25 I2C term Jumpers.png

J3 - 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
  1. INT
  2. SCL
  3. SDA
  4. VCC
  5. GND

J4 - Address Select

I2CIO16-DB25 J4.PNG

  • Sets the I2C offset address of the card
  • Install jumper for Ax = 0, remove jumper for Ax = 1
  • Three bit address A1, A2
  1. A0
  2. A1
  3. A2
I2C Address J4(A2) J4(A1) J4(A0)
0x0 In In In
0x1 In In Out
0x2 In Out In
0x3 In Out Out
0x4 Out In In
0x5 Out In Out
0x6 Out Out In
0x7 Out Out Out
  • Jumper orientation

I2CIO16-DB25 I2C addr Jumpers.png

Rear Side Marking

I2CIO16-DB25 REV1 REAR 3D.png

MCP23017 Drivers

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

Arduino Drivers

Raspberry Pi Drivers

Raspberry Pi Pico

MMBASIC

BeagleBone Black Drivers

ESP32 MicroPython Drivers

PyBoard MicroPython Drivers

Linux Drivers

Mechanicals

I2CIO16-DB25 Mechs.PNG

Factory Acceptance Tests

Setup

PiPicoMite02 TestStation Cables P18298-720px.jpg

Ribbon Cable

J1 DB25 I2CIO16 LED-32 J1 DB25 I2CIO16 LED-32
25 1 GND 26 N/C
23 2 GND 24 14 GND
21 3 GP0 D15 22 15 N/C
19 4 GP1 D14 20 16 GP15 D24
17 5 GP2 D13 18 17 GP14 D25
15 6 GP3 D12 16 18 GP13 D26
13 7 GP4 D11 14 19 GP12 D27
11 8 GP5 D10 12 20 GP11 D28
9 9 GP6 D9 10 21 GP10 D29
7 10 GP7 D8 8 22 GP9 D30
5 11 N/C 6 23 GP8 D31
3 12 +3.3V D0 4 24 N/C
1 13 +3.3V D1 2 25 +3.3V D3

Run Test Code

chdir "/lbcards/GPIO16"
load "I2CIO16-DB25.bas"
run
  • Code bounces LED

Issues

Rev 1

  • No issues
  • Card is fully functional

I2CIO16-DB25 Rev 1 Assembly Sheet