Аппаратное обеспечение USB – с чего начать разработку

Почти все изготовители чипов производят элементы с интегрированным USB-соединением, так как USB-контакт можно найти почти в каждой облас­ти электроники. Соответственно и выбор многообразен, если не сказать — необозрим. В связи с этим выбор правильной микросхемы для собственных приложений не так-то легок, Несомненно, для этого нужно интересоваться и заниматься темой микроконтроллеров (ядром многих микросхем USB), что раньше, при последовательном или параллельном интерфейсе персональных компьютеров, было необходимо лишь условно. К тому же существует еще множество приложений для последовательных и параллельных интерфейсов ПК, которые в будущем должны будут заменены USB и нуждаются в простом соединении.

Если кто-то хочет иметь USB-соединение без (явно) интегрированного мик­роконтроллера, то для собственных экспериментов в расчет могут быть взяты лишь микросхемы USB тех изготовителей, которые предлагают USB-koh-вертер для последовательного или параллельного интерфейса,:

□ Profilic Technologie (технология Profilic) PL2303X— этот узел является конвертером USB/последовательный порт для USB 1.1 в корпусе SSOP-28. Дескрипторы прочно вмонтированы во внутреннем ПЗУ (ROM— Read Only Memory). Для собственного РГО или ID вендора, конечно же, понадо­бится внешнее EEProm, которое может быть подключено по двухпровод­ному соединению. Приложения ограничены сигнальными линиями по­следовательного интерфейса. Версия PL2303HX RevD имеет OTP-ROM (One time Programmable) и должна делать возможным использование по­следовательных сигналов в качестве 8 бит I/O (ввод/вывод);

□ Silicon Labs СР2102/103— в противоположность микросхеме Profilic Silicon Labs предлагает интегрированное EEProm с 1024 байтами в QFN-корпусе и 23 штырьковыми выводами для USB 2.0 Full Speed;

О MOSCHIP semiconductor MSC7820— MCS7820, находящийся в LQFP-корпусе с 48 штырьковыми выводами, поддерживает два последователь­ных интерфейса и в то же время передачу данных SIR-IrDA (инфракрас­ный), а также USB 2.0. Внешнее EEProm может быть подключено по двум линиям I2C;

О FTDI—компания FTDI предлагает множество микросхем USB для эму­ляции последовательного и параллельного интерфейсов. Так называемый режим Bit Bang Mode, который делает микросхему довольно интересной для других приложений, в своих первых версиях задумывался как простое дополнение программирования/соединения FPGA. FTDI свела воедино возможности преобразования из USB в другие последовательные интер­фейсы (как последовательных интерфейсов ПК) в так называемой области MPSSE (Multi-Protocol Synchronous Serial Engine). При помощи режима Bit Bang микросхема FT232R дала простор другим приложениям без допол­нительного микроконтроллера;

□ MAXIM — фирма Maxim со своими Мах3421 и Мах3420 предлагает две интересные микросхемы USB, которые имеют два прямых соединения микроконтроллера с преобразователем от USB 2.0 (Full Speed) auf SPI. Max3421 поддерживает изохронную передачу данных. Контроллер нахо­дится в TQFP-корпусе с 32 штырьковыми выводами. Помимо интерфейса SPI он имеет восемь других входов и выходов. Микросхема подготовлена в качестве USB-хоста для USB-OTG. Так как не поддерживается последо­вательный интерфейс ПК, то микросхемы могут открываться без дополни­тельного драйвера USB непосредственно через USB-драйвер Windows со стеком.

USB-флэш-адаптер и описание

Это аппаратное обеспечение изначально было разработано для последова­тельного SPI-программирования семейства микроконтроллеров Atmel-AT89LP (рис. 3.1). Литературу и информацию для заказа вы сможете найти на сайте www.mimikro.de1.

Адаптер со стороны выхода имеет 10-полярный контакт, который, в зависи­мости от использования, разведен последовательно или параллельно (см. рис. 2.3 и 2.4).

Если смотреть сверху и направить USB-штекер от корпуса, то выводы 1 и 2 (GND) лежат на правой стороне: штырьковый вывод 1 в направлении чипа

U SB-контроллера, а штырьковый вывод 2 — в направлении нижнего края платы (рис. 3.2).

clip_image002

clip_image004

Монтаж FTD232R очень прост. Сопротивления от Rl до R8 в сигнальных ли­ниях составляют 256 Ом и понижают ток при возможном коротком замыка­нии.

Через FET1 и перемычку JP_Mcc на штырьковый вывод 4 штекера проводит­ся напряжение USB 5 В. Как только подключенный компьютер переключает­ся в режим Standby (спящий режим), FET1 констатирует, что USB-догово­ренности сохраняются, и потребление тока по USB соответственно незначи­тельно. R10 и С7 отвечают за то, чтобы включение происходило плавно.

С4 и С6 имеют соответствующую емкость в 100 мкФ, С5 имеет значение в 3,3 мкФ. С2 и СЗ (каждая по 22 пФ) служат уменьшению мешающих воздей­ствий.

Ферритовый сердечник (FB — Ferritkern) в напряжении питания VccUSB — это рекомендация производителя FTDI при чувствительности к помехам или повреждениям.

Штырьковый вывод 10 штекера ISP (четырехполярный штекер для плоского ленточного кабеля) проложен через перемычку JP_DDA на D4 и примонти-рован. Список элементов USB-адаптера приведен в табл. 3.1.

Таблица 3.1

Элемент

Значение

Описание

С1

ЮОп

C0805

С2

22р

C0805

СЗ

22р

C0805

С4

3,3 мкФ

C1206K

С5

10п

C0805

С6

ЮОп

C0805

G7

ЮОп

C0805

С8

22р

C0805

D1

ВАТ42ММ

MINIMELF

FB

FB

R1206

FET1

IRLML6402

SOT23

IC1

FT232RL

SSOP28

ISP

2X05Pinhead

 

JPJ3DA

Pinhead

 

JP.VCC

Pinhead

 

LED1

CHIPLED

_0805

R1

256

R0805

R2

256

R0805

R3

256

R0805

R4

256

R0805

R5

256

R0805

R6

256

R0805

Таблица 3.1 (окончание)

Элемент

Значение

Описание

R7

256

R0805

R8

256

R0805

R9

390

R0805

R10

R0805

USB

PN87520

 

Внимание!_

При экспериментировании к порту USB 2.0 без использования USB-хаба дол­жен быть подключен только USB-адаптер.

Постарайтесь по возможности браться только за края USB-платы. Иначе, при определенных условиях, вы можете разрушить USB-адаптер за счет только одних статических разрядов!

Когда вы вставляете адаптер, вы увидите короткую вспышку светодиода LED1.

Дополнительная плата

На дополнительной плате размещено большинство элементов для дальней­ших экспериментов. Платы напрямую связаны с USB-адаптером. Панель ИС для 8 сигнальных проводов ввода/вывода служит в качестве коммутационной панели.

На плате находится операционный усилитель и конструктивные элементы для простого аналого-цифрового преобразователя (АЦП). При помощи пере­мычки JP1 на плате вы можете деактивировать питающее напряжение для аналоговой части (рис. 3.3). Щтырьковые выводы 1, 2, 3 и 6 панели ИС непо­средственно соединены между собой (рис. 3.4).

Список (структурных) элементов дополнительной платы (рис. 3.5):

□ CI 100nC-EU025-024X044

□ С2 100nC-EU025-024X044 О СЗ 100 uF CPOL-EUE2.5-7

□ С4 0,47 uF CPOL-EUE2.5-5

□ IC1 LM358NDIL08

□ JP1 1X02 Pinhead + Jumper

clip_image006

□ PI 100К Linear

□ Rl 100kR-EU_0204/7 О R2 39K R-EU_0204/7

□ R4 10KR-EU_0204/7

□ R5 10KR-EU_0204/7

□ SI 20Pin, DIL20 gedrehter Sockel

□ Tl BC557 A T092 OT2BS170TO

□ USB 2X05

Информацию о заказе заготовки для дополнительной платы вы можете найти в Интернете по ссылке www.mimikro.de.

Другие используемые в работе с книгой составляющие элементы:

□ двойной светодиод (Duo-LED) 3 или 5 мм — (2-полярНый);

□ три светодиода 5 мм (красный, зеленый, 1 желтый); О LDR;

clip_image008

□ фотодиод BPW 40; О NTC 0,2-4K7 (4700); Й сопротивление 1 К; О сопротивление 100 К; О сопротивление 27 Ом;

О электролитический конденсатор (Elko) 100 мкФ;

□ 24C16-EEProm;

□ диод ВАТ 42;

□ соединительный провод;

□ соединение 10/10 от USB-адаптера к дополнительной плате.

М23213-модуль от компании FTDI

Компания FTDI Предлагает собранный модуль с DIP-панелью (панель с двух­рядным расположением штырьковых выводов) с 24 штырьковыми выводами, которая помимо прочего может быть использована как коммутационная па­нель. Этот модуль может быть приобретен у различных компаний (кроме FTDI):

О АК Modul Bus на http: // www.ak-modul-bus.de;

О электронный магазин на http: //www.elmikro.com/de/ft232r.htmI;

□ Farnell на http: //at.farnell.com/jsp/search/productdetaiI.jsp?sku=l 146036;

□ AO Unitronik на http: // pSeTe.typoSserver.info/ftdi-r.O.html1.

Модуль UM232R предназначен для подключения DIP-панели и делает дос­тупными все последовательные линии данных и линии с квотированием FT232R. С этими модулями шинные и самопитаемые (Self-Powered) конфигу­рации возможны наряду с присоединениями 5 и 3,3 В к микроконтроллерам с последовательным интерфейсом (модуль UU232 на рис. 3.6).

Примечание_*__

На плате нет конвертера уровня RS232.

clip_image010

Имеются и другие модули со структурным элементом FT-232R, как, напри­мер, модуль MM232R для последовательного интерфейса, модуль UC232R (ChiPi) в штекере DB9 или кабельный адаптер TTL232R с FT232R в USB-штекере (вид сверху на рис. 3.7 взят из документации FTDI UM232R, элек­трическая схема FTDI для модуля UM232R на рис. 3.8).

clip_image012

Внутренняя структура микросхемы FT232R от FTDI

Функциональные блоки FT232R представлены на рис. 3.9.

Как уже упоминалось ранее, используемый в книге FTDI-FT232R-кoнтpoллep эмулирует последовательный интерфейс для USB-подключения.

Четыре входа

Сигнальные линии D- и D+ находятся на левой стороне и именуются USBDP и USBSM.

clip_image014

FT232R имеет внутренний стабилизатор напряжения 3,3 В, который напря­мую соединен с Vcc, напряжением питания USB.

Выходы

Выходы на правой стороне являются сигналами последовательного интер­фейса (табл, 3.2).

Таблица 3.2

Последовательный сигнал

Управление в качестве

 

Bit Bang

 

TxD

выход

отправка данных

DO

вход-выход

RxD

вход

прием данных

D1

вход-выход

RTS/

выход

 

D2

вход-выход

CTS/

вход

 

D3

вход-выход

DTR/

выход

 

D4

вход-выход

DSR/

вход

 

D5

вход-выход

DCD/

вход

 

D6

вход-выход

Rl

вход

 

D7

вход-выход

Эти восемь сигнальных линий выведены на соединительный штекер USB-флэш-адаптера. Сигналы могут быть использованы также в так называемом режиме Bit Bang контроллера FTDI-FT232R, тогда их следует пронумеровать от D07 до D7 (см. рис, 2.3 и 2.4).

Указание для электронщиков__

Входы и выходы имеют внутренние pull-up-сопротивления от 200 кОм к напря­жению питания, каждый из которых при использовании в качестве входа стано­вится активным.

Имеется также еще пять других сигналов CBUS, от CBUS0 до CBUS5. CBUS 1 управляет работой светодиодов на плате USB, CBUS 3 — внешним напряже­нием питания.

Функции микросхемы FT232R

В блок-схеме на рис. 3.9 можно увидеть множество функциональных блоков:

О USB-Transceiver (USB-приемопередатчик)— соединение с дифференци­альными линиями данных USB D+ и D-. Этот функциональный блок име­ет сопротивления для того, чтобы идентифицировать микросхему FT232R в качестве Full-Speed-устройства (с полной скоростью).

Из дифференциальных данных подготавливаются данные для USB-DPLL и для SIE (Serial Interface Engine — механизм последовательного интер­фейса);

□ USB-DPLL — синхронизирует поток данных USB с SIE;

О Serial Interface Engine (SIE) — из последовательного потока данных USB снова образуются параллельные данные для дальнейшей обработки. Если отправляется сообщение от микросхемы FT232R к USB, то происходит обратное кодирование, из параллельных данных возникает поток данных USB;

□ USB Protocol Engine — в этой функциональной области подготавливаются команды для последовательного интерфейса, а также обрабатываются за­просы команд USB от USB-хост-контроллера;

□ Fifo Tx/Rx буфер— FIFO-буферы контролируются FIFO-контроллером. В FIFO (сокращение от First in — First out) запоминаются данные, благо­даря этому можно более быстро обработать и передать несколько байтов;

О UART-контроллер (Universal Asynchronous Receiver and Transmitter, уни­версальный асинхронный приемопередатчик, УАПП)— это непосредст­венное устройство вывода для последовательных выходных сигналов. Ра­ботая совместно с бод-генератором и FIFO-контроллером, подготавливает сигналы для последовательного интерфейса, а также приходящие сигналы от последовательного интерфейса;

□ бод-генератор — образует, как видно из его названия, скорости передачи в бодах для последовательного интерфейса от 300 бод до 3 Мбод. В режиме Bit Bang параллельные данные выдаются в тактовом импульсе скорости передачи в бодах;

□ внутренний генератор (осциллятор) — образует нее необходимые такты для внутренних функциональных блоков. Внутренне генерируемые часто­ты от 6, 12, 24 и 48 МГц также могли бы передаваться дальше на CBUS-сигнал;

О EEProm (ЭСППЗУ) — 1024-битовое EEProm сохраняет конфигурацион­ные данные для USB, конфигурации CBUS и другие сведения, такие как PID, VID или серийный номер. От FTI можно получить специальную про­грамму под названием MPROG, с помощью которой можно изменить кон­фигурацию микросхемы FT232R, а также данные в EEProm.

Пример последовательного подключения микроконтроллера к USB

При помощи FTDI-контроллера можно довольно быстро и без особых затрат преобразовать адаптер из последовательного в USB. Для самой простой пере­дачи сообщений микроконтроллера к USB требуются только сигналы TxD, RxD и заземляющая шина.

Для этого может использоваться также USB-флэш-адаптер. TxD U SB-адап­тера (штырьковый вывод 7 соединительного штекера) соединяется с RxD микроконтроллера, a RxD USB-адаптера (штырьковый вывод 6 соединитель­ного штекера) с TxD микроконтроллера. Теперь отсутствует только лишь общее соединение на корпус (соединение с "землей") с штырьковым выво­дом 2 соединительного штекера (табл. 3.3).

Таблица 3.3

Последовательный сигнал

USB-адаптер

 

Микро­контроллер

-

TxD

штырьковый выход 7

отправка данных

DO

вход

RxD

штырьковый вход 6

прием данных

D1

выход

"земля"

штырьковый вывод 2

 

D2

"земля"

После установки FTDI-драйвера по (виртуальному) com-порту может осуще­ствляться сообщение с микроконтроллером.

Схема на рис. 3.10 показывает не только простое последовательное соедине­ние, но также и то, как микроконтроллер одновременно питается тактом в 12 МГц от микросхемы FT232R на выходе CBUS 0 и PWREN для режима простоя USB.

clip_image016

Согласование уровней RS232/485

Если вы хотите использовать FTDI-чип в качестве конвертера USB для по­следовательного порта RS232 или 485, следует согласовать уровни. Струк­турные элементы серии 213 (Sipex SP213ECA, Maxim MAX213CAI или ана­логовые устройства ADM213E) содержат необходимые драйверы аппаратно­го обеспечения RS232 для четырех сигналов отправки и пяти сигналов приема. Эти элементы дополнительно поддерживают Shut Down Mode (ре­жим отключения), таким образом для сохранения USB-договоренностей они могут переводиться в режиме простоя ПК на минимальное потребление элек­троэнергии (рис. 3.11).

Если требуется только 4 сигнальных линии RXD, TXD, RTS и CTS (не нужна поддержка через режим Suspend), то вы можете использовать преобразова­тель уровней Мах232 или ST232.

clip_image018

Схема с Мах232 довольно простая (рис. 3.12). Изображенные электролитиче­ские конденсаторы имеют емкость 1мкФ (рис. 3.13).

У RS485-nopTOB TxD и RXD передаются как дифференциальные сигна­лы. Сигнал CBUS2 (TXDEN) активирует драйвер отправителя, CBUS3 (PWREN)— прием данных. Элемент SP481 здесь приведен только для при­мера, такие же элементы имеются и в устройствах Maxim, и в аналоговых устройствах.

+5V

RTS. TXD. CTS_ RXD_

11 10 12

С1+

v+

Ci-

V-

С2+

С2-

T1IN

T10UT

T21N

T20UT

R10UT

RUN

R20UT

R2IN

МАХ232

clip_image020

clip_image022

Бод-генератор

Для передачи данных у последовательного USB-адаптера особенно важным является настройка скорости передачи в бодах. Принципиальным образом FTDI поддерживает все стандартные скорости передачи в бодах (300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 115200, 230400, 460800 и т.д.). Скорости передачи в бодах обычно установлены в программе-приложении или в ОС и могут быть настроены при помощи вызова функции ET_SetBaudRate.

Если раньше хотели использовать нестандартные скорости в бодах, нужно было детально разбираться и ориентироваться в генерировании скорости пе­редачи данных и возможных коэффициентах деления. Коэффициенты деле­ния после пересылки скорости в бодах также должны были передаваться при

ПОМОЩИ ВЫЗОВа фуНКЦИИ FT_SetDivisor.

В новых версиях драйверов FTDI этого больше не требуется: достаточно про­сто ввести скорость передачи (например, 49 000), и драйвер автоматически определяет лучшие настройки.

Чтобы обойти процедуру настройки скорости в бодах (допустим, нужно перенастроить скорость передачи в 115 на 512 К), потребуется файл FTDIPortinf. Там вы найдете запись [FtdiPort232.NT.HW.AddReg]. В записи

HKR ConfigData ,1,01,00,3F,3F,10,27,88/13

каждой скорости передачи сопоставляются два последовательных байта. Па­ра 10,27 соответствует скорости передачи 300, а 88,13 —- скорости передачи 600 бод, и т. д.

Все стандартные значения для FTDI в руководстве "Aliasing Using the Original Sub-Integer Divisors".

Указание для "микронщика"_

Существует несколько программ, которые используют последовательный порт для программирования микроконтроллеров. При этом выходные сигналы TxD, RTS и DTR обслуживаются непосредственно через (флэш)-программу. Так как обычно USB работает во временных тактах 1 мс, то по сигнальным линиям USB может быть изменена "только" каждая миллисекунда, тогда как при нормальном последовательном интерфейсе это значительно быстрее.

Принципиальным образом в этом случае рекомендуется использовать также конвертер USB/последовательный порт, но передача данных будет со ско­ростью несколько байтов в секунду.

Литература:


USB в электронике: Пер. с нем. — СПб.: БХВ-Петербург, 2009. — 224 с: ил. + CD-ROM — (Электроника)

Предлагаю ознакомиться с аналогичными статьями: