Uitlezen Dylos via RS232 lukt niet - vreemd dataformaat

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Yucon
  • Registratie: December 2000
  • Nu online
Ik probeer een dylos DC1100 (http://www.air-n-water.com/product/dc1100-pc.htm) uit te lezen via m'n computer. Volgens de documentatie zou hij een dergelijk formaat in normale ascii terug moeten sturen:

675,19<CR><LF>

maar dat gebeurt niet. De bijgeleverde tool op een windows pc werkt ondanks de juiste com poort helemaal niet en als ik het op een ubuntu pc met een rs232 sniffer probeer krijg ik dit:

cd\0xb3Z1V\0xeb\0x00ce\0xb2\0xda\0xacV\0xeb\0x00

als ik dit converteer lijken de waarden ook nergens op, en daarnaast zou je verwachten iets van regelmaat zou zien in de vorm van een hex-komma tussen de waardes maar dat is ook niet het geval.

Afbeeldingslocatie: https://www.thethingsnetwork.org/forum/uploads/default/optimized/2X/2/22ad057db28c80ba8ff835a0b8d3abab1d48ca51_1_689x354.png

Volgens de documentatie moeten dit de instellingen zijn en die heb ik ook gekozen.. het lijkt dus geen probleem in de zin van een foute baudrate.

9600 baud
8 bits
no parity
1 stop bit
no flow control

Voor de volledigheid moet ik er nog bijzeggen dat ik een FTDI adapter als hieronder gebruikt heb, in plaats van een usb/rs232 kabel zoals gebruikelijk. Maar volgens mij werkt dat van binnen identiek.

Afbeeldingslocatie: https://www.thethingsnetwork.org/forum/uploads/default/original/2X/9/9ef40d80990fe170fe4f0beb465e0061dcdf17ba.png

Heeft iemand enig idee? Toch de FTDI? Of andere suggesties?

Acties:
  • +2 Henk 'm!

  • Bravo51
  • Registratie: April 2008
  • Nu online
Indien het een echte RS232 poort betreft, gebruikt deze spanningen van -15 en +15 volt voor de data. De FTDI gebruikt 5V of 3.3V afhankelijk van de jumper. Dit betekend dat de spanningen niet overeenkomen en de chip dit niet begrijpt. Ook is dit erg slecht voor de chip, dus zeer waarschijnlijk is je FTDI module nu stuk.

Acties:
  • 0 Henk 'm!

  • Yucon
  • Registratie: December 2000
  • Nu online
Bravo51 schreef op donderdag 27 april 2017 @ 21:13:
Indien het een echte RS232 poort betreft, gebruikt deze spanningen van -15 en +15 volt voor de data. De FTDI gebruikt 5V of 3.3V afhankelijk van de jumper. Dit betekend dat de spanningen niet overeenkomen en de chip dit niet begrijpt. Ook is dit erg slecht voor de chip, dus zeer waarschijnlijk is je FTDI module nu stuk.
Kan dit willekeurige voorbeeld dat wel gewoon aan? https://www.allekabels.nl...P6nt9OsxdMCFVMo0wodKP0Faw

Ik was eigenlijk in de veronderstelling dat zo'n FTDI adapter hiervoor bedoeld was.. waar zijn ze dan wel voor?

Acties:
  • 0 Henk 'm!

  • Bravo51
  • Registratie: April 2008
  • Nu online
Je linkje zou het wel moeten kunnen. Die FTDI modules zijn voor seriële communicatie op TTL of CMOS niveau, bijvoorbeeld voor een Arduino of ESP8266. RS232 is ook een signaal specificatie niet een specificatie met betrekking tot hoe de data er uit ziet. RS232 specificeert dus de +15V en -15V spanningen, niet dat er ASCII data uit het apparaat moet komen.

Acties:
  • 0 Henk 'm!

  • Sissors
  • Registratie: Mei 2005
  • Niet online
Hoewel niet altijd juist, is het vaak zo dat alles wat een echte com poort heeft ook RS232 niveau qua spanningen. Als het enkel een header pin is dan is het vaak TTL niveau (en kan hij rechtstreeks op een FTDI chip), al heb ik ook meegemaakt dat dat niet correct was.

Acties:
  • 0 Henk 'm!

  • Ryen
  • Registratie: Mei 2002
  • Laatst online: 03-10 14:10
Oscilloscoop lenen. Je ziet dan de spanningsniveaus, de baud-rate en de word lengte en/of parity.

Acties:
  • +1 Henk 'm!

  • SA007
  • Registratie: Oktober 2002
  • Laatst online: 04-10 17:40

SA007

Moderator Tweaking
Waarschijnlijk is je FTDI adapter niet stuk, rs232 kan maar heel erg weinig vermogen leveren, waarschijnlijk niet genoeg om die adapter te slopen.

TTL serieel (zoals de FTDI adapter) en RS232 serieel zijn bijna hetzelfde, de verschillen zijn:
- Spanningsniveau, TTL is 3.3 of 5V, RS232 is officieel +12/-12V, maar vaak minder.
- Polariteir, TTL is zonder data die 3.3 of 5V, een '1' is dan 0V, RS232 is dan -12V, waarbij een 1 +12V is.
- Afstand, TTL over grotere afstanden van een meter geeft problemen, RS232 kan een meter of 15 volgens spec.

Als je naar de printplaat kan kijken, voor rs232 zit eigenlijk zonder uitzondering een speciale chip geplaatst die meestal '232' in de naamgeving heeft en een 4-5 kleine condensators eromheen.

Acties:
  • 0 Henk 'm!

  • bouwfraude
  • Registratie: Februari 2004
  • Niet online
Ik gebruik zo'n ding:
https://www.aliexpress.co...-atmega16/1920204765.html
Of een Logilink usb naar RS232 kabeltje.

Het laatste seriële ding waar ik ruzie mee had verstuurde pas data na een CR en LF iets wat putty en linux standaard niet doen...

[ Voor 6% gewijzigd door bouwfraude op 28-04-2017 11:45 ]


Acties:
  • 0 Henk 'm!

  • Yucon
  • Registratie: December 2000
  • Nu online
Kabeltje besteld :)

Acties:
  • 0 Henk 'm!

  • Yucon
  • Registratie: December 2000
  • Nu online
Kabeltje werkt *O*

Afbeeldingslocatie: https://www.thethingsnetwork.org/forum/uploads/default/original/2X/2/2865efb975546db13b84d75bcc5fdb7d4707e088.png

De volgende stap is een RS232 shield te laten werken want uiteindelijk wil ik het ding aan een arduino koppelen. Dit lukt alleen niet, ik krijg namelijk in de arduino console geen binnenkomende data welke combi's van tx/rx ik ook probeer. De tx/rx leds op het shield knipperen ook niet en ik vraag me vooral af of de bedrading tussen rs232 stekkers wel klopt. Maar volgens mij heb ik toch echt de draadjes op dezelfde manier als binnenin een officiele rs232 kabel getrokken. En zoals gezegd al vanalles gewisseld. Of maak ik een denkfout wat betreft de RS232 pinnetjes die ik op het shield gebruik?

De stekker die op de kop ligt is een male 9 pins.

Afbeeldingslocatie: https://www.thethingsnetwork.org/forum/uploads/default/original/2X/8/8c905db6e7bd9e2b943c0e15b56c8f2932b344f9.png

.. van shield naar arduino.

Afbeeldingslocatie: https://www.thethingsnetwork.org/forum/uploads/default/optimized/2X/8/88576f3487ca1371c5bc7cda9f46c18b24d6972c_1_289x500.png

En dit is de sketch die ik gebruikt heb: http://www.howmuchsnow.com/arduino/dylos/

[ Voor 5% gewijzigd door Yucon op 30-04-2017 21:34 ]


Acties:
  • 0 Henk 'm!

  • SA007
  • Registratie: Oktober 2002
  • Laatst online: 04-10 17:40

SA007

Moderator Tweaking
Er is niet echt een officiele rs232 pinout, is over de decenia best wat mee geprutst.

Als je ground klopt (dat is het belangrijkste) dan kan je met rx en tx gaan klooien waar je zin in hebt.
Die willen nog wel 's omgedraaid zitten.
Met rs232 kan je daar niks mee slopen.

Ook iets om rekening mee te houden is dat er misschien hardware flow control is.

Acties:
  • 0 Henk 'm!

  • Yucon
  • Registratie: December 2000
  • Nu online
SA007 schreef op zondag 30 april 2017 @ 21:41:
Er is niet echt een officiele rs232 pinout, is over de decenia best wat mee geprutst.

Als je ground klopt (dat is het belangrijkste) dan kan je met rx en tx gaan klooien waar je zin in hebt.
Die willen nog wel 's omgedraaid zitten.
Met rs232 kan je daar niks mee slopen.

Ook iets om rekening mee te houden is dat er misschien hardware flow control is.
Dat het niet kapot kan zullen we dan maar als het positieve beschouwen :D

Klopt het dat RX en TX 2x moeten kruisen? TX van shield op RX van arduino en vv, en tegelijkertijd met een slag om de arm ivm ontbreken van standaard ook nog een keer TX en RX gekruist binnen de RS232?

Acties:
  • 0 Henk 'm!

  • SA007
  • Registratie: Oktober 2002
  • Laatst online: 04-10 17:40

SA007

Moderator Tweaking
In principe moet rx van het chippie aan de ene kant in tx van het chippie aan de andere kant belanden.

Hnagt ervan af hoe de fabrikant bezig was wat voor stekker/pinout erop zit, aan de pc kant zit normaliter een db9 met deze pinout

Soms zit op apparaten ook deze, dan moet je een null-modem kabel hebben, soms zit er een female met de rx/tx andersom, dan heb je een verlengkabel nodig, maar alle andere opties (gender changers, verloopjes, etc) bestaan voor een reden.

Acties:
  • 0 Henk 'm!

  • Yucon
  • Registratie: December 2000
  • Nu online
SA007 schreef op zondag 30 april 2017 @ 22:18:
In principe moet rx van het chippie aan de ene kant in tx van het chippie aan de andere kant belanden.

Hnagt ervan af hoe de fabrikant bezig was wat voor stekker/pinout erop zit, aan de pc kant zit normaliter een db9 met deze pinout

Soms zit op apparaten ook deze, dan moet je een null-modem kabel hebben, soms zit er een female met de rx/tx andersom, dan heb je een verlengkabel nodig, maar alle andere opties (gender changers, verloopjes, etc) bestaan voor een reden.
Dat maakt de vraag dus eigenlijk simpel: wat verwacht het RS232 bordje? Dat is namelijk de enige onbekende. Ik ga eens spitten, bedankt zo ver :)

edit: hij werkt! Er waren twee dingen mis. Ten eerste realiseerde ik me ineens dat omdat het bordje een female connector heeft het waarschijnlijk net als de dylos een ehm 'niet-pc' kant is. Dus dat ze daarom ook compleet gespiegeld aangesloten moeten worden. Ten tweede moest volgens een arduino forum de tx van het bordje aan de tx van de arduino. RX idem.. hoe vreemd het ook mag klinken. Daar duik ik komende dagen nog eens in en als het werkt post ik de pin layout. Leuk voor het archief :)

bedankt!

[ Voor 26% gewijzigd door Yucon op 30-04-2017 23:31 ]


Acties:
  • 0 Henk 'm!

  • Sepio
  • Registratie: Oktober 2007
  • Laatst online: 12:21
TX staat voor transmit en RX voor receive.

Dus dat de transmit aan de ene kant op de receive aan de andere kant moet is eigenlijk wel logisch. Je wilt immers kunnen ontvangen wat er verzonden wordt.

Acties:
  • 0 Henk 'm!

  • SA007
  • Registratie: Oktober 2002
  • Laatst online: 04-10 17:40

SA007

Moderator Tweaking
tx en rx is ook altijd feest in de electronica.

Voor ontwerper a betetekend tx 'hier komt de data uit en gaat dus naar rx' en voor ontwerper b betekend dit 'sluit hier de tx op aan'.

Gelukkig is rs232 (en normaliter uart ook) normaal degelijk genoeg dat verkeerdom niks kapot maakt.

Acties:
  • 0 Henk 'm!

  • Yucon
  • Registratie: December 2000
  • Nu online
Sepio schreef op maandag 1 mei 2017 @ 17:03:
TX staat voor transmit en RX voor receive.

Dus dat de transmit aan de ene kant op de receive aan de andere kant moet is eigenlijk wel logisch. Je wilt immers kunnen ontvangen wat er verzonden wordt.
Ja, die moesten dus op elkaar. TX op TX en RX op RX. Alsof je iemand in z'n mond ipv in z'n oor fluistert..

Eigenljk was de RS232 kant door de genoemde ontwerper A gemaakt en de TTL kant door ontwerper B. :D

[ Voor 10% gewijzigd door Yucon op 01-05-2017 21:45 ]

Pagina: 1