I am trying to interface a SPI Sensor with an arduino Uno. The communikation it self looks ok, but the Interrupt does not work. I looked at the signal itself, an messured a high time of 30ns that seams realy short. Is that enough to trigger an Interup on pin 2 with the parameter RISING?
Are you confusing something?
if the sensor has SPI interface, then it sends data via SPI, which do not need to be caught with an interrupt
Nonetheless,
definitely not, because 1 tick of Uno controller as long as twice of this time
The sensor is not the master in the system. So the Sensor has to message the Master(Arduino) somehow if it has some data. The Arduino could periodicly ask if there is anything new, but this is not realy performant. It would also mean that I would put mor traffic on the buss, with is already realy full.
Nonethless thanks for the answer.
Then you have full control over the interrupt signal duration.
Nop i did not build the sensor and can not change the firmware of it. The connection works with an ESP32, propably because of the faster clock speed.
Then provide a link to the data sheet.
hop that this one works.
The Timing of the Interupt Signal was messured with an logic analyzer and an oscciloskop. The needed Logic level converter also does not interfear with the timing. I also messured that.
The timing of interrupt has nothing to do with SPI data exchange.
Yes it has. The arduino does not know that it has to message the sensor if the Interupt does not reach the arduino. And it does not reach the Arduino if it is to short as you already stated in your first post.
I think that you are very mistaken, the SPI bus is very widely used for microcontrollers, including arduino and most spi devices do not have an external signal interrupt and nevertheless the devices communicate with each other.
Yes most devices do not need an extra Interupt signal. But that is not the point. The DWM1000 needs one. Otherwise the Arduino would have to gues the time of an incomming message witch is yust wrong. Also repeaditly asking If the DWM1000 has some data does not work because it would lock the DWM.
Details about interrupts etc. are in the User Manual.
If you didn't enable any specific interrupt you may only have observed what the manual calls "spurious interrupts".
The IRQ Interupt signal is enabled. The DWM is nether in sleep mode. The line is also pulled low by a 20kOhm resistor
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.