Difference between revisions of "DigIO16-I2C"
Jump to navigation
Jump to search
Blwikiadmin (talk | contribs) |
Blwikiadmin (talk | contribs) |
||
(8 intermediate revisions by the same user not shown) | |||
Line 6: | Line 6: | ||
* 16 bit GPIO | * 16 bit GPIO | ||
− | * [ | + | ** [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 16: | 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 64: | Line 68: | ||
=== Arduino === | === Arduino === | ||
− | * [https://github.com/land-boards/lb-Arduino-Code/tree/master/libraries/LandBoards_MCP23017 Driver code] | + | * [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 Example code] | + | * [https://github.com/land-boards/lb-Arduino-Code/tree/master/libraries/LandBoards_MCP23017/examples/PROTO16I2CBlink LandBoards_MCP23017 Example code] |
=== Raspberry Pi === | === Raspberry Pi === | ||
* [https://github.com/land-boards/RasPi/blob/master/RPI-I2C-Hub/RPI-I2C-Hub-2x16/RPI-I2C-Hub-2x16.py Example code] | * [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/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/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
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)
J2, J3 - Daisy-chained I2C Connectors
J4 - Address Base Jumpers
- Install for address bit = 0
J5 - Interrupt/Card Present
J6 - I2C Terminators
J7 - Write Enable Jumper
- Install to enable writes
J8 - DB-25F I/O connector
Schematic
Drivers
Arduino
Raspberry Pi
Raspberry Pi Pico
MMBASIC
- SWLEDX8-01.bas - Read 8x switches, write 8x LEDs
- MMBASIC Example Code - Bounce a bit across the 16-bits (not for use with SWLEDX8 card)