Během aplikace jednočipových mikrokontrolerů narážejí konstruktéři často na
nedostatek RS232 portů. V některých aplikacích lze použít procesory s dvěma
integrovanými rozhraními RS232, nebo toto rozhraní emulovat softwarově, ale ani jedno mnohdy
není ideální řešení.
Tohoto problému si všimli ve firmě MAXIM a nabídli zajímavý obvod, která
můž tyto problémy řešit. Jedná se o port rozhraní RS232 řízený po sběrnici
SPI/Microwire.
Jedná se o poměrně jednoduchý integrovaný obvod v pouzdře DIP 14 nebo QSOP 16 (smd). K mikroprocesoru se připojuje pomocí pěti vodičů.
- clock (z procesoru)
- data_in (z procesoru)
- data_out (z obvodu MAX 3100)
- chip_select (z procesoru)
- interrupt (z obvodu MAX 3100).
Přitom všechny vodiče kromě chip_selectu a interruptu (záleží na zapojení) mohou
být na jedné sběrnici - sdílené s ostatními zařízeními, (např.
AD,DA převodníky, paměti, obvody reálného času...).
Pokud nevyžadujeme maximální rychlost čtení z obvodu, není nutné interrupt
použít. K obvodu je nutno ještě připojit krystal podle požadované rychlosti. (f=1,8432
MHz, nebo 3,6864 MHz). Jedná se o běžně dostupné hodnoty.
Sériové rozhraní obvodu je provedeno v úrovních TTL logiky = 5V. Pro použití v plnohodnotné lince RS232/V24 je nutné signály konvertovat na správné napěťové úrovně. Toho lze nejsnáze dosáhnout použitím obvodu MAX232, případně jinou variantou převedení napěťových úrovní z TTL na RS232.
S krystalem 3,6864 MHz obvod dosahuje maximální rychlosti 230,4 kBaud, s krystalem 1,8432 MHz dosahuje maximálně 115,200 kBaud. Nastavení nižších rychlostí se provádí softwarově, je možné dosáhnout většiny běžně používaných rychlostí. Minimální rychlost je 300 Baud.
Obvod MAX 3100 v sobě obsahuje i paměť FIFO 8 byte pro příjem a dalších 8 byte pro vysílání. Ani při vysokých rychlostech nemusí obsluha obvodu po SPI příliš zatěžovat procesor ani sběrnici. Použití vyrovnávacích bufferů je možné softwarově zakázat.
Pro efektivní řízení přenosu, hlavně na vyšších rychlostech, je dobré použít interrupty.
Možné zdroje přerušení
- příjem,
- vysílání dokončeno(možno odeslat další byte),
- RA/FE (receiver activity/framing error - RA pro detekci aktivity v sleep mode, FA - chyba přenosu)
- parita=1 (pro detekci adresy v 9ti bitových sítích) .
Každé z těchto přerušení je možné nezávisle na ostatních
povolit/zakázat.
Rozsah napájecích napětí obvodu MAX 3100 je 2,7 V až 5,5 V, napájení z baterií by tedy neměl
být problém.
Spotřeba obvodu je nízká (max. 1mA, typ 0,27 mA při 5V a f=1,8432 MHz), ale přesto obvod obsahuje
režim snížené spotřeby. Do tohoto režimu je možné obvod uvést softwarově (dojde k
odeslání celé výstupní FIFO a pak teprve usne) nebo pomocí vstupu SHDN
(usne okamžitě). V úsporném režimu je spotřeba zanedbatelná (max.10 uA).
V úsporném režimu je také zastaven oscilátor, ale SPI rozhranní
zůstává aktivní a do jisté míry i vstup sériové linky. V
případě příchodu znaku je aktivován interrupt RA/FE, celá aplikace se tedy může vzbudit
na základě aktivity sériové linky. Avšak několik prvních znaků bude samozřejmě
poškozeno, podle dokumentace trvá start oscilátoru asi 25 ms.
Z hlediska procesoru je komunikace s obvodem banální. Nevyžaduje přesné časování, ani náročné jištění přenosu (CRC, check-sum), spočívá pouze v "postupném přecvakání bitů po sobě do správných drátů". Ukázkový (a snad dostatečný) příklad v assembleru je v dokumentaci k obvodu. Příklady jsou řešeny pro mikroprocesory řady 51 a PIC.
Obvod je zároveň navržen i pro podporu IrDA. Tomuto rozhraní je dokonce vyhrazen samostatný režim. Obvod byl navržen pro přímé buzení IR vysílačů, maximální proud je 25mA
V některých aplikacích si přejeme využít i linky DTR/CTS. Je to možné, obvod obsahuje patřičný vstup a výstup, nejsou vsak řízeny přímo obvodem, ale po SPI sběrnici se o ně stará mikroprocesor.
Datasheet MAX 3100
Datasheet MAX232
Další informace můžete získat na adrese www.maxim-ic.com.
Obvod v ČR a SR dodává SPEZIAL ELECTRONIC.