Closed zakqwy closed 7 years ago
This bug has been fixed in the latest 'development' commit but I'll leave this issue open until the fix is merged to 'master'.
After playing around with this issue, I found that the axon signal that slightly led the other axon signal (usually by about 0.5 microseconds) always received by the dendrite but the lagging axon's message was always dropped.
In this capture, the top trace is Axon 1 and the bottom trace is Axon 2. Axon 2 always sends its message with a slight delay to Axon 1 and appears to never trigger the incoming message interrupt on the target dendrite. This leads me to believe that once the GPIO external interrupt which starts the message reading sequence (EXTI) is triggered, no more EXTIs can be queued until the EXTI routine has finished. So far, I haven't found anything in the NVIC settings that would prohibit another EXTI from being queued so I'm guessing that multiple EXTIs can't be queued on the STM32L0. The EXTI routine processing time is just a few microseconds so I've added a small 100 microsecond delay between simultaneous axon messages so that the receiving NeuroBytes board has enough time to process the first EXTI before receiving the second.
This issue affects all NeuroBytes boards with axons (i.e. everything but the motor neuron) so I've pushed fixes to all repos' 'development' branches.
Action potentials received on dendrites 2 and 3 at the exact same time (i.e. from the same Touch Sensor) don't sum and cause an action potential.