From c7957c5fff5d87347197ea9a3b79695ab89288c3 Mon Sep 17 00:00:00 2001 From: GreenyHub Date: Mon, 18 May 2026 10:28:42 +0200 Subject: [PATCH 1/9] Added PCAL6416A documentation files --- ...o expander pcal6416a breakout_arduino_1.md | 43 ++++++ ...o expander pcal6416a breakout_arduino_2.md | 7 + ...der pcal6416a breakout_hardware_details.md | 129 ++++++++++++++++++ ...xpander pcal6416a breakout_how_it_works.md | 78 +++++++++++ ...io expander pcal6416a breakout_overview.md | 35 +++++ 5 files changed, 292 insertions(+) create mode 100644 soldered-documentation/docs/communication/gpio expander pcal6416a breakout/arduino_library/gpio expander pcal6416a breakout_arduino_1.md create mode 100644 soldered-documentation/docs/communication/gpio expander pcal6416a breakout/arduino_library/gpio expander pcal6416a breakout_arduino_2.md create mode 100644 soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_hardware_details.md create mode 100644 soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_how_it_works.md create mode 100644 soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_overview.md diff --git a/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/arduino_library/gpio expander pcal6416a breakout_arduino_1.md b/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/arduino_library/gpio expander pcal6416a breakout_arduino_1.md new file mode 100644 index 00000000..1add9739 --- /dev/null +++ b/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/arduino_library/gpio expander pcal6416a breakout_arduino_1.md @@ -0,0 +1,43 @@ +--- +slug: /gpio expander pcal6416a breakout/arduino/geting-started +title: PCAL6416A - Getting started +sidebar_label: Getting started +id: gpio expander pcal6416a breakout-arduino-1 +hide_title: False +--- + +## Arduino library + +To install the Arduino library, you can use the **Arduino library manager** or download it from the GitHub repository: + + + + +**Are you a first-time Arduino user?** For a detailed tutorial on getting started with Arduino, refer to this section of our docs: + + + + + +--- + +## Connections + +Below is an example connection diagram for **Dasduino CONNECTPLUS**. These pins will be used in the examples throughout this documentation. + +| **Dasduino CONNECTPLUS** | **Breakout Board** | +| ------------------------ | ------------------ | +| Qwiic | Qwiic | + + + +[placeholder title] +{/*pin connectioni za nulu*/} diff --git a/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/arduino_library/gpio expander pcal6416a breakout_arduino_2.md b/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/arduino_library/gpio expander pcal6416a breakout_arduino_2.md new file mode 100644 index 00000000..468263a8 --- /dev/null +++ b/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/arduino_library/gpio expander pcal6416a breakout_arduino_2.md @@ -0,0 +1,7 @@ +--- +slug: /gpio expander pcal6416a breakout/arduino/examples +title: PCAL6416A - ReadWrite +sidebar_label: ReadWrite +id: gpio expander pcal6416a breakout-arduino-2 +hide_title: False +--- diff --git a/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_hardware_details.md b/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_hardware_details.md new file mode 100644 index 00000000..a56946b1 --- /dev/null +++ b/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_hardware_details.md @@ -0,0 +1,129 @@ +--- +slug: /gpio expander pcal6416a breakout/hardware +title: PCAL6416A -Hardware details +sidebar_label: Overview +id: gpio expander pcal6416a breakout-hardware +hide_title: False +--- + +## Pinout + +[image placeholder] +{/*pcal6416a pinout*/} +--- + +## Pin Details + +| **Pin Marking** | **Pin Name** | **Description** | +|-----------------|----------------------|---------------------------------------------------------------------------------| +| **INT** | Interrupt Output | Active-low interrupt output from the PCAL6416A used to notify the MCU of input changes. | +| **RES** | Reset | Hardware reset pin for the PCAL6416A. Pull low to reset the device. | +| **B7** | GPIO Port B7 | General-purpose input/output pin from Port B. | +| **B6** | GPIO Port B6 | General-purpose input/output pin from Port B. | +| **B5** | GPIO Port B5 | General-purpose input/output pin from Port B. | +| **B4** | GPIO Port B4 | General-purpose input/output pin from Port B. | +| **B3** | GPIO Port B3 | General-purpose input/output pin from Port B. | +| **B2** | GPIO Port B2 | General-purpose input/output pin from Port B. | +| **B1** | GPIO Port B1 | General-purpose input/output pin from Port B. | +| **B0** | GPIO Port B0 | General-purpose input/output pin from Port B. | +| **A0** | GPIO Port A0 | General-purpose input/output pin from Port A. | +| **A1** | GPIO Port A1 | General-purpose input/output pin from Port A. | +| **A2** | GPIO Port A2 | General-purpose input/output pin from Port A. | +| **A3** | GPIO Port A3 | General-purpose input/output pin from Port A. | +| **A4** | GPIO Port A4 | General-purpose input/output pin from Port A. | +| **A5** | GPIO Port A5 | General-purpose input/output pin from Port A. | +| **A6** | GPIO Port A6 | General-purpose input/output pin from Port A. | +| **A7** | GPIO Port A7 | General-purpose input/output pin from Port A. | +| **SCL** | I2C Clock | Clock line for I2C communication. | +| **SDA** | I2C Data | Data line for I2C communication. | +| **5V** | Supply Voltage | Main power input for the board. | +| **GND** | Ground | Common ground reference for the board and connected devices. | + + + +- **GPIO Channels**: 16 total GPIO pins (Port A and Port B) +- **Communication Interface**: I2C +- **Operating Voltage**: 3.3V logic compatible +- **Interrupt Support**: Active-low interrupt output available on INT pin + + + + + +Ensure that the supply voltage and I2C logic levels are compatible with your microcontroller before connecting the board. Always connect GND between devices to establish a common signal reference. + + + + + + +--- + +## Jumper Details + +[placeholder] +{/*jumper detalji*/} + +## Dimensions + +- **Board Dimensions:** 22 × 38 mm (0.9 × 1.5 inch) +- **Header Pin Holes:** 1.5 mm +- **Screw Holes:** Designed for M3 screws (3.2 mm diameter) +- Soldered boards are LEGO-compatible! 🧱 + +--- + +## Hardware repository + +Schematics, KiCad files, Gerber files, and more can be found in the GitHub repository: + +[link placeholder] +{/*github link za hardware*/} + +The hardware repository contains everything you need to understand, modify, or manufacture the board. The different output folders are versioned. You can check which board version you have specifically by finding the version mark on the PCB. + +Below is an overview of the available files. + +#### CAD files + +We use KiCad, an open-source PCB design tool. You can open and edit the `.kicad_pro` project file, which includes both the schematic and PCB layout. + +The `PANEL` files are used internally for production. + +#### Schematic + +The **OUTPUTS** folder contains the **schematic** in `.pdf` format, exported from KiCad. + +#### BOM (Bill of Materials) + +The bill of materials (BOM) is provided in two formats: + +- A **standard `.csv` table**, listing all components, part numbers, and values. +- An **interactive BOM (`.html`)** that visually highlights each component on the PCB, making it easy to locate and reference parts. + +#### 3D files + +A **3D model** of the PCB is available in `.step` format, allowing you to inspect the board design in CAD software. + +#### Gerber files + +Gerber files are essential for PCB manufacturing, as they contain precise instructions for each layer of the board. The repository includes standard Gerber outputs in a .zip file, such as: + +- **Copper layers** (`.Cu.gbr`) – Defines the traces and pads on the board. +- **Solder mask layers** (`.Mask.gbr`) – Specifies the protective solder mask. +- **Silkscreen layers** (`.Silkscreen.gbr`) – Contains text and component markings. +- **Paste layers** (`.Paste.gbr`) – Used for stencil fabrication in SMD assembly. +- **Drill files** (`.drl`) – Provides drilling coordinates for vias and holes. +- **Board outline** (`.Edge_Cuts.gbr`) – Defines the shape of the PCB. +- **Gerber job file** (`.gbrjob`) – Describes the set of Gerber files used for production. + +These files are ready for fabrication and can be used in PCB manufacturing. + +#### Compliance + +The **Compliance** section includes important regulatory and safety documentation for this product. These files ensure compliance with relevant industry standards and legal requirements. + +- **CE** – Certification document confirming compliance with EU safety, health, and environmental requirements. +- **UKCA** – UKCA (UK Conformity Assessed) certification for the UK market. +- **Safety Instructions** – Safety guidelines and precautions in English and German. +- **Info.txt** – Contains product details such as SKU, country of origin, HS tariff code, and barcode. \ No newline at end of file diff --git a/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_how_it_works.md b/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_how_it_works.md new file mode 100644 index 00000000..91d9a654 --- /dev/null +++ b/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_how_it_works.md @@ -0,0 +1,78 @@ +--- +slug: /gpio expander pcal6416a breakout/how-it-works +title: PCAL6416A - How it works +sidebar_label: How it works +id: gpio expander pcal6416a breakout-how-it-works +hide_title: False +--- + +The **PCAL6416A** is a low-voltage translating 16-bit I²C-bus/SMBus I/O expander that provides flexible GPIO expansion and voltage-level translation for microcontroller systems in a compact package, manufactured by [**NXP Semiconductors**](https://www.nxp.com/products/PCAL6416A). + +[placeholder image] +{/*slika pcal6416a na boardu*/} + +--- + +## Datasheet + +For an in-depth look at technical specifications, refer to the official PCAL6416A Datasheet: + + + +--- + +## How it works + +The **PCAL6416A GPIO Expander Breakout Board** acts like an extension for your microcontroller’s GPIO pins. Instead of directly connecting peripherals to the microcontroller, communication is handled through the **I2C interface** using the onboard **PCAL6416A chip**. The chip manages all GPIO operations internally and allows each pin to be individually configured as an input or output. :contentReference{index=1} + +Main points: + +* The **I2C-bus interface** uses only the **SDA** and **SCL** lines for communication with the host microcontroller. :contentReference{index=2} +* It provides **16 programmable GPIO pins** divided into two 8-bit ports (**P0_0 to P0_7** and **P1_0 to P1_7**). :contentReference{index=3} +* Built-in **voltage-level translation** allows communication between devices operating at different voltages such as **1.8V, 2.5V, 3.3V, and 5V**. :contentReference{index=4} +* Each GPIO pin can independently function as either an **input** or an **output** using the configuration registers. :contentReference{index=5} +* The board includes an **interrupt output (INT)** that alerts the microcontroller whenever an input state changes. :contentReference{index=6} +* Supports programmable **pull-up/pull-down resistors**, **input latching**, **interrupt masking**, and configurable **push-pull or open-drain outputs**. :contentReference{index=7} + +Plus, the PCAL6416A features ESD protection, programmable drive strength, and 25mA output sink capability for directly driving LEDs. + +--- + +## Enable and Disable + +Device is powered when the VDD(I2C-bus) and VDD(P) pins are connected to valid power sources. + +The PCAL6416A operates whenever stable supply voltages are applied. The chip uses two separate power rails: + +* **VDD(I2C-bus)** powers the I2C communication interface. +* **VDD(P)** powers the GPIO port circuitry. + +This dual-supply design enables automatic voltage-level translation between the I2C bus and GPIO pins. :contentReference{index=8} + +At power-on, all GPIO pins are automatically configured as **inputs** for safe startup operation. :contentReference{index=9} + +--- + +## How to Connect It? + +* **Connect Power**: + * Connect the **VDD(I2C-bus)** pin to the logic voltage of your microcontroller’s I2C bus. + * Connect the **VDD(P)** pin to the voltage required by the GPIO peripherals. + * Connect the **VSS/GND** pin to the common ground. + +* **Connect the I2C Bus**: + * Connect the **SDA** pin to the SDA line of your microcontroller. + * Connect the **SCL** pin to the SCL line of your microcontroller. + * Add pull-up resistors to SDA and SCL if they are not already present on the bus. :contentReference{index=10} + +* **Optional Pins**: + * Connect the **INT** pin to a microcontroller interrupt input if interrupt functionality is required. + * Connect the **RESET** pin to your microcontroller or pull it up to VDD(I2C-bus) for normal operation. + * Configure the **ADDR** pin to set the I2C address and allow multiple devices on the same bus. :contentReference{index=11} + + +This breakout board is ideal for adding extra GPIO pins to embedded systems, controlling LEDs, reading buttons and sensors, handling interrupts, and interfacing devices operating at different voltage levels. \ No newline at end of file diff --git a/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_overview.md b/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_overview.md new file mode 100644 index 00000000..cbfff013 --- /dev/null +++ b/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_overview.md @@ -0,0 +1,35 @@ +--- +slug: /gpio expander pcal6416a breakout/overview +title: PCAL6416S - Overview +sidebar_label: Overview +id: gpio expander pcal6416a breakout-overview +hide_title: False +pagination_prev: null +--- + +## PCAL6416A I/O Expander + +The **PCAL6416A** is a powerful and flexible **16-bit I²C-bus/SMBus GPIO expander** designed for adding extra digital input/output pins to microcontrollers and embedded systems. Developed by **NXP Semiconductors**, this device provides reliable GPIO expansion with advanced features such as **interrupt support**, **programmable pull-up/pull-down resistors**, **input latching**, and **voltage-level translation** between different logic levels. :contentReference[oaicite:0]{index=0} + +The PCAL6416A communicates over the **I²C interface** and is ideal for applications requiring additional GPIOs, LED control, button monitoring, sensors, and other peripheral interfacing while minimizing the number of microcontroller pins used. + +[image placeholder] +{/*slika pcal6416a*/} +--- + +## Which product is this documentation for? + +[link placeholder - webstore link] +{/*link za webstranicu*/} +--- + +## Key Features + +* **16 GPIO Pins**: Provides 16 programmable input/output pins divided into two 8-bit ports. :contentReference{index=1} +* **I²C Communication**: Uses a standard **I²C-bus/SMBus interface** with support for Fast-mode operation up to **400 kHz**. :contentReference{index=2} +* **Wide Operating Voltage Range**: Operates from **1.65V to 5.5V**, compatible with both low-voltage and 5V systems. :contentReference{index=3} +* **Voltage-Level Translation**: Allows communication between devices operating at different logic voltages. :contentReference{index=4} +* **Interrupt Output (INT)**: Open-drain interrupt pin notifies the microcontroller when an input changes state. :contentReference{index=5} +* **Configurable Pull-Up/Pull-Down Resistors**: Internal 100 kΩ pull-up or pull-down resistors can be enabled individually for each pin. :contentReference{index=6} +* **Low Power Consumption**: Typical standby current as low as **1 µA to 1.5 µA**. :contentReference{index=7} +* **LED Driving Capability**: Each output pin can sink up to **25 mA**, making it suitable for directly driving LEDs. :contentReference{index=8} \ No newline at end of file From 22c4c78349e0d86822b9ba06fa021daa06eb4189 Mon Sep 17 00:00:00 2001 From: GreenyHub Date: Mon, 18 May 2026 10:59:25 +0200 Subject: [PATCH 2/9] update --- ...xpander pcal6416a breakout_how_it_works.md | 22 +++++++++---------- ...io expander pcal6416a breakout_overview.md | 18 +++++++-------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_how_it_works.md b/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_how_it_works.md index 91d9a654..36f23dcf 100644 --- a/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_how_it_works.md +++ b/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_how_it_works.md @@ -27,16 +27,16 @@ For an in-depth look at technical specifications, refer to the official PCAL6416 ## How it works -The **PCAL6416A GPIO Expander Breakout Board** acts like an extension for your microcontroller’s GPIO pins. Instead of directly connecting peripherals to the microcontroller, communication is handled through the **I2C interface** using the onboard **PCAL6416A chip**. The chip manages all GPIO operations internally and allows each pin to be individually configured as an input or output. :contentReference{index=1} +The **PCAL6416A GPIO Expander Breakout Board** acts like an extension for your microcontroller’s GPIO pins. Instead of directly connecting peripherals to the microcontroller, communication is handled through the **I2C interface** using the onboard **PCAL6416A chip**. The chip manages all GPIO operations internally and allows each pin to be individually configured as an input or output. Main points: -* The **I2C-bus interface** uses only the **SDA** and **SCL** lines for communication with the host microcontroller. :contentReference{index=2} -* It provides **16 programmable GPIO pins** divided into two 8-bit ports (**P0_0 to P0_7** and **P1_0 to P1_7**). :contentReference{index=3} -* Built-in **voltage-level translation** allows communication between devices operating at different voltages such as **1.8V, 2.5V, 3.3V, and 5V**. :contentReference{index=4} -* Each GPIO pin can independently function as either an **input** or an **output** using the configuration registers. :contentReference{index=5} -* The board includes an **interrupt output (INT)** that alerts the microcontroller whenever an input state changes. :contentReference{index=6} -* Supports programmable **pull-up/pull-down resistors**, **input latching**, **interrupt masking**, and configurable **push-pull or open-drain outputs**. :contentReference{index=7} +* The **I2C-bus interface** uses only the **SDA** and **SCL** lines for communication with the host microcontroller. +* It provides **16 programmable GPIO pins** divided into two 8-bit ports (**P0_0 to P0_7** and **P1_0 to P1_7**). +* Built-in **voltage-level translation** allows communication between devices operating at different voltages such as **1.8V, 2.5V, 3.3V, and 5V**. +* Each GPIO pin can independently function as either an **input** or an **output** using the configuration registers. +* The board includes an **interrupt output (INT)** that alerts the microcontroller whenever an input state changes. +* Supports programmable **pull-up/pull-down resistors**, **input latching**, **interrupt masking**, and configurable **push-pull or open-drain outputs**. Plus, the PCAL6416A features ESD protection, programmable drive strength, and 25mA output sink capability for directly driving LEDs. @@ -51,9 +51,9 @@ The PCAL6416A operates whenever stable supply voltages are applied. The chip use * **VDD(I2C-bus)** powers the I2C communication interface. * **VDD(P)** powers the GPIO port circuitry. -This dual-supply design enables automatic voltage-level translation between the I2C bus and GPIO pins. :contentReference{index=8} +This dual-supply design enables automatic voltage-level translation between the I2C bus and GPIO pins. -At power-on, all GPIO pins are automatically configured as **inputs** for safe startup operation. :contentReference{index=9} +At power-on, all GPIO pins are automatically configured as **inputs** for safe startup operation. --- @@ -67,12 +67,12 @@ At power-on, all GPIO pins are automatically configured as **inputs** for safe s * **Connect the I2C Bus**: * Connect the **SDA** pin to the SDA line of your microcontroller. * Connect the **SCL** pin to the SCL line of your microcontroller. - * Add pull-up resistors to SDA and SCL if they are not already present on the bus. :contentReference{index=10} + * Add pull-up resistors to SDA and SCL if they are not already present on the bus. * **Optional Pins**: * Connect the **INT** pin to a microcontroller interrupt input if interrupt functionality is required. * Connect the **RESET** pin to your microcontroller or pull it up to VDD(I2C-bus) for normal operation. - * Configure the **ADDR** pin to set the I2C address and allow multiple devices on the same bus. :contentReference{index=11} + * Configure the **ADDR** pin to set the I2C address and allow multiple devices on the same bus. This breakout board is ideal for adding extra GPIO pins to embedded systems, controlling LEDs, reading buttons and sensors, handling interrupts, and interfacing devices operating at different voltage levels. \ No newline at end of file diff --git a/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_overview.md b/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_overview.md index cbfff013..aa2e9b0c 100644 --- a/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_overview.md +++ b/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_overview.md @@ -9,7 +9,7 @@ pagination_prev: null ## PCAL6416A I/O Expander -The **PCAL6416A** is a powerful and flexible **16-bit I²C-bus/SMBus GPIO expander** designed for adding extra digital input/output pins to microcontrollers and embedded systems. Developed by **NXP Semiconductors**, this device provides reliable GPIO expansion with advanced features such as **interrupt support**, **programmable pull-up/pull-down resistors**, **input latching**, and **voltage-level translation** between different logic levels. :contentReference[oaicite:0]{index=0} +The **PCAL6416A** is a powerful and flexible **16-bit I²C-bus/SMBus GPIO expander** designed for adding extra digital input/output pins to microcontrollers and embedded systems. Developed by **NXP Semiconductors**, this device provides reliable GPIO expansion with advanced features such as **interrupt support**, **programmable pull-up/pull-down resistors**, **input latching**, and **voltage-level translation** between different logic levels. The PCAL6416A communicates over the **I²C interface** and is ideal for applications requiring additional GPIOs, LED control, button monitoring, sensors, and other peripheral interfacing while minimizing the number of microcontroller pins used. @@ -25,11 +25,11 @@ The PCAL6416A communicates over the **I²C interface** and is ideal for applicat ## Key Features -* **16 GPIO Pins**: Provides 16 programmable input/output pins divided into two 8-bit ports. :contentReference{index=1} -* **I²C Communication**: Uses a standard **I²C-bus/SMBus interface** with support for Fast-mode operation up to **400 kHz**. :contentReference{index=2} -* **Wide Operating Voltage Range**: Operates from **1.65V to 5.5V**, compatible with both low-voltage and 5V systems. :contentReference{index=3} -* **Voltage-Level Translation**: Allows communication between devices operating at different logic voltages. :contentReference{index=4} -* **Interrupt Output (INT)**: Open-drain interrupt pin notifies the microcontroller when an input changes state. :contentReference{index=5} -* **Configurable Pull-Up/Pull-Down Resistors**: Internal 100 kΩ pull-up or pull-down resistors can be enabled individually for each pin. :contentReference{index=6} -* **Low Power Consumption**: Typical standby current as low as **1 µA to 1.5 µA**. :contentReference{index=7} -* **LED Driving Capability**: Each output pin can sink up to **25 mA**, making it suitable for directly driving LEDs. :contentReference{index=8} \ No newline at end of file +* **16 GPIO Pins**: Provides 16 programmable input/output pins divided into two 8-bit ports. +* **I²C Communication**: Uses a standard **I²C-bus/SMBus interface** with support for Fast-mode operation up to **400 kHz**. +* **Wide Operating Voltage Range**: Operates from **1.65V to 5.5V**, compatible with both low-voltage and 5V systems. +* **Voltage-Level Translation**: Allows communication between devices operating at different logic voltages. +* **Interrupt Output (INT)**: Open-drain interrupt pin notifies the microcontroller when an input changes state. +* **Configurable Pull-Up/Pull-Down Resistors**: Internal 100 kΩ pull-up or pull-down resistors can be enabled individually for each pin. +* **Low Power Consumption**: Typical standby current as low as **1 µA to 1.5 µA**. +* **LED Driving Capability**: Each output pin can sink up to **25 mA**, making it suitable for directly driving LEDs. \ No newline at end of file From 675687c6ec54be9356bf8e012cb80fecb59dc952 Mon Sep 17 00:00:00 2001 From: GreenyHub Date: Mon, 18 May 2026 14:58:47 +0200 Subject: [PATCH 3/9] update --- ...o expander pcal6416a breakout_arduino_2.md | 7 - ...o expander pcal6416a breakout_arduino_1.md | 2 +- ...o expander pcal6416a breakout_arduino_2.md | 56 ++++++++ ...o expander pcal6416a breakout_arduino_3.md | 130 ++++++++++++++++++ ...o expander pcal6416a breakout_arduino_4.md | 67 +++++++++ ...der pcal6416a breakout_hardware_details.md | 43 +++++- ...xpander pcal6416a breakout_how_it_works.md | 7 +- ...io expander pcal6416a breakout_overview.md | 7 +- soldered-documentation/sidebars.js | 41 ++++++ .../static/img/pcal6416a/PCAL6416A.jpg | Bin 0 -> 904926 bytes .../static/img/pcal6416a/PCAL6416A_Pinout.png | Bin 0 -> 487205 bytes .../static/img/pcal6416a/PCAL6416A_base.jpg | Bin 0 -> 1043086 bytes .../static/img/pcal6416a/PCAL6416A_chip.jpg | Bin 0 -> 148195 bytes .../static/img/pcal6416a/ReadWrite.JPG | Bin 0 -> 4430596 bytes .../static/img/pcal6416a/ReadWrite_test.png | Bin 0 -> 50359 bytes .../static/img/pcal6416a/jp1.jpg | Bin 0 -> 146785 bytes .../static/img/pcal6416a/jp2.jpg | Bin 0 -> 146609 bytes .../static/img/pcal6416a/jp3.jpg | Bin 0 -> 146791 bytes .../static/img/pcal6416a/jp4.jpg | Bin 0 -> 146702 bytes .../static/img/pcal6416a/jp5.jpg | Bin 0 -> 146720 bytes 20 files changed, 337 insertions(+), 23 deletions(-) delete mode 100644 soldered-documentation/docs/communication/gpio expander pcal6416a breakout/arduino_library/gpio expander pcal6416a breakout_arduino_2.md rename soldered-documentation/docs/communication/{gpio expander pcal6416a breakout => pcal6416a}/arduino_library/gpio expander pcal6416a breakout_arduino_1.md (97%) create mode 100644 soldered-documentation/docs/communication/pcal6416a/arduino_library/gpio expander pcal6416a breakout_arduino_2.md create mode 100644 soldered-documentation/docs/communication/pcal6416a/arduino_library/gpio expander pcal6416a breakout_arduino_3.md create mode 100644 soldered-documentation/docs/communication/pcal6416a/arduino_library/gpio expander pcal6416a breakout_arduino_4.md rename soldered-documentation/docs/communication/{gpio expander pcal6416a breakout => pcal6416a}/gpio expander pcal6416a breakout_hardware_details.md (78%) rename soldered-documentation/docs/communication/{gpio expander pcal6416a breakout => pcal6416a}/gpio expander pcal6416a breakout_how_it_works.md (94%) rename soldered-documentation/docs/communication/{gpio expander pcal6416a breakout => pcal6416a}/gpio expander pcal6416a breakout_overview.md (91%) create mode 100644 soldered-documentation/static/img/pcal6416a/PCAL6416A.jpg create mode 100644 soldered-documentation/static/img/pcal6416a/PCAL6416A_Pinout.png create mode 100644 soldered-documentation/static/img/pcal6416a/PCAL6416A_base.jpg create mode 100644 soldered-documentation/static/img/pcal6416a/PCAL6416A_chip.jpg create mode 100644 soldered-documentation/static/img/pcal6416a/ReadWrite.JPG create mode 100644 soldered-documentation/static/img/pcal6416a/ReadWrite_test.png create mode 100644 soldered-documentation/static/img/pcal6416a/jp1.jpg create mode 100644 soldered-documentation/static/img/pcal6416a/jp2.jpg create mode 100644 soldered-documentation/static/img/pcal6416a/jp3.jpg create mode 100644 soldered-documentation/static/img/pcal6416a/jp4.jpg create mode 100644 soldered-documentation/static/img/pcal6416a/jp5.jpg diff --git a/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/arduino_library/gpio expander pcal6416a breakout_arduino_2.md b/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/arduino_library/gpio expander pcal6416a breakout_arduino_2.md deleted file mode 100644 index 468263a8..00000000 --- a/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/arduino_library/gpio expander pcal6416a breakout_arduino_2.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -slug: /gpio expander pcal6416a breakout/arduino/examples -title: PCAL6416A - ReadWrite -sidebar_label: ReadWrite -id: gpio expander pcal6416a breakout-arduino-2 -hide_title: False ---- diff --git a/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/arduino_library/gpio expander pcal6416a breakout_arduino_1.md b/soldered-documentation/docs/communication/pcal6416a/arduino_library/gpio expander pcal6416a breakout_arduino_1.md similarity index 97% rename from soldered-documentation/docs/communication/gpio expander pcal6416a breakout/arduino_library/gpio expander pcal6416a breakout_arduino_1.md rename to soldered-documentation/docs/communication/pcal6416a/arduino_library/gpio expander pcal6416a breakout_arduino_1.md index 1add9739..6d89e1ca 100644 --- a/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/arduino_library/gpio expander pcal6416a breakout_arduino_1.md +++ b/soldered-documentation/docs/communication/pcal6416a/arduino_library/gpio expander pcal6416a breakout_arduino_1.md @@ -1,6 +1,6 @@ --- slug: /gpio expander pcal6416a breakout/arduino/geting-started -title: PCAL6416A - Getting started +title: PCAL6416AHF - Getting started sidebar_label: Getting started id: gpio expander pcal6416a breakout-arduino-1 hide_title: False diff --git a/soldered-documentation/docs/communication/pcal6416a/arduino_library/gpio expander pcal6416a breakout_arduino_2.md b/soldered-documentation/docs/communication/pcal6416a/arduino_library/gpio expander pcal6416a breakout_arduino_2.md new file mode 100644 index 00000000..91b4cfd3 --- /dev/null +++ b/soldered-documentation/docs/communication/pcal6416a/arduino_library/gpio expander pcal6416a breakout_arduino_2.md @@ -0,0 +1,56 @@ +--- +slug: /gpio expander pcal6416a breakout/arduino/initialization +title: PCAL6416AHF - Initialization +sidebar_label: Initialization +id: gpio expander pcal6416a breakout-arduino-2 +hide_title: False +--- + + +This page contains a simple example of initializing the PCAL6416A GPIO expander. + +--- + +## Initialization + +To use the PCAL6416A GPIO expander, first include the required libraries, create an expander object, and initialize communication in the `setup()` function. You can use the `begin()` function to start I2C communication with the device. + +```cpp +// Include required libraries +#include +#include "PCAL6416A-SOLDERED.h" + +// Create PCAL6416A object +PCAL6416A expander; + +// Setup function, runs once +void setup() +{ + Serial.begin(115200); // Begin serial communication with PC + + // Required for ESP32-C6 easyC board + Wire.begin(6, 7); + + // Initialize communication with PCAL6416A + expander.begin(0x20); + + Serial.println("PCAL6416A initialized."); +} + +void loop() +{ +} +``` + + \ No newline at end of file diff --git a/soldered-documentation/docs/communication/pcal6416a/arduino_library/gpio expander pcal6416a breakout_arduino_3.md b/soldered-documentation/docs/communication/pcal6416a/arduino_library/gpio expander pcal6416a breakout_arduino_3.md new file mode 100644 index 00000000..fade1117 --- /dev/null +++ b/soldered-documentation/docs/communication/pcal6416a/arduino_library/gpio expander pcal6416a breakout_arduino_3.md @@ -0,0 +1,130 @@ +--- +slug: /gpio expander pcal6416a breakout/arduino/readwrite +title: PCAL6416AHF - ReadWrite +sidebar_label: ReadWrite +id: gpio expander pcal6416a breakout-arduino-3 +hide_title: False +--- + +This page contains a simple example demonstrating digital input and output control using the PCAL6416A GPIO expander. + +--- + +## Read and Write + +In this code snippet, the `loop()` function continuously reads the state of a pushbutton connected to pin A0. Since A0 is configured with an internal pull-up resistor, the pin reads `LOW` when the button is pressed and `HIGH` when the button is released. Based on the button state, pin A1 is used to turn an LED on or off. + +```cpp +void loop() +{ + // Read state of button connected to A0 + bool buttonState = expander.digitalReadPCAL(PCAL6416A_A0); + + Serial.print("State of pin A0 is: "); + + if (buttonState == LOW) + { + // Button pressed + Serial.println("LOW - Button Pressed"); + + // Turn LED ON + expander.digitalWritePCAL(PCAL6416A_A1, HIGH); + } + else + { + // Button released + Serial.println("HIGH - Button Released"); + + // Turn LED OFF + expander.digitalWritePCAL(PCAL6416A_A1, LOW); + } + + delay(100); +} +``` + + + + + +| Input pin A0 state | Button state | Output pin A1 state | LED state | +| :----------------: | :----------: | :-----------------: | :-------: | +| LOW | Pressed | HIGH | ON | +| HIGH | Released | LOW | OFF | + +--- + +## Full example + +Connect a pushbutton between A0 and GND, and connect an LED with a resistor to A1 and GND. Open the Serial Monitor at 115200 baud to observe the input state. + +```cpp +// Include required libraries +#include +#include "PCAL6416A-SOLDERED.h" + +// Create PCAL6416A object +PCAL6416A expander; + +void setup() +{ + Serial.begin(115200); // Start serial communication with PC + + // Required for ESP32-C6 easyC board + Wire.begin(6, 7); + + // Initialize PCAL6416A GPIO Expander + expander.begin(0x20); + + // Set A0 as input with internal pull-up resistor + expander.pinModePCAL(PCAL6416A_A0, INPUT_PULLUP); + + // Set A1 as output + expander.pinModePCAL(PCAL6416A_A1, OUTPUT); +} + +void loop() +{ + // Read state of button connected to A0 + bool buttonState = expander.digitalReadPCAL(PCAL6416A_A0); + + Serial.print("State of pin A0 is: "); + + if (buttonState == LOW) + { + // Button pressed + Serial.println("LOW - Button Pressed"); + + // Turn LED ON + expander.digitalWritePCAL(PCAL6416A_A1, HIGH); + } + else + { + // Button released + Serial.println("HIGH - Button Released"); + + // Turn LED OFF + expander.digitalWritePCAL(PCAL6416A_A1, LOW); + } + + delay(100); +} +``` + + + + + + +[link placeholder] +{/*github link za example*/} diff --git a/soldered-documentation/docs/communication/pcal6416a/arduino_library/gpio expander pcal6416a breakout_arduino_4.md b/soldered-documentation/docs/communication/pcal6416a/arduino_library/gpio expander pcal6416a breakout_arduino_4.md new file mode 100644 index 00000000..87ef86e6 --- /dev/null +++ b/soldered-documentation/docs/communication/pcal6416a/arduino_library/gpio expander pcal6416a breakout_arduino_4.md @@ -0,0 +1,67 @@ +--- +slug: /gpio expander pcal6416a breakout/arduino/troubleshooting +title: PCAL6416AHF - Troubleshooting +sidebar_label: Troubleshooting +id: gpio expander pcal6416a breakout-arduino-4 +hide_title: False +pagination_next: null +--- +This page contains some tips if you are experiencing problems with the PCAL6416A GPIO expander. + + + +#### Check wiring +Ensure that your Qwiic/easyC cable is properly connected and in good condition. Try using the same cable with another easyC-compatible device to verify that it works. + +#### Check I2C pins +If you are connecting the board using standard I2C pins, double-check that SDA and SCL are connected to the correct pins on your microcontroller. + +#### Scan for I2C devices +Run an [**I2C scanner sketch**](https://github.com/SolderedElectronics/Soldered-Hacky-Codes/tree/main/I2C_Scanner) to check if the PCAL6416A is detected on the I2C bus. + +#### Check I2C address +Make sure the address used in code matches the detected address. For example: + +```cpp +expander.begin(0x20); +``` + + + + + +#### Check pin mode +Make sure the pin is configured correctly before reading or writing: + +```cpp +expander.pinModePCAL(PCAL6416A_A0, INPUT_PULLUP); +expander.pinModePCAL(PCAL6416A_A1, OUTPUT); +``` + +#### Check your wiring +For button examples, connect the pushbutton between the input pin and GND. +For LED examples, connect the LED with a resistor to the output pin and GND. + +#### Check pull-up settings +If using a button, enable `INPUT_PULLUP` so the input has a stable state when the button is not pressed. + + + + + +#### The button always reads HIGH or LOW +Check that the button is connected to the correct GPIO pin and GND. If using `INPUT_PULLUP`, the pin should read `HIGH` when released and `LOW` when pressed. + +#### The LED does not turn on +Check LED polarity, the resistor connection, and whether the selected pin is configured as `OUTPUT`. + +#### I2C communication is unstable +Check cable length, loose connections, and whether the I2C pull-up jumpers are configured correctly. + +#### The wrong device is responding +If multiple I2C devices are connected, make sure no other device uses the same I2C address. + + + +In case you haven't found the answer to your question, please **contact us** via [**this**](https://soldered.com/contact/) link. + diff --git a/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_hardware_details.md b/soldered-documentation/docs/communication/pcal6416a/gpio expander pcal6416a breakout_hardware_details.md similarity index 78% rename from soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_hardware_details.md rename to soldered-documentation/docs/communication/pcal6416a/gpio expander pcal6416a breakout_hardware_details.md index a56946b1..c500016d 100644 --- a/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_hardware_details.md +++ b/soldered-documentation/docs/communication/pcal6416a/gpio expander pcal6416a breakout_hardware_details.md @@ -1,15 +1,17 @@ --- -slug: /gpio expander pcal6416a breakout/hardware -title: PCAL6416A -Hardware details -sidebar_label: Overview +slug: /pcal6416a/hardware +title: PCAL6416AHF - Hardware details +sidebar_label: Hardware details id: gpio expander pcal6416a breakout-hardware hide_title: False --- ## Pinout -[image placeholder] -{/*pcal6416a pinout*/} + + +Click [**here**](/img/pcal6416a/PCAL6416A_Pinout.png) for a high resolution image of the pinout. + --- ## Pin Details @@ -61,8 +63,35 @@ Ensure that the supply voltage and I2C logic levels are compatible with your mic ## Jumper Details -[placeholder] -{/*jumper detalji*/} +This board contains hardware jumpers; see below for their locations and functions: + + + +| **Jumper** | **Default State** | **Function** | +|------------|-------------------|--------------| +| **JP1** | NO | Enables the 5V I2C pull-up resistors for the SDA5 and SCL5 signal lines. | +| **JP2** | NO | Enables the 3.3V I2C pull-up resistors for the SDA_PULL3.3 and SCL_PULL3.3 signal lines. | +| **JP3** | NC | Connects the ADDR pin to GND by default, configuring the default I2C address of the PCAL6416A GPIO expander. | +| **JP4** | NC | Connects the output of the onboard SE5218 voltage regulator to the 3.3V power rail. | +| **JP5** | NO | Bypasses the onboard voltage regulator by directly connecting the 5V rail to the 3.3V rail. | + + + + +- **NO (Normally Open)** means the jumper pads are disconnected by default. +- **NC (Normally Closed)** means the jumper pads are connected by default. +- Changing jumper states allows configuration of the board power routing and I2C pull-up behavior. + + ## Dimensions diff --git a/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_how_it_works.md b/soldered-documentation/docs/communication/pcal6416a/gpio expander pcal6416a breakout_how_it_works.md similarity index 94% rename from soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_how_it_works.md rename to soldered-documentation/docs/communication/pcal6416a/gpio expander pcal6416a breakout_how_it_works.md index 36f23dcf..cd124a4d 100644 --- a/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_how_it_works.md +++ b/soldered-documentation/docs/communication/pcal6416a/gpio expander pcal6416a breakout_how_it_works.md @@ -1,6 +1,6 @@ --- -slug: /gpio expander pcal6416a breakout/how-it-works -title: PCAL6416A - How it works +slug: /pcal6416a/how-it-works +title: PCAL6416AHF - How it works sidebar_label: How it works id: gpio expander pcal6416a breakout-how-it-works hide_title: False @@ -8,8 +8,7 @@ hide_title: False The **PCAL6416A** is a low-voltage translating 16-bit I²C-bus/SMBus I/O expander that provides flexible GPIO expansion and voltage-level translation for microcontroller systems in a compact package, manufactured by [**NXP Semiconductors**](https://www.nxp.com/products/PCAL6416A). -[placeholder image] -{/*slika pcal6416a na boardu*/} + --- diff --git a/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_overview.md b/soldered-documentation/docs/communication/pcal6416a/gpio expander pcal6416a breakout_overview.md similarity index 91% rename from soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_overview.md rename to soldered-documentation/docs/communication/pcal6416a/gpio expander pcal6416a breakout_overview.md index aa2e9b0c..0a9ae794 100644 --- a/soldered-documentation/docs/communication/gpio expander pcal6416a breakout/gpio expander pcal6416a breakout_overview.md +++ b/soldered-documentation/docs/communication/pcal6416a/gpio expander pcal6416a breakout_overview.md @@ -1,6 +1,6 @@ --- -slug: /gpio expander pcal6416a breakout/overview -title: PCAL6416S - Overview +slug: /pcal6416a/overview +title: PCAL6416AHF - Overview sidebar_label: Overview id: gpio expander pcal6416a breakout-overview hide_title: False @@ -13,8 +13,7 @@ The **PCAL6416A** is a powerful and flexible **16-bit I²C-bus/SMBus GPIO expand The PCAL6416A communicates over the **I²C interface** and is ideal for applications requiring additional GPIOs, LED control, button monitoring, sensors, and other peripheral interfacing while minimizing the number of microcontroller pins used. -[image placeholder] -{/*slika pcal6416a*/} + --- ## Which product is this documentation for? diff --git a/soldered-documentation/sidebars.js b/soldered-documentation/sidebars.js index 32f6d1b6..83a41364 100644 --- a/soldered-documentation/sidebars.js +++ b/soldered-documentation/sidebars.js @@ -2561,6 +2561,47 @@ const sidebars = { }, ], }, + { + type: 'category', + label: 'PCAL6416AHF I/O Expander', + items: [ + { + type: 'doc', + id: 'communication/pcal6416a/gpio expander pcal6416a breakout-overview', + }, + { + type: 'doc', + id: 'communication/pcal6416a/gpio expander pcal6416a breakout-hardware', + }, + { + type: 'doc', + id: 'communication/pcal6416a/gpio expander pcal6416a breakout-how-it-works', + }, + { + type: 'category', + label: 'Arduino library', + items: [ + { + type: 'doc', + id: 'communication/pcal6416a/arduino_library/gpio expander pcal6416a breakout-arduino-1', + }, + { + type: 'doc', + id: 'communication/pcal6416a/arduino_library/gpio expander pcal6416a breakout-arduino-2', + }, + { + type: 'doc', + id: 'communication/pcal6416a/arduino_library/gpio expander pcal6416a breakout-arduino-3', + }, + { + type: 'doc', + id: 'communication/pcal6416a/arduino_library/gpio expander pcal6416a breakout-arduino-4', + }, + ], + }, + ], + }, + { type: 'category', label: 'CAN Transciever MCP2518', diff --git a/soldered-documentation/static/img/pcal6416a/PCAL6416A.jpg b/soldered-documentation/static/img/pcal6416a/PCAL6416A.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9c20bc0193190fa4f44ece5fd4765cdf5963daae GIT binary patch literal 904926 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