Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Multi-drop bus to rs232 Convert

I have a project using MDB (multi-drop bus) for vending machine (VDM).

The VDM has a MDB-RS232.

I'm not sure if it converts 9bit - 8bit (MDB-UART).

How do I read data from VDM in my computer?

Thanks all

like image 402
camnv Avatar asked Oct 11 '25 14:10

camnv


1 Answers

MDB (multi-drop bus) is 9 bit, because after the standard 8 data bits (like in standard RS232 UART communication) there is a 9th bit called "mode".

(Wikipedia on MDB: "the mode bit differentiates between ADDRESS and DATA bytes.")

But you can read such data even with regular 8-bit RS232 interfaces, e.g. a plain standard USB-to-RS232 device for PC.

Here is how:

  • Use 9600 baud, 8 data bits, 1 stop bit, but RS232 parity setting "Space". Make sure you receive the original character value even in case of a Parity Error indication. Any MDB address byte from your VDM will be received with a Parity Error (but still be displayed correctly). Any data byte will be displayed without error.

  • For sending MDB ADDRESS and DATA bytes using a standard 8-bit RS232 port, you could apply temporary parity changes: Change the parity setting to "Mark" before sending an address byte, then change back to "Space" before sending data bytes.

On Windows, you can do such tricks with our Docklight software (see Docklight and MDB). It's free for basic testing and there is also a related 9-bit example project.

On Linux / Raspberry Pi other users have successfully implemented the parity trick, too, see this stackexchange post about a MDB + Pi.

But also with RealTerm, Teraterm, Termite, Bray, YAT or any other RS232 application you should be able to read the data, as long as it handles "Space" or "Mark" parity settings correctly.

like image 175
Oliver Heggelbacher Avatar answered Oct 16 '25 05:10

Oliver Heggelbacher