Skip to content

Commit cd55cda

Browse files
[PC-1432] - Portenta C33 User Manual Update (#1434)
* Content update (I2C section) * Content update (I2C section) * Content update (linter fix) * Content update (Marta's and Andrea's comments) * Update content/hardware/04.pro/boards/portenta-c33/tutorials/user-manual/content.md * Update content/hardware/04.pro/boards/portenta-c33/tutorials/user-manual/content.md * Update content/hardware/04.pro/boards/portenta-c33/tutorials/user-manual/content.md --------- Co-authored-by: Julián Caro Linares <j.carolinares@arduino.cc>
1 parent 3dac443 commit cd55cda

File tree

1 file changed

+36
-25
lines changed
  • content/hardware/04.pro/boards/portenta-c33/tutorials/user-manual

1 file changed

+36
-25
lines changed

content/hardware/04.pro/boards/portenta-c33/tutorials/user-manual/content.md

Lines changed: 36 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,10 @@ Here is an overview of the board's main components shown in the images above:
5555
- **Security**: The board features an onboard ready-to-use secure element, the SE050C2 from NXP®, specifically designed for IoT devices and provides advanced security features.
5656
- **USB connectivity**: The board features a USB-C port for power and data, which is also accessible through the board's High-Density connectors.
5757
- **Power management**: The Portenta C33 is designed for low-power operation to meet the demands of always-connected IoT devices. It features a power management integrated circuit (PMIC), the PF1550 from NXP®, designed specifically for low-power, portable, and battery-powered IoT applications.
58-
- **Analog and digital peripherals**: The board features analog peripherals such as two 8-channel 12-bit analog-to-digital converters (ADC) and two 12-bit digital-to-analog converters (DAC). It also features the following digital peripherals: GPIO (x7), I<sup>2</sup>C (x1), UART (x4), SPI (x2), PWM (x10), CAN (x2), I2S (x1), SPDIF (x1), PDM (x1), and SAI (x1).
58+
- **Analog and digital peripherals**: The board features analog peripherals such as two 8-channel 12-bit analog-to-digital converters (ADC) and two 12-bit digital-to-analog converters (DAC). It also features the following digital peripherals: GPIO (x7), I2C (x1), UART (x4), SPI (x2), PWM (x10), CAN (x2), I2S (x1), SPDIF (x1), PDM (x1), and SAI (x1).
5959
- **Debugging**: The board features a JTAG/SWD debug port accessible through its High-Density connectors.
60-
- **Surface mount**: The castellated pins of the board allows it to be positioned as a surface-mountable module.
61-
- **MKR-styled connectors**: The MKR-styled connectors of the board makes it compatible with all the MKR family boards. 2.54 mm pitch headers can be easily soldered to the board.
60+
- **Surface mount**: The castellated pins of the board allow it to be positioned as a surface-mountable module.
61+
- **MKR-styled connectors**: The MKR-styled connectors of the board make it compatible with all the MKR family boards. 2.54 mm pitch headers can be easily soldered to the board.
6262

6363
### Board Core and Libraries
6464

@@ -99,11 +99,11 @@ The complete STEP files are available and downloadable from the link below:
9999
The Portenta C33 can be powered by the following:
100100

101101
- Using a USB-C® cable (not included).
102-
- Using an external **4.1 to 6 V power supply** connected to the `VIN` pin located in the MKR-styled connectors pins of the board (please, refer to the [board pinout section](#pinout) of the user manual).
103-
- Using an external **5 V power supply** connected to the `5V` pin located in the MKR-styled connectors of the board (please, refer to the [board pinout section](#pinout) of the user manual).
102+
- Using an external **4.1 to 6 V power supply** connected to the `VIN` pin located in the MKR-styled connectors pins of the board (please refer to the [board pinout section](#pinout) of the user manual).
103+
- Using an external **5 V power supply** connected to the `5V` pin located in the MKR-styled connectors of the board (please refer to the [board pinout section](#pinout) of the user manual).
104104
- Using a **3.7 V Lithium Polymer (Li-Po) battery** connected to the board through the onboard battery connector; the manufacturer part number of the battery connector is BM03B-ACHSS-GAN-TF(LF)(SN), and its matching receptacle manufacturer part number is ACHR-03V-S. The **recommended minimum battery capacity for the Portenta C33 is 800 mAh**. A Li-Po battery with an integrated NTC thermistor is also recommended for thermal protection.
105105
- Using an Arduino Pro carrier board, such as the [Portenta Max Carrier](https://store.arduino.cc/collections/pro-family/products/portenta-max-carrier) and the [Portenta Breakout](https://store.arduino.cc/collections/pro-family/products/arduino-portenta-breakout).
106-
- Using your custom boards to power the board through the board's castellated pins, MKR-styled or High-Density connectors. Check out the [board pinout](#pinout) and its schematic to know more about it.
106+
- Using your custom boards to power the board through the board's castellated pins, MKR-styled, or High-Density connectors. Check out the [board pinout](#pinout) and its schematic to know more about it.
107107

108108
![Different ways to power the Portenta C33 board](assets/user-manual-4.png)
109109

@@ -148,7 +148,7 @@ You should see now the green LED of the built-in RGB LED turn on for one second,
148148

149149
## Pins
150150

151-
The Portenta C33 has been designed with two types of connectors, the MKR-styled connectors, intended for prototyping and debugging, and the High-Density connectors, intended to be used across Arduino Pro boards or custom boards. The Portenta C33 MKR-styled connectors pinout is shown in the image below:
151+
The Portenta C33 has been designed with two types of connectors: the MKR-styled connectors, intended for prototyping and debugging, and the High-Density connectors, intended to be used across Arduino Pro boards or custom boards. The Portenta C33 MKR-styled connectors pinout is shown in the image below:
152152

153153
![Portenta C33 MKR-styled connectors pinout](assets/ABX00074-pinout-MKR.png)
154154

@@ -173,7 +173,7 @@ The Portenta C33 has eight analog input pins mapped as follows:
173173

174174
The eight analog input pins can be used through the built-in functions of the Arduino programming language ([`analogRead()` function](https://reference.arduino.cc/reference/en/language/functions/analog-io/analogread/)).
175175

176-
Please, refer to the [board pinout section](#pinout) of the user manual to find the analog pins on the board:
176+
Please refer to the [board pinout section](#pinout) of the user manual to find the analog pins on the board:
177177

178178
- MKR-style connectors: pins `A0`, `A1`, `A2`, `A3`, `A4`, `A5`, and `A6` are accessible thought these connectors.
179179
- High-Density connectors: pins `A0`, `A1`, `A2`, `A3`, `A4`, `A5`, `A6`, and `A7` are accessible thought these connectors.
@@ -344,7 +344,7 @@ The following 17 digital pins are **generic GPIO pins**; they are available thro
344344
| `82` | GPIO | `P007` |
345345
| `83` | GPIO | `P008` |
346346

347-
And the last eight digital pins are **SD-card-capable**; they are available through the High-Density connectors of the board:
347+
The last eight digital pins are **SD-card-capable**; they are available through the High-Density connectors of the board:
348348

349349
| **Arduino Pin Mapping** | **Pin Functionality** | **Microcontroller Pin** |
350350
|:-----------------------:|:---------------------:|:-----------------------:|
@@ -448,7 +448,7 @@ The Portenta C33 has 10 digital pins with PWM functionality, mapped as follows:
448448

449449
The 10 PWM pins can be used through the built-in ([`analogWrite()` function](https://www.arduino.cc/reference/en/language/functions/analog-io/analogwrite)) of the Arduino programming language.
450450

451-
Please, refer to the [board pinout section](#pinout) of the user manual to find them on the board.
451+
Please refer to the [board pinout section](#pinout) of the user manual to find them on the board.
452452

453453
- MKR-styled connectors: pins `0`, `1`, `2`, `3`, `4`, `5`, and `6` are accessible through these connectors.
454454
- High-Density connectors: pins `0`, `1`, `2`, `3`, `4`, `5`, `7`, `8`, `9`, `23`, `24`, `25`, and `26` are accessible through these connectors.
@@ -481,7 +481,7 @@ void loop() {
481481
delay(30);
482482
}
483483
```
484-
You should now see the built-in RGB LED's green LED fade in, then fade out repeatedly.
484+
You should now see the built-in RGB LED's green LED fade in and then fade out repeatedly.
485485

486486
![PWM example running in the Portenta C33](assets/user-manual-gif-2.gif)
487487

@@ -503,7 +503,7 @@ The built-in RGB LED can be accessed through the following macro definitions:
503503
| Blue LED | `LEDB` |
504504
| Green LED | `LEDG` or `LED_BUILTIN` |
505505

506-
***The built-in RGB LED on the Portenta C33 needs to be pulled to ground to make them light up. This means that a voltage level of `LOW` on each of their pins will turn the specific color of the LED on, and a voltage level of `HIGH` will turn them off. Furthermore, invoking the `pinMode(LED_BUILTIN, OUTPUT)` instruction pulls the built-in LED LOW, which means it turns it on.***
506+
***The built-in RGB LED on the Portenta C33 must be pulled to ground to make it light up. This means that a voltage level of `LOW` on each of their pins will turn the specific color of the LED on, and a voltage level of `HIGH` will turn them off. Furthermore, invoking the `pinMode(LED_BUILTIN, OUTPUT)` instruction pulls the built-in LED LOW, which means it turns it on.***
507507

508508
The following example code blinks each of the LEDs at an interval of 500 ms:
509509

@@ -540,7 +540,7 @@ You should now see the built-in RGB LED blinking each of its LEDs repeatedly.
540540

541541
## Communication
542542

543-
This section of the user manual covers the different communication protocols that are supported by the Portenta C33 board, including the Serial Peripheral Interface (SPI), Inter-Integrated Circuit (I<sup>2</sup>C), Universal Asynchronous Receiver-Transmitter (UART), and Wi-Fi®; JTAG interface and communication via the onboard ESLOV connector is also explained in this section.
543+
This section of the user manual covers the different communication protocols that are supported by the Portenta C33 board, including the Serial Peripheral Interface (SPI), Inter-Integrated Circuit (I2C), Universal Asynchronous Receiver-Transmitter (UART), and Wi-Fi®; JTAG interface and communication via the onboard ESLOV connector is also explained in this section.
544544

545545
The Portenta C33 features dedicated pins for each communication protocol, accessible through the MKR-styled connectors and the High-Density connectors, making connecting and communicating with different components, peripherals, and sensors easy.
546546

@@ -559,7 +559,7 @@ The Portenta C33 supports SPI communication via two dedicated ports named `SPI0`
559559
| `47` or `PIN_SPI1_SCK` | `P102` |
560560
| `48` or `PIN_SPI1_CS` | `P103` |
561561

562-
Please, refer to the [board pinout section](#pinout) of the user manual to find them on the board. Include the [`SPI` library](https://reference.arduino.cc/reference/en/language/functions/communication/spi/) at the top of your sketch to use the SPI communication protocol. The SPI library provides functions for SPI communication:
562+
Please refer to the [board pinout section](#pinout) of the user manual to find them on the board. Include the [`SPI` library](https://reference.arduino.cc/reference/en/language/functions/communication/spi/) at the top of your sketch to use the SPI communication protocol. The SPI library provides functions for SPI communication:
563563

564564
```arduino
565565
#include <SPI.h>
@@ -604,7 +604,7 @@ digitalWrite(SS, HIGH);
604604

605605
### I2C
606606

607-
The Portenta C33 supports I<sup>2</sup>C communication, which allows data transmission between the board and other I<sup>2</sup>C-compatible devices. The pins used in the Portenta C33 for the I<sup>2</sup>C communication protocol are the following:
607+
The Portenta C33 supports I2C communication, which allows data transmission between the board and other I2C-compatible devices. There are three available I2C ports in the Portenta C33: `I2C0`, `I2C1`, and `I2C2`. The pins used in those interfaces for the I2C communication protocol are the following:
608608

609609
| **Arduino Pin Mapping** | **Microcontroller Pin** |
610610
|:-----------------------:|:-----------------------:|
@@ -615,22 +615,33 @@ The Portenta C33 supports I<sup>2</sup>C communication, which allows data transm
615615
| `39`/`SDA2` | `P302` |
616616
| `40`/`SCL2` | `P301` |
617617

618-
Please, refer to the [board pinout section](#pinout) of the user manual to find them on the board. The I<sup>2</sup>C pins are also available through the onboard ESLOV connector of the Portenta C33.
618+
To locate these pins on the board, please refer to the [board pinout section](#pinout) of the user manual. The `SDA0` and `SCL0` pins are also available through the onboard ESLOV connector of the Portenta C33.
619+
620+
***System integrators can use the Portenta C33's High-Density connectors to expand the signals of the board to a custom-designed daughter board or carrier. Below is the I2C pins mapping on the board's High-Density connectors and shared resources:***
621+
622+
623+
| **HD Connector** | **Interface** | **Pins** | **Status** | **Shared Peripherals** |
624+
|:----------------:|:-------------:|:--------:|:----------:|:----------------------:|
625+
| J1 | `I2C1` | 43-45 | Free | - |
626+
| J2 | `I2C0` | 44-46 | Free | - |
627+
| J2 | `I2C2` | 45-47 | Free | - |
628+
629+
The status column indicates the current status of the pins. "Free" means the pins are not in use by another resource or peripheral of the board and are available for usage, while "Shared" means the pins are used by one or several resources or peripherals of the board.
619630

620-
To use I<sup>2</sup>C communication, include the [`Wire` library](https://reference.arduino.cc/reference/en/language/functions/communication/wire/) at the top of your sketch. The `Wire` library provides functions for I<sup>2</sup>C communication:
631+
To use I2C communication, include the [`Wire` library](https://reference.arduino.cc/reference/en/language/functions/communication/wire/) at the top of your sketch. The `Wire` library provides functions for I2C communication:
621632

622633
```arduino
623634
#include <Wire.h>
624635
```
625636

626-
In the `setup()` function, initialize the I<sup>2</sup>C library:
637+
In the `setup()` function, initialize the I2C library:
627638

628639
```arduino
629640
// Initialize the I2C communication
630641
Wire.begin();
631642
```
632643

633-
To transmit data to an I<sup>2</sup>C-compatible device, you can use the following commands:
644+
To transmit data to an I2C-compatible device, you can use the following commands:
634645

635646

636647
```arduino
@@ -656,7 +667,7 @@ Wire.write(value);
656667
Wire.endTransmission();
657668
```
658669

659-
To read data from an I<sup>2</sup>C-compatible device, you can use the `requestFrom()` function to request data from the device and the `read()` function to read the received bytes:
670+
To read data from an I2C-compatible device, you can use the `requestFrom()` function to request data from the device and the `read()` function to read the received bytes:
660671

661672
```arduino
662673
// The target device's I2C address
@@ -691,7 +702,7 @@ The Portenta C33 supports UART communication. The pins used in the Portenta C33
691702
| `92` | `P603` |
692703
| `93` | `P604` |
693704

694-
Please, refer to the board pinout section of the user manual to find them on the board. The built-in ([Serial](https://www.arduino.cc/reference/en/language/functions/communication/serial/)) library functions can use the UART pins.
705+
Please refer to the board pinout section of the user manual to find them on the board. The built-in ([Serial](https://www.arduino.cc/reference/en/language/functions/communication/serial/)) library functions can use the UART pins.
695706

696707

697708
To begin with UART communication, you'll need to configure it first. In the `setup()` function, set the baud rate (bits per second) for UART communication:
@@ -701,7 +712,7 @@ To begin with UART communication, you'll need to configure it first. In the `set
701712
Serial.begin(9600);
702713
```
703714

704-
To read incoming data, you can use a `while()` loop to continuously check for available data with the `Serial.available()` function and read individual characters with the `Serial.read()` function. The code shown above stores the incoming characters in a String variable and process the data when a line-ending character is received:
715+
To read incoming data, you can use a `while()` loop to continuously check for available data with the `Serial.available()` function and read individual characters with the `Serial.read()` function. The code shown above stores the incoming characters in a String variable and processes the data when a line-ending character is received:
705716

706717
```arduino
707718
// Variable for storing incoming data
@@ -1192,7 +1203,7 @@ You can use a [Portenta Breakout](https://store.arduino.cc/products/arduino-port
11921203

11931204
### ESLOV Connector
11941205

1195-
The Portenta C33 board features an onboard ESLOV connector to extend the I<sup>2</sup>C communication bus. This connector simplifies connecting various sensors, actuators, and other modules to the Portenta C33 without soldering or wiring; Nicla family boards can also be connected to the Portenta C33 through this connector.
1206+
The Portenta C33 board features an onboard ESLOV connector to extend the I2C communication bus. This connector simplifies connecting various sensors, actuators, and other modules to the Portenta C33 without soldering or wiring; Nicla family boards can also be connected to the Portenta C33 through this connector.
11961207

11971208
![Portenta C33 built-in ESLOV connector](assets/user-manual-8.png)
11981209

@@ -1463,7 +1474,7 @@ First, provision your Portenta C33 board on your Arduino IoT Cloud space. To do
14631474

14641475
![Arduino IoT Cloud Devices page](assets/user-manual-14.png)
14651476

1466-
The **Setup Device** pop-up window will appear, navigate into **AUTOMATIC** and select the **Arduino board** option:
1477+
The **Setup Device** pop-up window will appear. Navigate into **AUTOMATIC** and select the **Arduino board** option:
14671478

14681479
![Arduino IoT Cloud Setup Device pop-up window](assets/user-manual-15.png)
14691480

@@ -1494,7 +1505,7 @@ Add one variable with the following characteristics:
14941505

14951506
![Arduino IoT Cloud "Thing" variable setup](assets/user-manual-21.png)
14961507

1497-
You should see the `led` variable in the **Cloud Variables** section. Navigate into **Dashboards** and select the **BUILD DASHBOARD** button; this will create a new dashboard; give your dashboard a name.
1508+
You should see the `led` variable in the **Cloud Variables** section. Navigate into **Dashboards** and select the **BUILD DASHBOARD** button; create a new dashboard and give your dashboard a name.
14981509

14991510
Add the following widgets to your dashboard:
15001511

0 commit comments

Comments
 (0)