0
$\begingroup$

I am designing an Arinc429 receiver based on a micro-controller with two interrupt inputs served by a circuit converting the +/-10V standard signals into two separated 0-3.3V streams, respectively firing at every logic "1" and "0".

The interrupt service routines then encode (fill) an array with 1 or 0 accordingly to the Arinc429 input data. The system is logically correct and works nicely with an emulated stream but only because it comes when the array index is reset to zero. In principle in the real world case it could instead start accumulating data anywhere in between the 32 bit word. Then it would never synchronize again with the data transmission.

How can I know that an incoming bit is a new 32-bits data word start, or, in other words, how could I detect a new data frame start?

$\endgroup$
2
  • $\begingroup$ I feel this should be transferred to Stack Overflow or Drones and Model Aircraft $\endgroup$ Apr 17 at 6:13
  • $\begingroup$ @AadirajAnil I believe ARINC 429 related questions are best asked and answered here $\endgroup$ Apr 19 at 18:20

1 Answer 1

2
$\begingroup$

ARCINC 429 uses a tristate voltage level, high at 10 V, low at -10 V and a null at 0 volts. There will be 4 bit lengths of null voltage between 32 bit messages. in the message, a high will be 10 V followed by a return to null. a low will be -10 V followed by a return to null. The time of the bit lengths depends on the transmission rate, usually 12.5 K bits per second or 100 K bits per second.

$\endgroup$
1
  • $\begingroup$ I was missing the 4-bit lengths of null voltage between consecutive messages. This allows to properly detect the next message start with proper firmware modifications. Jim's comment helped a lot, thanks. $\endgroup$ Apr 17 at 6:18

Not the answer you're looking for? Browse other questions tagged .