Issues with programming/operation of custom PCB with nRF52832

I've just built up a batch of custom PCB's we designed using the nRF52832-QFAA IC's.  I'm attempting to program these with the nRF52-DK, and am following the connection diagram indicated below, with the exception that I have not got the GND_DETECT connected, as I am led to believe this is not necessary.

My custom board is designed around the Internal LDO reference design in the nRF52832 Product Specification, and looks like this:

My 32MHz Xtal has 8pF load capacitance, ESR = 80 ohms and shunt capacitance of 3pF, which appears to be within spec according to the spec for the 64 MHz crystal oscillator (HFXO).

I have erased the nRF52 chip on my DK, so that (I assume) it lets all the GPIO float.  And then I have programmed my custom board with a simple LED blinky program.  Testing of this LED Blinky on the nRF53-DK indicates it is working as expected, but when I flash my custom board, I'm not seeing anything on the appropriate GPIO pin.

I've tested both powering my custom board via the DK, and also powering the custom board from an external PSU.  Checking the current indicates a load of 4-7mA, which seems a bit high. 

Poking around on some other GPIO, I noticed that P0.05 is being switched on/off at about 2200Hz, with a pulse width of ~ 7usec.

I programmed and tested a second production board, and that showed the same behaviour.

I then tested a board that was straight off the production floor and hadn't been programmed, and that wasn't doing anything (as I'd expect).

So, for some reason, code is being flashed to the device, but its not the code I am expecting to be flashed to the device.  I'm trying to toggle P0.17 at about 1Hz with a 50% duty cycle, but instead I'm seeing P0.05 toggle at about 2200Hz with a ~ 2% duty cycle!

Does anyone have any idea what I'm doing wrong?

Cheers,

Mike

Parents
  • OK, some more info.

    Ran the debugger on my custom board.  It seems to be running the code as expected, as I can see if running through the while loop.  If I dive into the gpio_pin_toggle_dt(&led_grn) function, I can see it running a bunch of GPIO API's. Not sure how I can watch the GPIO register to confirm its toggling the status of the appropriate GPIO though.

    But monitoring the physical pin with my scope, I'm not seeing any change in the state of the pin.  I see the same outcome if I let the code run "free" without the debugger.

    So, its like the GPIO isn't being configured for my custom board chip correctly.  Not sure why though

    Regards,

    Mike

Reply
  • OK, some more info.

    Ran the debugger on my custom board.  It seems to be running the code as expected, as I can see if running through the while loop.  If I dive into the gpio_pin_toggle_dt(&led_grn) function, I can see it running a bunch of GPIO API's. Not sure how I can watch the GPIO register to confirm its toggling the status of the appropriate GPIO though.

    But monitoring the physical pin with my scope, I'm not seeing any change in the state of the pin.  I see the same outcome if I let the code run "free" without the debugger.

    So, its like the GPIO isn't being configured for my custom board chip correctly.  Not sure why though

    Regards,

    Mike

Children
No Data
Related