Repeat communication problem

Status
Not open for further replies.

stavavr

New member
Hello,

I have a system that is supposed to read angles from encoders. Attached to each encoder is one slave who is supposed to send the information of the angle to the master. At the beginning of the work 3 slaves were connected to the master and my code worked well. But now I connected a total of 9 slaves to it and I had a communication problem between the master and the slaves. I do not understand why in the beginning the code worked and there was communication between the components and now not.
When I open the Arduino print window sometimes there is Error Wire 2 and sometimes there is Error Wire 4 - each time there is a different note and sometimes it manages to get information from some of the slaves. When the errors appear in the value of the angle there is 0.
- I checked all the slaves and they all manage to read the angle from the encoder connected to them.
- I checked the master and it works, both it and the slaves get enough electrical voltage.
- There is no shortage in the system, and all hardware components work.

I use teensy 3.2 and 3.5.

Code Master's - I added 3 more slave addresses to this code work (9 in total): https://github.com/shmulike/robot_snake_10/blob/master/Arduino/sketches/RLS_encoder_read_master/RLS_encoder_read_master.ino
Code for the slave: https://github.com/shmulike/robot_snake_10/blob/master/Arduino/sketches/RLS_encoder_read_slave/RLS_encoder_read_slave.ino


I would be very happy if you could help me understand what the problem is!
 
What are these "encoders"? Link?

Seems to be I2C?
How many pullup resistors are there, and what value?
How long is the connection in sum?
 
1. We use a magnetic encoder, its purpose was to read the angle between different vertebrae.
2. Yes it I2C , and Im wrong the master and slaves are all teesny3.2.
3.The master has 2 external pullups, each 4.7K Ohm one for SLA one for SDA, connected to 3.3V.
4. 1 master + 9 slaves The distance between each slave is about 160 mm
 
So the 10 i2c devices are all Teensys? Are they on multiple i2c busses? They have unique addresses for their bus?

Typical pullup values noted for the 3.3V Teensy is 2.2K?

What does i2c SCANNER example show from the Master?
 
The distance (9*160mm with connectors) is quite high.
Yes, using lower resitance pullups is a good idea. You could go even lower - mabe 1k?
If that still does not work, I'd try a lower I2C speed.
 
When i upload the basic-scan, nothing happens.
I see in the comments that i need to "Pull the control pin low to initiate the scan"
What does it mean?

I'm using 4.7K Ohm as mentioned here: https://www.pjrc.com/teensy/td_libs_Wire.html

I also tried to connect only 1 slave in distance of ~160 mm
Same result, I get error #2 from the Wire.getError() function
 
Last edited:
When i upload the basic-scan, nothing happens.
I see in the comments that i need to "Pull the control pin low to initiate the scan"
What does it mean?
Connect the pin with GND.

Yes, please read our posts :)

I also tried to connect only 1 slave in distance of ~160 mm
Same result, I get error #2 from the Wire.getError() function

I don't understand. In post#1 you wrote, it works with 3 slaves.
 
Status
Not open for further replies.
Back
Top