v20180529
home
>> hardware
>> rs232
Mijn Raspberry Pi heeft geen RS232 aansluiting, heeft het zin verder te lezen ? Zijn de GPIO pinnen TxD en RxD te gebruiken als RS232 ? Wat is het verschil tussen TTL en RS232 ? Kan ik beter een USB gebruiken ? Kan ik mijn projecten met RS232 nog op de Pi gebruiken ? |
Ja. Zeker, maar ... Wordt uitgelegd. Misschien. Natuurlijk. |
Hieronder mijn beschrijving hoe we de seriele poort onder RISC OS kunnen blijven gebruiken.
Deze "serialdev.zip" bevat RISC OS drivers en programma's.
In de verkleinde afbeelding hiernaast (bron), zien we bovenaan het seriele signaal op TTL of computerniveau (3.3 of 5V) en onderaan op RS232 niveau. Klik op de afbeelding en deze wordt in een apart venster op ware grootte weergegeven. De computer verzendt de hoofdletter ¨J¨ (74 decimaal / 4A hexidecimaal of 01001010 binair). Eerst wordt een startbit verzonden: gedurende de ingestelde baudrate-tijd gaat de uitgang van de UART laag, het RS232 signaal (steeds omgekeerd) gaat naar plus, mogelijk zelfs tot +15V. Dan worden de bits doorgegeven, beginnend met b0, de bit met de laagste binaire waarde. .... enz.
Verbindt deze verschillende soorten van aansluitingen nooit met elkaar want |
RS232 op mijn computer ?
Een eenvoudig overzicht
computer | aansluiting | driver | mijn bron |
Acorn Archimedes A5000 Acorn RISC PC | Volledige RS232 sub-D 9p | Dummy InternalPC InternalNH (OS 5+) | BBC |
IyonixPC | 2x volledige RS232 sub-D 9p | Dummy InternalNH (1ste poort) Internal32 (2de poort) | XAT |
A9 | volledige (?) RS232 sub-D 9p | Dummy InternalNH | |
BeagleBoard | on volledige (?) RS232 sub-D 9p | Dummy InternalNH | |
PandaBoard | onvolledige RS232 sub-D 9p | Dummy InternalNH | |
Raspberry Pi | UART 3.3 V TTL met enkel Rx en Tx | Dummy PiSerial | Tank Stage |
ARMX6 (imx6) | RS232 sub-D 9, enkel Rx, Tx, RTS en CTS | Dummy InternalNH | BBC |
Evt. ook | PipeA = Communiceert met Pipe B PipeB = Communiceert met Pipe A TelNet = Verbindig via TCP/IP | BBC |
Als we de laatste versie van ons besturingssysteem hebben geinstalleerd, zou de poort kunnen werken.
We kunnen onderstaande stappen overslaan en gaan direct naar controlen met "!Connector".
Toon de devices van deze computer
Ik heb een Rasapberry Pi of ik zie een RS232 aansluiting, maar ...
In "serial.zip" zit o.a. "het programma Show Devices". Ik schrijf het tussen aanhalingstekens, want het is slechts 1 commando lang. Gewoon dubbel-klikken. |
Drivers controle met "!Serial" van XAT
"!Serial" is een programma dat een mooi overzicht geeft van alle actieve (block-)drivers. Voor mijn Raspberry Pi geeft dit: |
"!SerialDev" en de (block-) drivers
We openen (met shift+klikken) !Boot en daarna Resources. Is het programma "!SerialDev" aanwezig ? | ||
Neen ? Dan uit "serial.zip" halen en hierin plaatsen. Ja ? Dan gaan we de drivers binnenin !SerialDev nakijken. |
Klaar ? Nu zou alles moeten werken en met de volgende stappen gaan we de goede werking van de seriele poort controleren.
Dit is een eenvoudig, maar krachtig terminal programma. Versie 1.03 is een 26b programma, <http://connector.a-m-z.org/index.html>. Versie 1.07 is de 32b versie, geschikt voor alle moderne machines. Configuratie: - eerst de driver instellen: menu-klikken op programma icoontje van ¨!Connector¨, het staat recht-onder op de iconenbalk >> klik op Choices... >> klik op Serial >> selecteer de driver PiSerial voor een Raspberry Pi. - baudrate ed. kan je "on the fly" veranderen aan de onderzijde van het programma venster.
Als er geen serieel toestel is aangesloten, lijkt het programma niet te werken omdat standaard enkel de ontvangen tekens via de RxD in het venster worden weergeven. |
3 + 2 of Tx met Rx of verzonden data wordt terug ontvangen 7 + 8 of RTS met CTS 1 + 6 + 4 of .... |
Controle met een loopback verbinding op de RPI
Wat we verzenden, gaan we direct terug inlezen (TxD > RxD).
Met een jumper verbinden we headerpin 8 met 10, d.i. TxD met RxD (GPIO14 met GPIO15).
Converters TTL, RS232, USB, ...
Zoek naar RS232 bij Adafruit,
Antratek,
Watterott,
... en de vele verschillende converters, oplossingen, ...vullen het scherm, de mogelijkheden lijken onbeperkt !
Vooral de industrie, samen met µControllers & het IoT, blijven de seriele poort in vele variaties gebruiken. Converters TTL/UART naar RS232, RS232 naar USB, of direct TTL naar USB Converters naar Bluetooth, LAN, WiFi, GSM, (Touch-)Display... Converters naar RS485, I2C, CAM, MIDI, DMX, ... |
Voor de meeste projecten met de Raspberry Pi heb je geen converter nodig.
Toch een echte RS232 nodig ? Neem een kijkje bij de vele accessoires voor de Pi
- een eenvoudige TTL naar RS232 converter, bv. Antratek artikelnr. S3ED/101990008
- een speciale HAT, bv. https://www.antratek.nl/raspberry-pi-rs232-board
Enkele bronnen en nuttige links
Vooral de engelstalige Wikipedia geeft veel uitleg over RS232.
Een meer technische uitleg vinden we bv. bij ARC Eletronics.
Big Ben Club, url <http://www.bigbenclub.nl/>
In het tijdschrift Asterix 31-04 staat een artikel over de ¨Siemens Pocket Reader¨. Henri geeft hier ook een hele duidelijk uitleg over "!SerialDev". Hierin vond ik vele recent versies van verschillende (block-)drivers. Ook een aantal extra bestanden en mappen met uitleg: ReadMe, Help, Info en Info32 |
XAT, blockdrivers, url <http://xat.nl/riscos/sw/bd/index.htm>
Veel uitleg en o.a. ook het handige programma "!Serial".
Tank Stage, url <http://www.tankstage.co.uk/Software>
"PiSerial" staat zonder link, maar dit is de link <http://www.tankstage.co.uk/Software/PiSerial.zip>
De zip bevat ook een help file voor programmeurs.
Op deze website vinden we ook de module voor het gebruikt van de GPIO voor het Beagle- en Pandaboard en de RPi.
Lammert Bies, RS232 connectors en kabels, url <https://www.lammertbies.nl/comm/cable/RS-232.html>
UART Communication Tutorial
http://www.8051projects.net/wiki/UART_Communication_Tutorial
RISC OS Open, forum, url <https://www.riscosopen.org/forum/>
ARMX6 serial port: <https://www.freelists.org/post/armini-support/ARMinisupport-ARMini-Serial-Port,1>
ARMX6 OS update 6 released: <http://www.freelists.org/post/armini-support/ARMinisupport-ARMX6-OS-update-6-released,8>