Komunikace po RS232
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama

Komunikace po RS232Komunikace po RS232

 

Komunikace po RS232

Google       Google       9. 11. 2006       45 705×

Tento díl je určen zejména začátečníkům, kteří s komunikací po sériové lince teprve začínají. Věnuje se nejen suché teorii, ale také praktické stránce problému, a přináží řešení hardware s převodníkem MAX232.

Reklama
Reklama

V čem je problém a na co je třeba MAX232?

V sekci download na webu http://k-programs.net je možné si stáhnou specifikaci RS232, kterou se stavy na sériové lince řídí, ale pro nezasvěcené tyto informace raději zopakuji.

Klidový stav je u Rozhraní RS232 reprezentován logickou 1, v tomto případě reprezentovanou záporným napětím. Log. 0 je naproti tomu reprezentována napětím kladným. V případě vysílače může napětí dosahovat min. −15 a max. +15 V, a to by obvody pracující s TTL úrovněmi spolehlivě zničilo.

Z tohoto důvodu je nutné použít obvod, který nám převede urovně z RS232 do úrovní TTL. Jedním z nich je i MAX232 (nebo např. ST232). Tento obvod je napájen 5 V a využívá nábojové pumpy pro tvorbu vyššího výstupního napětí.

Tento obvod vyrábí více výrobců, a tak není třeba zůstávat pouze u produktů firmy MAXIM. Např. SGH-THOMSON vyrábí ST232, který v závislosti na typu umožňuje využít menší hodnoty kondenzátorů, a tak i zmenšit i aplikaci, ve které je použit.

Vždy je nutné pečlivě si prostudovat dokumentaci k obvodům, které používáte. Přestože se výrobci snaží vyrábět pinově kompatibilní obvody, mnohdy se stává, že špatným nastudováním katalogového listu vzniknou zbytečné chyby.

Pokud to není nutné, nepoužívejte elektrolytických kondenzátorů, které mají na používané frekvenci poměrně vysoký sériový odpor, a zařízení se tak stává nespolehlivým. Doporučují se tantalové kondenzátory nebo keramické s hmotou X7R.

Kondenzátory umisťujte co nejblíže k vývodům obvodu.


Dobře, a teď k té praktické stránce

Tento díl má za úkol nejen plnit funkci vzdělávací, ale také čtenáři přinést námět, jak si vyrobit vlastní převodník s obvodem MAX232. Následující schéma ukazuje doporučené zapojení převodníku spolu se zdrojem.

Jak je dobře vidět, zapojení vychází z doporučeného zapojení výrobce. Funkci doplňují dvě diody pro indikaci stavu na linkách Rx, Tx. Tyto dvě diody doporučuji 2mA, aby neovlivňovaly funkci převodníku. Pakliže by bylo nutné z nějakého důvodu využít LED s větší spotřebou, je nutné pro ně přidat do zapojení spínací tranzistory. Například BC547, nebo obdobné.

Zapojení pak už jen doplňuje zdrojová část, jejíž funkci myslím nikomu nemusím vysvětlovat. Následují obrázky návrhu pložného spoje.

Dále je nutné si připravit konektor CANON9 a dostatečně dlouhý 3 žilový kabel, který na jednom konci připájíme k pinům 2, 3, 5 a na druhém k dutinkové liště se třemi pozicemi. Připomínám, že na konektoru je nutné mít pospojované piny 7, 8 a 1, 4, 6. Oživení přípravku je záležitostí jedné či dvou minut. Propojte TTL výstup s TTL vstupem, např. jumperem a ve vhodném terminálu odesílejte znaky. Pracuje-li přípravek, pak budete to samé přijímat. Indikaci přenosu obstarávají diody D2, D3.

V tuto chvíli máme postavený převodník RS232 ↔ TTL. Některá PC ale už Port s rozhrním RS232 nevlastní, a proto by se hodilo zapojení pro USB port. To si ukážeme příště spolu s ukázkovým programem pro AVR.

Pro nedočkavé přeci jen uvádím zdrojový kód:

;uart.asm
;
;test program for Duplex UART

     	.include        "m16def.inc"

     	ser             r16                    	;port B all outputs
     	out            	ddrb,r16
	ldi             r16,RAMEND         	;initialise stack pointer
	out             spl,r16
	sbi             ucr,txen                ;enable UART transmitter
	sbi             ucr,rxen                ;enable UART receiver
	ldi             r16,5000000/(9600*16)-1 ;set baud rate
	out             ubrr,r16


loop:
     	rcall           serin
	rcall           serout
	rjmp            loop                    ;do forever


;serial output routine - output byte in r16 to UART

serout:
	out             udr,r16         	;load UART data register
serout1:
	sbis            usr,udre        	;if UART data register empty bit is clear
	rjmp            serout1         	;       loop back
						;else return
	ret

;serial input routine - input byte from UART to r16

serin:
        sbis            usr,rxc     		;if UART Receive Complete bit is clear
        rjmp            serin       		;       loop back
        in              r16,udr     		;else get received byte in r16
        ret                         		;and return

Program pochází z tohoto zdroje: www.geocities.com/leon_heller/uart.html

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Ondřej KarasAutor se věnuje vývoji řídících a komunikačních systémů a tvorbě podpůrných aplikací.
Web    

Nové články

Obrázek ke článku Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres HCPP16 pořádá od 30. září do 2. října nezisková organizace Paralelní Polis již potřetí, a to ve stejnojmenném bitcoinovém prostoru v pražských Holešovicích. Letos přiveze na třídenní konferenci přes 40 většinou zahraničních speakerů – lídrů z oblastí technologií, decentralizované ekonomiky, politických umění a aktivismu. Náměty jejich přednášek budou také hacking, kryptoměny, věda, svoboda nebo kryptoanarchie.

Reklama
Reklama
Obrázek ke článku ICT PRO školení zaměřené nejenom na ICT

ICT PRO školení zaměřené nejenom na ICT

Dovolte, abychom se představili. Jsme zaměstnanci společnosti ICT Pro, profesionálové v oblasti poskytování komplexních ICT služeb. Neboli služeb spojených s informačními a komunikačními technologiemi, které dnes - ve 21. století - tvoří  nedílnou součást běžného provozu všech moderních firem.

Reklama autora

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý