Translacja poziomów logicznych
Transkrypt
Translacja poziomów logicznych
Pro jekt: Sterowniki robotów Materiaªy pomocnicze: Translacja poziomów logicznych Marek Wnuk Mikrokontroler MC9S12A64 jest zasilany napi¦ciem 5V (4,5 - 5,5). Wiele ukªadów towarzysz¡cych (czujników itp.) wymaga napi¦¢ ni»szych (np. 3,3V). W tej sytuacji konieczne jest zapewnienie odpowiedniego zasilania i dopasowanie napi¦ciowych poziomów sygnaªów logicznych. Zasilanie 3,3V mo»na wytworzy¢ przy pomocy liniowego stabilizatora maªej mocy, o maªym spadku napi¦cia (low drop), np. LE33. W zale»no±ci od kierunku przepªywu sygnaªów mo»na wyró»ni¢ trzy typy translacji poziomów logicznych: • z wysokiego na niski poziom napi¦ciowy (high to low), • z niskiego na wysoki poziom napi¦ciowy (low to high), • dwukierunkowa (bidirectional). Ukªady zasilane z 3,3V, toleruj¡ce 5V na wej±ciach Poziomy napi¦ciowe dla ró»nych standardów logicznych przedstawiono na rys. 1 (wedªug Texas Instruments). Jak wida¢, wspóªpraca w prawie wszyst- Rysunek 1: Poziomy logiczne dla ró»nych typów sygnaªów kich zestawieniach jest mo»liwa, je±li ukªady toleruj¡ napi¦cie 5V na wej±ciu. Problematyczne jest poª¡czenie wyj±cia ukªadu niskonapi¦ciowego (3,3V) z wej±ciem ukªadu CMOS zasilanego z 5V. Je±li mamy do czynienia z ukªadami toleruj¡cymi 5V na wej±ciu, to mo»liwe jest przyª¡czenie ich do wyj±¢ 9S12A64 bezpo±rednio. W przeciwnym kierunku (wyj±cie ukªadu 3,3V na wej±cie 9S12A64) wymagane jest (wedlug specykacji Freescale) zapewnienie napi¦cia stanu wysokiego 3,25V (0,65 VDD). Margines bezpiecze«stwa jest wi¦c niewielki i w niektórych przypadkach mo»e by¢ pomocne zastosowanie rezystora podci¡gaj¡cego wyj±cie ukªadu 3,3V do jego zasilania 3,3V (pull-up). 1 W rodzinie ukªadów logicznych 74LVC s¡ dost¦pne bufory z podwójnym zasilaniem (np. 74LVC1T45, 74LVC4245) pozwalaj¡ce dokona¢ odpowiedniej translacji poziomów (rys. 2). Rysunek 2: Ukªad pojedynczego bufora dwukierunkowego 74LVC1T45 Dedykowane translatory jedno- i dwukierunkowe Specjalne ukªady przeznaczone do jedno- i dwukierunkowej translacji poziomów logicznych s¡ produkowane przez wiele rm. Przykªadem mo»e by¢ Maxim (http://www.maximintegrated.com/), który oferuje ukªady z rodzin MAX33xx i MAX30xx. Jako przykªad jednokierunkowy mo»e sªu»y¢ ukªad MAX3392, zawieraj¡cy trzy translatory high to low i jeden low to high (rys. 3). Dobrze nadaje si¦ Rysunek 3: Translator MAX3392 on do zastosowania dla interfejsu SPI (MOSI, SCK, CS - high to low i MISO 2 low to high). Mog¡ te» w tym przypadku pracowa¢ translatory dwukierunkowe z rodzin 33xx i 300x (np. MAX3002 - 8 translatorów dwukierunkowych), lub podobne - ADG3304 rmy Analog Devices, jednak pod warunkiem, »e wszystkie ukªady na magistrali maj¡ wysokoimpedancyjne wej±cia (CMOS). Translatory przystosowane do I2C Magistrala I2 C (I2C, IIC, TWI) stawia specjalne wymagania, ze wzgl¦du na podci¡gni¦cie sygnaªów do dodatniego bieguna zasilania (pull-up) rezystancj¡ 1,5kΩ i konieczno±¢ zapewnienia dominuj¡cego stanu niskiego, na którym opiera si¦ synchronizacja zegara i danych. Translatory rodzin MAX300x i ADG330x, które maj¡ du»¡ impedancj¦ wyj±ciow¡ (rz¦du 6kΩ) nie nadaj¡ si¦ do zastosowania w tym przypadku. Podwójne translatory dwukierunkowe MAX3373 (oraz ich wolniejsza wersja, MAX3372) maj¡ maª¡ impedancj¦ wyj±ciow¡ < 50Ω, wi¦c speªniaj¡ wspomniane wymagania (rys. 4). Rysunek 4: Translator MAX3373 do magistrali I2C Ukªad MAX3373 zawiera przerzutniki monostabilne wª¡czaj¡ce na krótko klucze PU1,2 (rys. 5), które zapewniaj¡ du»¡ stromo±¢ zboczy narastaj¡cych sygnaªu na magistrali typu OD (open drain) i dzi¦ki temu pracuje poprawnie nawet przy 8MHz. Rysunek 5: Schemat ukªadu MAX3373 Ukªadem o podobnych wªa±ciwo±ciach jest FMAXR2102 rmy Fairchild. 3 Rozwi¡zania na elementach dyskretnych Mo»na znale¹¢ wiele propozycji rozwi¡zania translacji przy zastosowaniu elementów dyskretnych, najcz¦±ciej do linii jednokierunkowych (dzielniki napi¦cia, ograniczniki z diodami Zenera itp.). Na rys. 6 przedstawiono prosty ukªad translatora dwukierunkowego dla I2C, proponowany przez rm¦ NXP, oparty na dwóch kluczach unipolarnych. Rysunek 6: Prosty ukªad translatora dla I2C Na rys. 7 przedstawiono prosty ukªad translatora dwukierunkowego z dwoma tranzystorami bipolarnymi, zaproponowany przez Jima Hagermana z Nokia Mobile Phones, San Diego, CA. Rysunek 7: Dwutranzystorowy ukªad translatora dla I2C UWAGA: Ukªady dyskretne opisane powy»ej nie zostaªy przeze mnie sprawdzone. Chc¡c je zastosowa¢ (na wªasne ryzyko), nale»y wykona¢ odpowiednie próby z zachowaniem ostro»no±ci, zwªaszcza przy podª¡czaniu cennych, lub trudnodost¦pnych elementów. W materiaªach pomocniczych zamieszczonych na stronie projektu mo»na znale¹¢ wi¦cej informacji o problematyce translacji poziomów logicznych. 4