This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Zephyr - GPIO does not allow to change pin state in nrfx_timer below 900 microseconds

Hello,

I am a beginner in Zephyr, I am using the nRF 52840 DK board and I want to connect the HX711 module I have implemented nrfx_timer to make it possible to give pulse at every(1 microsecond (required as per datasheet of HX711)).

When I am trying to print any "test" message it is getting printed but I am not able to make gpio_pin_toggle(dev,PIN). at every 1 microsecond. I am getting the below error message.

<err> os: ***** BUS FAULT *****
[00:00:00.006,317] <err> os:   Instruction bus error
[00:00:00.006,347] <err> os: r0/a1:  0x00000000  r1/a2:  0x04000000  r2/a3:  0x00000001
[00:00:00.006,347] <err> os: r3/a4:  0x1ab90a2f r12/ip:  0xa0000000 r14/lr:  0x00018853
[00:00:00.006,347] <err> os:  xpsr:  0x01000019
[00:00:00.006,347] <err> os: Faulting instruction address (r15/pc): 0x1ab90a2e
[00:00:00.006,347] <err> os: >>> ZEPHYR FATAL ERROR 0: CPU exception on CPU 0
[00:00:00.006,378] <err> os: Fault during interrupt handling

[00:00:00.006,378] <err> os: Current thread: 0x20001b58 (unknown)
[00:00:01.044,097] <err> fatal_error: Resetting system

I was just checking and came to know that above 900 microseconds it works fine but below that is not working.

My question is, Is there any internal delay of gpio_pin_toggle() causing the above error? If yes what is an alternate solution for this?

Thanks and regards,

Neeraj Dhekale

Related