-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
nrf: Incorrect pin voltages #1174
Comments
OK - i did notice the high voltage on my PCA DK was a tad lower than expected, my neopixels were not happy about it. |
Nice! the set |
@dhalbert FWYi after setting this register I now see that the JLink reports the target voltage as 3.29V rathere than 1.78V as it did before the change. I have my JLink connected to the VDDOut pad but from the Schematic, this should be the VDDnRF which is pin 1 on the SWD header. before setting register
after setting register
|
also interesting, - I did not notice that the JLink identified the Dongle as a n NRF52832_XXAA -- it a all worked OK! |
hmm -- that was shortlived - I may have shorted something, but I appear to have fried another Dongle. I now see only .5V on VDDOut and the board is non functional. It's possible I shorted VDDOut to GND when connecting the JLink. Not sure if this would kill it. Just wanted to pass on a waring. Luckily theses boards are only $10. I have one more, but want to tread carefully before I kill another one! Should have a few more soon. Mouser is backorder, Symmetry claims to have them.... |
Took a chance with my remaining dongle -- Flashed the bootloader and set the Register All seems to be working well.
|
and to confirm taht I am still confused, but it is still working -- now Jlink reports the 3.3V target
|
I spent a lot of time probing on the board, and finally read the documentation as well. The PCA10056 DK board deliberately uses a 3V (not 3.3V) regulator (U11) to power VDD on the nRF52840. So the output pin voltages are going to be 3.0V instead of 3.3V. See http://infocenter.nordicsemi.com/pdf/nRF52840_DK_User_Guide_v1.2.pdf 🙁 |
Fixed by #1177. |
The nRF52840 can be set to supply different voltages on its GPIO pins. If the chip is used in "high voltage mode" (so-called due to how the internal regulators are used and how the VDD and VDDH pins are connected), then the
UICR->REGOUT0
register can be used to vary the voltage on the GPIO pins.The PCA10059 dongle is set up to use "high voltage mode".
If you erase the NVM (say with some firmware erase command), then the
UICR->REGOUT0
register is set to all 1's, and it uses the default voltage of 1.8V. I verified this with a random GPIO pin.Both @jerryneedell and I noticed this, because the on-board red LED was really dim and the RGB led would only display red (because the green and blue parts need >1.8v). We had both erased the NVM before loading a new bootloader.
The temporary fix is to go into gdb and do:
and then reset the board (it won't take effect without a reset, it appears).
This will set
UICR->REGOUT0
to use 3.3V as the specified voltage.The real fix is to make CircuitPython check the value of this register on startup and change it to 0x5 if it's not already. Let's not write it every time so as not to wear the NVM.
The PCA10056 appears to be wired differently and is in "normal voltage mode", not "high voltage mode". In normal mode the value of
REGOUT0
has no effect.However, measuring a HIGH on a random GPIO pin on the PCA10056 shows about 3.04V, so that's another puzzle.
I haven't looked yet at how the Feather nRF52840 is powered; probably it is in normal mode and uses an external regulator to get 3.3V.
The nRF52832 does not have
REGOUT0
.Tagging @jerryneedell @arturo182 @tannewt @ladyada @hathach for a heads-up.
PCA10059 issue also noted here: https://devzone.nordicsemi.com/f/nordic-q-a/38205/flashing-pca10059
The text was updated successfully, but these errors were encountered: