2
\$\begingroup\$

I'm doing a project which involves receiving DMX 512 information on an ATXmegaA3u microcontroller. I've successfully implemented the protocol using the onboard USART of the microcontroller. Basically, 2 frame errors, then 512 valid bytes.

Regarding the hardware side, DMX is a differential signal protocol, so I have a DMX+ and DMX- which is the other signal inverted. I currently use only the DMX+ line of the 3 pin DMX connector and the ground connected directly to my USART pin on my microcontroller. It all works fine.

Regarding the question now: do I have to use a MAX485 type chip in front of my microcontroller? Or is the USART of the microcontroller doing exactly the same thing but onboard? If optional, what would the MAX485 chip provide that the microcontroller cannot do?

\$\endgroup\$
4
  • 2
    \$\begingroup\$ Nothing in the the DMX/RS-485 spec is guaranteeing you a TTL-level signal on a single end. The difference is guaranteed. Draw your conclusions. \$\endgroup\$
    – Eugene Sh.
    Commented Aug 10, 2017 at 15:57
  • \$\begingroup\$ What are the line characteristics between the uC and the slave? How much cable is there, and is it shielded? \$\endgroup\$
    – Reinderien
    Commented Aug 10, 2017 at 15:59
  • 1
    \$\begingroup\$ The while point of the differential signals is to be tolerant to noise. Can you guarantee that there will never be so much noise that it will affect your TTL reception? (Hint: If you're not on the same board, the answer will be "no".) \$\endgroup\$
    – CL.
    Commented Aug 10, 2017 at 15:59
  • 1
    \$\begingroup\$ Oh ok, so the RS-485 is responsible for interpreting the differential signal and give me a clean noise-free output to use on the microcontroller. Got it. @Reinderien: lots of cable, most of the time unshielded ;) \$\endgroup\$ Commented Aug 10, 2017 at 16:01

1 Answer 1

7
\$\begingroup\$

Wiki says: -

DMX512 employs EIA-485 differential signaling at its physical layer, in conjunction with a variable-size, packet-based communication protocol. It is unidirectional.

So you need to use RS485 interface chips. The fact you have got it working without a 485 interface chip is pure luck but, if you try and transmit any distance without terminators and using a single ended transmission in an electrical noisy environment with inappropriate cable, you'll come unstuck.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.