Can't communicate with Mega 2560 using RS485

Hello again. I am trying to use IND I/O RS485 to communicate with an arduino mega 2560 + MAX485 modules and all I get is gibberish data. I set the D9 on IND I/O to HIGH for transmit mode and pin DE (jumpered to RE) on MAX485 module to LOW for receive mode. Below is wiring of MAX485:

MAX485 Pin

Vcc --> Mega 5V

GND --> Mega GND

R0 --> Mega RX1

DI --> Mega TX1

DE + RE --> Mega Pin 30

A --> IND I/O A

B --> IND I/O B

 

IND I/O Code as transmitter :

const int pin_485Dir = 9; 
const int RS485Transmit = HIGH;

void setup()
{
    Serial1.begin(9600);
}

void loop()
{

    //Set transmit mode
    digitalWrite(pin_485Dir, RS485Transmit);
    Serial1.println("Hello World !");
    delay(3000);
}

 

Mega 2560 Code as receiver:

const int pin_LED = 13;
const int pin_485Dir = 30;      // RX Enable RS485
const int RS485Transmit = HIGH;      // TX Enable RS485
const int RS485Receive = LOW;

void setup()
{
    Serial.begin(9600);
    Serial1.begin(9600);

    pinMode(pin_LED, OUTPUT);
    pinMode(pin_485Dir, OUTPUT);

}

void loop()
{
    //Set receive mode

    digitalWrite(pin_485Dir, RS485Receive);

    while (Serial1.available()) {
        char ch = Serial1.read();

        Serial.print("RX: ");
        Serial.print(ch);
        Serial.println("");

        ToggleLED();
    }
}

void ToggleLED() {
    digitalWrite(pin_LED, !digitalRead(pin_LED));
}

 

Note: GND of MAX485 is not connected to IND I/O 485 GND. When I connected them both, data stop appearing at Mega 2560's serial monitor. If I disconnected the GND, gibberish data appear again. I also tried removing the 3 jumpers on IND I/O one by one with no luck (still gibberish data).

 

MAX485 module:

http://www.chinalctech.com/index.php?_m=mod_product&_a=view&p_id=811

 

Any help will be greatly appreciated. As last resort, I am thinking to cut off pin 5 of Adum 1402 to disable RS485 and use the IDC pin 3 & 4 for normal Serial communication. Or can I still use the IDC pin 3 & 4 if RS485 is not used ( ie: no cables connected  to A and B )?

 

Update #1: Gosh.. If only you have just one external Interrupt available.. I wouldn't have to deal with this problem. Even better if you don't use i2c for the Indio ports..

Albert Tobing
Albert Tobing
12
| 0 0 0
Asked on 5/11/17, 1:29 PM
0
vote
863 Views

Hi Albert, 

Can you start with trying to send a byte, as in https://industruino.com/blog/our-news-1/post/rs485-serial-communication-28

 

Tom
Tom
5210
| 0 0 1
Answered on 5/12/17, 1:48 AM
0
vote

I tried the sketch and it's still gibberish. I increased the delay on IND to 10s and I noticed the rate of gibberish received in Mega is very fast like there was no delay in place.

Albert Tobing
on 5/12/17, 2:19 AM

What is the jumper position for this case? I left all three jumpers connected.

Albert Tobing
on 5/12/17, 4:00 AM

Ok, I am going to take a shortcut now. Can you please tell me which one is pin 5 on the ADUM1402 chip? I am going to cut it off to enable serial access through IDC 14 pin D0 & D1. Another question, can I use INT on D0 / D1 if I don't use Serial1?

Albert Tobing
on 5/12/17, 8:24 AM

Have a look at MOD1 in https://static.industruino.com/downloads/manuals/GSM_GPRS_for_Industruino_product_manual_April'2017.pdf and pinout diagrams for INTs on D0/D1

Tom
on 5/12/17, 8:46 AM

Ok, time for a little surgery. I hope it works

Albert Tobing
on 5/12/17, 9:50 AM

Maybe, but this is only my impression, what you started doing is causing you a lot of distress.

You should set some basic rules:

1 do not tamper your Industruino

2 can't think of anything else

From this viewing point, you seem running around catching the next correction, while you should consider the basics under a different point of view.

You started with an interrupt problem, you are ending with several different problems which should not be related to your project.

Sometimes the best thing is to let go and start from scratch again, even if it seems too much work.

But at least it is planned ahead and not a continuous surprise.


Il 12 maggio 2017 alle 10.24 Albert Tobing <albertlt@industruino.com> ha scritto:

Ok, I am going to take a shortcut now. Can you please tell me which one is pin 5 on the ADUM1402 chip? I am going to cut it off to enable serial access through IDC 14 pin D0 & D1. Another question, can I use INT on D0 / D1 if I don't use Serial1?

--
Albert Tobing
Sent by Industruino using Odoo about Forum Post Can't communicate with Mega 2560 using RS485 (347)
Stefano Giuseppe Bonvini
on 5/12/17, 10:12 AM

Ok, I've cut off pin no.5 of the chip and there is no way to restore it with my current tool set. I tried sending normal Serial message and the result is MIX between garbage and correct data. First I tried sending "Hello" in 2000ms interval and the result would be sometimes "Hello" sometimes "!@#!@$". I then changed the message to "A" and the result are: AAyAy}AAAAAAAßy. Any thought?

Albert Tobing
on 5/12/17, 10:41 AM

Guess what.. After connecting the IDC GND to Mega GND, all work well now. HAHAHAHAHAHAHA (sorry if inappropriate but I am full of joy now). Looking back, it's weird connecting GND on the RS485 stopped the communication completely. Actually, before I cut off the pin, I also found out that I could use INT3 of the D1 (TX) however on startup there were 7 triggers before the pulse actually went in. Since it is shared, I am afraid it would screw up the count. If it was only triggered on startup, its fine I can clear it up. Do you know what caused the trigger?

Albert Tobing
on 5/12/17, 10:52 AM

Your answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

Ask a Question

Keep Informed

About This Forum

This community is for professionals and enthusiasts of our products and services.

Read Guidelines

Question tools

35 follower(s)

Stats

Asked: 5/11/17, 1:29 PM
Seen: 863 times
Last updated: 5/12/17, 8:13 AM