As the title says, i found what i think is an error in the datasheet for the MAX3490 8 pin IC,
on page 15 of the datasheet it says that i can use the 3490 for multipoint RS485 network, but the 8 pin IC doesn't have the output enable pin, so when the data input pin is in either state, the IC is driving the differential output to either A-high and B-low, or A-low and B-high... and if i daisy chain multiple devices they are in conflict, it seems to me that only the MAX3491 has the capability for a RS485 multipoint network... or am i wrong? datasheet here
The issue i'm facing is that when i connect 1 master and 1 slave, all works as it should even with 50 meters of cable at 1Mbps,
with 2 slaves it still works but it gets "funky" at times,
with 3 and 4 slaves it outright doesnt work because the voltage swing on the differential lines goes from +3v to +2V (instead of +3 to -3).
is there a workaround or do i need to use the MAX3491 IC?
From the data sheet: Driver Output Enable. The driver outputs are enabled by bringing DE high. They are high impedance when DE is low. If RE is high and DE is low, the device will enter a low-power shutdown mode. If the driver outputs are enabled, the parts function as line drivers. While they are high impedance, they function as line receivers if RE is low.
The problem appears you have termination resistors enabled on all units. Do not do this, just enable the one(s) at the physical end of the bus, the ones in the middle leave termination off.
The termination resistors were placed only on master and last slave, then i removed it all but the issue is the same, plus on page 8 figure 2 you can see that the 3488 and 3490 dont have DE or RE pins, so i dont get what are you trying to say,
I would guess that without the pins they default to enabled, both receiver and driver, and by testing with a voltmeter i get -3V between Z and Y lines with DI low, and +3V with DI high
first: the slave board, red and black wires are +5V and GND, followed by A,B,Z,Y.
on the board are: 5V to 3v3 linear, ATmega48pa and MAX3490 (without termination resistors), on the backside ENS160+AHT21
then we have a test board, from USB to UART to RS485 (FT232RL + MAX3490)
the final product is an LCD display but the results are the same, as soon as i connect the 3rd slave, i lose connection with the previously working 2
at last, the connector splitter i made to test if it was a problem in cable length or something else, because when i used 4 cables for 4 slaves, i suspected the length of the wires were the issue...
notice how the A,B,Z,Y connections are flipped as per datasheet.
Looks to me like a pair of drivers/receivers that are not meant for multidrop, just for creating noise-tolerant one- way links.
I.e. intended, not dubious.
why include the MAX3488 and MAX3490 here if they are not intended for this purpose?
when on page 8 fig. 2 it was already explained how to use it in single ended applications
Yes, but with a driver always enabled, only one node talks.
I see the issue with the datasheet, indeed. But it truly is ancient history. I would hope that with no enable, the wary designer would dig deeper before using where enable/disable was needed.
the MAX3490 is just a transreceiver, it doesn't have an address, the ATmega48pa on the other hand was programmed to answer only when his address was called, so i have 4 slaves with 4 different addresses, and it works with any combination as long as I don't connect more than 2 slaves... here's the code
the thing is, i had to make a multipoint network, cables length around 75 meters, i had a hundred of these MAX3490 lying around, cheched the datasheet, and it said to me: "yeah, you absolutely can, this is how you wire it up"... and so i sketched a couple boards and a couple hours later the prototypes were ready..., it takes little time and effort to change IC, but the 3491 isn't on my hands right now... what would the experts recommend? a CAN network? another RS485 IC?
well, half and full duplex doesn't exclude the possibility of a multipoint network, it just says that only one device can talk on the line at a time (in half duplex), or both master and 1 single slave can talk at the same time (full duplex) ... 2 vs 4 data wires
There are many choices. How many nodes? The venerable MAX485 will do 32, more modern variants (1/4 load) will do 128 apparently. There are selection guides on maxim's website, IIRC.
on this project 4 nodes + master is enough, 75 meters of ethernet cable, but the IC has to be on the bigger side, like the MAX3490 because with the CNC I can make boards with at least 0.2mm of spacing between traces
oh, and forgot to say that the layout is like this
N1 ---- N2 ---- LCD ---- N3 ---- N4,
the master is the LCD and is in the middle of the network,
the farthest node is 25 meters from the next one (N1 to N2)
and the closest is 50cm (LCD to N3)
don't i need to just connect RO and DI together to transfer data across the entire network? (like the repeater example on the maxim datasheet)
or else i could modify the software to echo the incoming data on the output
---edit---
whoops, better not echo the communication with the ATmega, if just one node fails, the whole network goes down with him... if I short the RO and DI pins instead even if the mega stops working the network is still running.
there is still another issue, if i detach one node or the MAX3490 blows up, again... the whole network stops working