![]() |
Forum Index : Microcontroller and PC projects : RS485/422 no enables required
Author | Message | ||||
Tinine Guru ![]() Joined: 30/03/2016 Location: United KingdomPosts: 1646 |
Can't get the actual SN65HVD31DR device until 2023. Seems that Digikey will have the Click module in March though. Craig Edited 2022-02-15 20:36 by Tinine |
||||
knivd![]() Regular Member ![]() Joined: 07/09/2014 Location: United KingdomPosts: 72 |
This one works quite well |
||||
bigmik![]() Guru ![]() Joined: 20/06/2011 Location: AustraliaPosts: 2950 |
Hi Craig Do you want 2 wire (half duplex) or 4 wire (full duplex)? I have used the SN75175 and SN75174 extensively in my working ways these are 4 wire and extremely reliable over 1500m (well at 9600baud at least) Regards, Mick Mick's uMite Stuff can be found >>> HERE (Kindly hosted by Dontronics) <<< |
||||
Volhout Guru ![]() Joined: 05/03/2018 Location: NetherlandsPosts: 5089 |
The SN65HVD31 has independent transmitter and receiver WITHOUT enables. This means that they are targeted for point-point connections (not a bus like RS485 where transmitters must be disabled when not transmitting). The one knivd proposes does not work in this application, unless you use 1 prewired for transmit, and prewire a second one for receive. In essence this method can be used for most RS485 drivers. Use 2. The chips bigmik propose are not in a single 8 pin package, but will do the job, if the bandwidth is not required (the chip tinine needs is 2Mbps). Edited 2022-02-16 18:41 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
Volhout Guru ![]() Joined: 05/03/2018 Location: NetherlandsPosts: 5089 |
PicomiteVGA PETSCII ROBOTS |
||||
Tinine Guru ![]() Joined: 30/03/2016 Location: United KingdomPosts: 1646 |
Hey guys ![]() I have a bit of an unusual thing going on in that; I use 4-wire multi-drop full duplex but it is strictly command/response. The master has the TX permanently enabled and the RX is a slave-shared response line. So there never really is any FD actually happening. I have been using MAX491s thus far and each slave enables when a TX is required. From what I can see, only the SN65HVD31DR in my OP is a 3v3 device. Or did I miss something? Thanks for the feedback ![]() Craig Edited 2022-02-16 19:22 by Tinine |
||||
Tinine Guru ![]() Joined: 30/03/2016 Location: United KingdomPosts: 1646 |
@Volhout...Good call ![]() I was certain that I checked Mouser ![]() Craig |
||||
Volhout Guru ![]() Joined: 05/03/2018 Location: NetherlandsPosts: 5089 |
Hi Tinine, Just because I want to learn from your experience. Are you sending ASCII over the link, or are you using a more robust (modbus or similar) protocol with CRC's and retries ? From what you explained before I understand that your field of operation definitely is industrial, and I want to know if this kind of environment can live with ASCII over twisted wire (RS485) without CRC's and retransmission... Regards, Volhout PicomiteVGA PETSCII ROBOTS |
||||
Tinine Guru ![]() Joined: 30/03/2016 Location: United KingdomPosts: 1646 |
@Volhout Hey buddy ![]() I use a binary protocol with a simple checksum. I adopted it from "NMC" (network motion control). Never experienced a checksum error and if I did, that would indicate an electrical failure and the machine would simply shut down. Here is an example: ![]() That is an example of a command to move a motor. The motor could be a CNC axis or a robot, etc. So here is my rhetorical question regarding noise and error checking: What about the zillions of CNC machines and robots out there? The controller receives nothing but differential 5v pulses from each encoder. There is no error checking protocol and if a few pulses go missing, the axis is either out of position or has smashed into something. Furthermore, there is absolutely no way to keep these signals away from noise because the motors and drive-amplifiers (servo controllers) are reliant on high frequency PWM (many of mine are 100HP). In the days prior to differential transceivers, we had to be very careful but today it's a non-issue. So I personally wouldn't have a problem with ASCII transmissions without error checking/correcting BUT only in a case where there is no possibility of buss contention. ACK/NACK is a good idea, though. One big-name product that I have been using since the mid 80's is pure ASCII and returns ":" for ACK and "?" for NACK. Craig |
||||
Volhout Guru ![]() Joined: 05/03/2018 Location: NetherlandsPosts: 5089 |
Understood ! The checksum is across all except the header I found out. That makes sense. The header is to wake devices, and prepare to read the address, and act on it. Thanks Volhout PicomiteVGA PETSCII ROBOTS |
||||
Tinine Guru ![]() Joined: 30/03/2016 Location: United KingdomPosts: 1646 |
Yeah AA = 10101010 ![]() Also the "D" (decimal 13) in the "D4" CMD byte indicates that 13 data bytes are to follow, prior to the checksum. Regards, Craig |
||||
![]() |
![]() |
The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2025 |