USB / RS485 (CH340) converter niet op een M400 drive werkend te krijgen.

Nou ik heb ook weer eens wat. Maanden geleden een mooie drive aangeschaft van CT: een M400. Testkabeltjes gemaakt om de inputs te simuleren etc.

Daarna wegens tijdgebrek even tussen de mottenballen beland.

Eindelijk een week of 4 geleden de tijd gehad om het CodeSys programma te maken (Met Machine Control Studio). Zonder ook maar aan te sluiten de gehele code gemaakt + met de Connect software de parameters alvast voorbereid voor de drive.

Helaas weer laten liggen voor een paar weken wegens tijdgebrek. Nou ik dacht laat ik het ding effe aansluiten de parameters erin schieten en kijken wat het doet.

Helaas mijn USB RS485 convertertje (met een CH340G erin) is voor geen meter aan de praat te krijgen. Termination is goed (2x120E), baudrate, stop bits noem maar op niks werkt. Op de scoop zie ik dat de lijnen togglen. Ook de GND van de laptop aangesloten A/B omgewisseld want het is altijd een gok wat A en B is etc.

Zowel met Connect als CodeSys krijg ik geen verbinding met de drive.

Rara mis ik hier ergens wat in een of andere setting of zijn die CH340 convertertjes gewoon bagger?

1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.

Waarschijnlijk moet je naast de CH340 driver een runtime module laden, aangezien een DPM8624 (programmeerbare voeding) die ook gebruikt.
Dit uit de readme.txt:

1. Install driver (CH340\Setup.exe)
2. Install runtime module (VISA\Setup.exe)
3. Install software (SETUP\Setup_en.exe)

RES

De CH340 RS485 convertertjes die ik uit Google trek hebben enkel A en B aansluitingen, dus daar is een risico dat de common mode spanning te groot (> ruw 7V) wordt als drive en computer niet stevig bij elkaar aan dezelfde PE zitten. Bijvoorbeeld in geval van een laptop zonder PE.

RS485 legt enkel de elektrische signalen vast, niet het protocol dat daar over gesproken wordt of de snelheid etc.
De DE (Driver Enable) van de RS485 transmitter zal op het voor softwaredriver juiste signaal van de CH340 moeten zitten. Ik weet niet hoe dat ingericht is en of daar een standaard voor is.
Als de lijn voortdurend hoog of laag is zou dat een indicatie kunnen zijn van een probleem.

Met de CH340 de laatste jaren geen problemen in normale seriële toepassingen.

Op 8 december 2022 09:09:08 schreef Aart:
De CH340 RS485 convertertjes die ik uit Google trek hebben enkel A en B aansluitingen, dus daar is een risico dat de common mode spanning te groot (> ruw 7V) wordt als drive en computer niet stevig bij elkaar aan dezelfde PE zitten. Bijvoorbeeld in geval van een laptop zonder PE.

Inderdaad er is geen aansluiting voor de GND op die dingen (lekker onhandig). Ik heb de shield / GND van de USB converter aan de GND van de M400 interface gelegd. De behuizing van de USB connector was trouwens nog niet eens vastgesoldeerd binnen in de converter. Ik heb er 2 en beiden niet gesoldeerd.
Dat probleem was al geelimineerd.

De DE (Driver Enable) van de RS485 transmitter zal op het voor softwaredriver juiste signaal van de CH340 moeten zitten. Ik weet niet hoe dat ingericht is en of daar een standaard voor is.
Als de lijn voortdurend hoog of laag is zou dat een indicatie kunnen zijn van een probleem.

Er zijn twee mogelijkheden om het aan te sluiten:
de TNOW pin van de CH340 gebruiken OF de TX lijn inverteren en aan de DE lijn knopen van de RS485 transceiver.

Hier staan de potentieel 2 verschillende varianten:
https://electronics.stackexchange.com/questions/576303/problem-with-us…

Op het printje wat ik heb is het onderste schema van toepasing (volgens mij niet correcte manier) met wat andere componentwaarden.

Het probleem is nu, ik kan het ding met wat priegelwerk reworken maar werkt die TNOW pin wel met de windows CH340 driver?

1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.

Het is altijd weer een uitdaging om die DE pin te sturen.
Om dat te doen met een geïnverteerde TxD is een slecht idee. Dan wordt de transmitter telkens uitgezet afhankelijk van het bit dat wordt verstuurd. Dan ben je afhankelijk van de scheeftrek-weerstanden om het toch nog werkend te krijgen.

Vroeger werden de handshake lijnen gebruikt om DE te sturen. Maar windows geeft erg weinig controle over de timing van die lijnen en dat maakt gebruik voor DE kansloos.

Voor zover ik weet heeft de CH340 geen directe support voor aansturen van de DE lijn. Die chip is vooral bedoeld voor RS232 toepassingen.

TXDEN zit wel op een FT230X van FTDI. Die wordt door de chip aktief gemaakt zolang er data onderweg is. En is speciaal bedoeld om RS485 aan te sturen.

buckfast_beekeeper

Golden Member

Ik gebruik probleemloos deze USB=>RS485 omzetter van Sertronics.

Heeft ook een CH340 chipset aan boord. Staat altijd in de ontvangstmodus tenzij je via de com poort gegevens verstuurd.

Ik gebruik hem nu om de RS485 om communicatie tussen verschillende nodes en master te sniffen of om zelf commando's te testen vanuit de seriële monitor van de Arduino IDE.

Van Lambiek wordt goede geuze gemaakt.
GJ_

Moderator

Als je een originele kabel nodig hebt moet je me even mailen. Dan heb je zeker geen gedonder.

Ik weet het: die TX inverteren is een slecht plan. Als er een 0 uitgestuurd moet worden, tristate de driver, lekker puh.

Ik ga nog een kleine poging wagen vanavond om effe te kijken of de TNOW pin uberhaupt toggled bij een transmit en dan het ding reworken en kijken of het werkt.

Wordt vervolgt: Dit ter lering en vermeak voor de volgende persoon die hierin verstrikt raakt.

@buckfast_beekeeper: Dat is dezelfde als ik 2 heb liggen, werkt niet.

@GJ_ Ik stuur je wel een email vanavond over die kabel.

1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
GJ_

Moderator

Als ik zoek op CH340 vs FTDI komt die CH340 er vaak slecht uit. Ik heb er verder nul-komma-nul ervaring mee, en evenveel verstand er van.

buckfast_beekeeper

Golden Member

Met prolific veel problemen gehad. Met FTDI of CH340 nog niet. Alle Wemos bordjes hebben er 1 op zitten en die worden massaal gebruikt.

@henri62, een max(3)485 werkt er perfect mee samen. A=>A en B=>B.

Staat de baudrate correct?

Van Lambiek wordt goede geuze gemaakt.
Arco

Special Member

Ik gebruik voor serieel meestal kabeltjes met een CP2102 van Silabs, nooit problemen...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.

Eindelijk effe tijd gehad om te kijken of die TNOW pin wat doet: Noppes er komt niks uit die pin. Pullup/downdown/niks eraan er komt nooit iets uit.

Het exacte schema van dat ding door iemand anders reverse engineered:
https://hackaday.io/project/167532-modbus-things-with-stm8-eforth/log/…

Het zijn dus deze bagger dingen: (NOOIT KOPEN DUS)
https://www.reichelt.nl/nl/nl/raspberry-pi-usb-rs485-interface-rs485-c…

Rara mis ik hier ergens wat in een of andere setting of zijn die CH340 convertertjes gewoon bagger?

Nee ik heb niks gemist. Ja is gewoon bagger.

Op pin 14 komt er wel wat uit maar dat signaal blijft te lang actief.

De CH340G noemt die pin 15 RS232 (werkt niet).
De CH340B heeft wel een TNOW pin 15 (=pin compatible). Misschien dat die het wel doet. Maar de interne oscillator daarvan schijnt ook bagger te zijn.

Ook heb ik een ontwerpje gevonden met een CH340E met ook een TNOW pin.
Maar ja die losse chips kun je toch bijna nergens kopen en die past niet op het printje.

Ik heb ondertussen een andere redelijk goedkope converter gevonden, met GND aansluiting en FTDI chip erin. Als ik die binnen heb laat ik wel weten hoe die het doet.

1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.

Vandaag mijn nieuwe RS485 convertertje binnen: Werkt als een speer, aangesloten, direct connecten zonder enig probleem.

Het is dus deze voor net geen 15 euro van Waveshare (nee ik heb geen aandelen):
https://elektronicavoorjou.nl/en/product/usb-rs485-converter/
Was waarschijnlijk de laatste want nu is die out of stock.

Doosje met de converter + verlengkabeltje + mini schroevendraaiertje, in het ESD zakje zat de dongle:

Dus smijt die 2-polige CH340G dingen maar in de prullenbak, niks waard.

Ondertussen net mijn project gedebugged en dat werkt nu ook.

Wel vind ik dat die M400 drive redelijk traag is met het doorgeven van de digital input pins naar de ingebouwde PLC dat duurt honderden ms. Moet ik nog uitzoeken waarom dat is.

1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
GJ_

Moderator

daar zet je de parameters in waar je snel toegang tot wil hebben. Die input status is ook gewoon een parameter, bv 08.001

Je bedoeld dan menu 22 waarmee je elke willekeurige parameter naar menu 0 (Quick Setup) kunt mappen? Ik zou zeggen dat dat alleen voor de handigheid van de gebruiker is?

Maar wat heeft dat met de access tijd vanuit de CodeSys PLC naar de parameters te maken? Is de snelheid van lezen/schrijven naar 0.xxx dan sneller vanuit de PLC dan naar andere parameter blocks 's zoals M08.xxx M06.xxx en M18.xxx?

1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
GJ_

Moderator

Nee, in codesys zit de fast access parameter list in object tree. Menu 22 is ergens anders voor.
Klap de hele tree eens open.

Niet zichtbaar: maar ik zie nu dat ik zo'n object wel toe kan voegen aan het application object.

Daar dan de variablen die ik nodig heb in gooien. Ik zal eens even proberen of dat sneller is.

-edit-
Nu even getest, werkt al een stuk sneller. Bedankt voor de tip.

Hoeveel variabelen kun je daar eigenlijk in gooien, zo te zien 10 stuks max? (Ik kom er net mee weg, heb er 10 nodig).
En waar is dat eigenlijk gedocumenteerd, ik kon nergens iets vinden.

1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.