GPIO can't be controlled

Hi,

     I encountered a very strange issue.  I need to control a device using GPIO.  What I use is p0.22/p0.02/p0.03/p1.11/p0.31/p0.30.  I modify the app.overlay file and check the final zephyr.dts which is correct.  But when I use the gpio_pin_set_dt to control those GPIO, the results are not as I expected.

p0.22 , can't control, always 1
p0.02 ,can't control, always 0
p0.03 ,can't control, always 0
p1.11 , OK
p0.31 , OK
p0.30 ,can't control, always 0

   In my project, I also control the other GPIO p0.5/p1.15/p1.14/p1.1/p1.0 using the same method and those GPIO work well.  I check the issue again and again and I can't find anything wrong.  

My questions are

1. Is it possible the pins are overlapping assignments? ( I checked zephyr.dts already, another way to check it? )
2. Is it possible those pins can't be used as GPIO? p0.22/p0.02/p0.03/p0.30

Thanks

Parents Reply
  • Hi,

    I will continue to help with this ticket.

    LanceTaiwan said:
        to config the GPIO to 3.3v.  My question is, how can I do this in c code?

    What do you mean "config to 3.3v"?

    Do you mean that you will set it to output and high?

    Or to configure it as pull-up?

    Or to change its specific voltage level?

    LanceTaiwan said:
        # nrfjprog --family nrf53 --memwr 0x00FF8010 --val 5

    How did you find this command? What is the register you write to?

    Regards,
    Sigurd Hellesvik

Children
Related