Page 1 of 1

Interrupts and SPI on Arduino Nano

Posted: Thu Dec 14, 2023 7:47 pm
by pmgreene01
I started writing this as a help request, but I found the solution, so I figured I would post my experience in case it might help someone else.

I am using an Arduino for a simple analog servo. I sample an analog input and an analog sensor, perform a servo calculation and then send the output to an external DAC chip (MAX5216) over SPI.

Since I have started working on this, everything has been working well. Last week, I started analyzing my code to get the interrupt routine to run faster. I noticed that when I set up my SPI master, I chose the "Software" channel instead of "Channel 1". When I chose "Channel 1" it did run much faster.

The problem I encountered is that everything worked fine when I had the USB cable attached and downloaded the program. But the program would hang if when I powered cycled the unit with no USB connection. After further investigation, I found that it would get to the first SPI transaction and the program would hang (no signals on any of the SPI lines).

I found another post where someone mentioned adding a pullup resistor to my CS pin and that did work. With the pullup holding CS to +5V, everything works well after power cycling.