-
Notifications
You must be signed in to change notification settings - Fork 3
Description
We're using the RP2350 in our embedded systems course, and we're having students dive into the constituent functions in order to understand the effect of registers on peripherals. A student pointed out a conflict between system behavior and some text in the datasheet.
In Section 9.10: Software examples, there is the following paragraph regarding setting IE and OD bits for GPIO pins under pads_bank0:
By default, all pads come out of reset ready to use, with input enabled and output disable set to 0. Regardless,
gpio_set_functionin the SDK sets the input enable and clears the output disable to engage the pad’s IO buffers and connect internal signals to the outside world.
However, this is not the case when we reach main. The following is a screenshot of the register values before we execute any line of code in main on an RP2350B, showing that IE is 0 for all pins:
My guess is that either there's a very minor typo and it's supposed to be "enable" instead of "enabled". Is this the case, or are we missing something else entirely?
(Full disclosure - we're using PlatformIO with custom support we added to build code with the Pico SDK, instead of the official Pico-VScode extension. We don't see any behavioral differences between the two, but thought it would be worth mentioning.)