tusb3410 boot device что это

Tusb3410 boot device что это

В статье описан переходник USB RS232, собранный на чипе TUSB3410.

TUSB3410 – микроконтроллер с интегрированным интерфейсным модулем USB.

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

Функциональная оснащенность примерно та же: полный последовательный порт (выводы 13-21, только RX/TX называются SIN/SOUT), интерфейс для EEPROM (здесь это I2C), кварц, питание, Reset и четыре программируемые линии ввода/вывода общего назначения Р3.0 – Р3.4 – вот их-то у FTDI-ки точно не было… Напряжение питания микросхемы – 3.3В, что не очень удобно, поскольку при питании от USB заставляет использовать LDO-стабилизатор. Зато никаких хитрых режимов питания нет.

Ну что, как всегда, кратенько пробежимся по функциональному назначению выводов? Поехали…

С последовательным портом все вроде бы понятно, скажу лишь, что при соответствующей прошивке он может работать не только по протоколу RS-232, но и как IrDA приемопередатчик. Четыре линии ввода/вывода тоже не экзотика, производитель, в частности, предоставляет пример, где они используются для подключения нескольких кнопок, а устройство определяется ОС как HID-совместимое, что позволяет достаточно легко реализовать опрос этих самых кнопок.

DP, DM – линии Data+ и Data- USB, PUR служит для подключения подтягивающего резистора для линии Data+.

На линию VDD18 надо подать напряжение 1.8В от внешнего источника или, что проще, подать лог.0 на вывод VREGEN, включив тем самым внутренний источник на 1.8В, а на VDD18 добавить конденсатор 0.1мкФ на землю…

На RESET – обычную RC-цепочку, более чем достаточно, TEST0 и TEST1 надо подтянуть через 10кОм к питанию, а выход тактовой частоты CLKOUT мы использовать не будем.

Кварц 12МГц на ноги Х1 и Х2, выход индикатора SUSPEND – по вкусу, вход пробуждения WAKEUP можно оставить неподключенным или подтянуть через резистор к плюсу питания.

К линиям последовательного порта этой микросхемы также можно подключать непосредственно МК, опторазвязки или преобразователи уровней.

Вроде как все необходимое для минимальной конфигурации подключили, схема получилось вот такая:

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

Микросхема EEPROM здесь также не является обязательным элементом и лично я ее так ни разу и не использовал…

Итак, собрали мы эту схему, воткнули в комп, ОС нашла некое устройство и попросила ткнуть ее носом в драйвера для него. Вот тут-то самое интересное и начинается.

Как я уже говорил, TUSB3410 на самом деле микроконтроллер, внутри у него 8052-совместимое ядро. Соответственно, функционал нашего устройства определяется залитой прошивкой. Нам требуется пока что – преобразователь интерфейсов.

В принципе, при условии регистрации и предоставлении информации о вашем проекте производитель предоставляет и исходники, и прошивку для применения микросхемы в качестве преобразователя интерфейсов, но можно пойти и по другому пути. Эта микросхема используется в таком качестве в некоторых интерфейсных шнурках для мобильных телефонов, в GSM-модемах, в некоторых других устройствах. А драйвера для них доступны для свободной закачки. Более того, все эти драйвера содержат необходимую прошивку. Это связано с особенностями работы микросхемы.

Дело в том, что при установке драйвера прошивка для микроконтроллера копируется в /System32/drivers. Далее, при включении устройства TUSB проверяет наличие EEPROM и прошивки в ней. Если все в порядке – грузится с нее, если нет – подгружает прошивку с компа и записывает в EEPROM, если она есть. Или не записывает и просто работает. Если EEPROMа нет, при следующем включении процесс повторяется.

В общем, в результате анализа нескольких комплектов драйверов к готовым устройствам методом проб и ошибок, последовательных приближений и высоконаучного тыка был сгенерирован собственный работоспособный комплект. Во всех файлах драйверов и даже внутри прошивок стоят копирайты Texas Instruments, поэтому скажу, что все предпринятые над драйверами действия цели имели исключительно образовательные и некоммерческие, а здесь результат публикуется сугубо для ознакомления.

После подключения к ПК ОС найдет новое устройство «TUSB3410 Device» и потребует установку драйвера, надо указать на файл umpusbXP.inf. В ходе установки в системную директорию будут скопированы файлы umpusbxp.sys и umpf3410.i51 (прошивка). Далее система найдет виртуальный СОМ-порт, для него потребуется драйвер UmpComXP.inf.

В обоих *.inf-файлах помечены строки, изменив которые можно отредактировать названия определяемых системой устройств и установленные по умолчанию VID&PID, передаваемые ОС. Однако, как и в прошлый раз, я бы не стал этого делать без полного понимания того, к чему это может привести.

Для чего TUSB3410 нужна EEPROM я уже упоминал. Добавлю, что лично я с ней не экспериментировал, однако на сайте производителя доступны для скачивания утилита для генерации бинарного файла прошивки EEPROM на основе umpf3410.i51 и конфигурационного файла (содержит серийный номер устройства, VID&PID, строковые данный по аналогии с FT232BM) и утилита для непосредственной прошивки полученного файла в микросхему.

На странице, посвященной этой микросхеме при желании можно найти подробный даташит, ряд аппноутов, документы, описывающие особенности применения, ссылки на исходные коды и утилиты для работы. Настоятельно рекомендую посмотреть.

Результатом всех этих изысканий стало создание двух модулей преобразования протокола USB в RS-232, на FT232BM и TUSB3410 соответственно, которые можно рассмотреть на фотографии:

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

Монтаж, как видно, поверхностный, все детали на одной стороне, с изнанки – пара перемычек. Модули рассчитаны на вертикальное впаивание в плату, поэтому на них нет разъемов, а установлены PLS штырьки, которые, собственно, в плату и впаиваются. На дальней от нас стороне платы сделаны контактные площадки RX/TX (на модуле FT232BM их загораживает конденсатор), остальные сигналы последовательного интерфейса не выведены за ненадобностью: эти модули используются для сопряжения исключительно с МК.

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

Сигналы RS-232 имеют TTL-уровень и выведены на двухрядный разъем BH-10 (по аналогии с материнскими платами), причем коммутацией входа VCCIO (вывод 13) на 5В или сторонний источник 3.3В (в данном случае применен LDO-стабилизатор, но можно, например, и параметрический использовать или регулируемый на LM317) при помощи джампера можно выбирать соответствующий уровень логической «1» на выводах порта RS-232. Эта конструкция разарабатывалась для отладки устройств, имеющих напряжение питания 3.3В

Источник

Tusb3410 boot device что это

Подскажите пожалуйста, что делать?

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это
Aheir tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

_________________
Оптимизм х (Опыт + Знания) = const

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/cwc

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это
GoodBoyGood tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это
Родился

Зарегистрирован: Вт авг 28, 2007 14:10:30
Сообщений: 8
Рейтинг сообщения: 0

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это
Aheir tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

_________________
Оптимизм х (Опыт + Знания) = const

Приглашаем 30 ноября всех желающих посетить вебинар о литиевых источниках тока Fanso (EVE). Вы узнаете об особенностях использования литиевых источников питания и о том, как на них влияют режим работы и условия эксплуатации. Мы расскажем, какие параметры важно учитывать при выборе литиевого ХИТ, рассмотрим «подводные камни», с которыми можно столкнуться при неправильном выборе, разберем, как правильно проводить тесты, чтобы убедиться в надежности конечного решения. Вы сможете задать вопросы представителям производителя, которые будут участвовать в вебинаре.

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это
GoodBoyGood tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это
Родился

Зарегистрирован: Вт авг 28, 2007 14:10:30
Сообщений: 8
Рейтинг сообщения: 0

Я тоже думаю что может быть в этот переходник заложены какие-то функции, которые преобразуют коды. Но зачем это делать производителю? это же только лишние проблемы и расходы. Но даже если это так (в чем я очень сомневаюсь), то можно перепрошить переходник под нормальный.

Может все-таки есть еще другие мысли чего такая фигня с этим переходником?

Приглашаем всех желающих посетить вебинар, посвященный технологии Ethernet и её новому стандарту 10BASE-T1S/L. Стандарт 802.3cg описывает передачу данных на скорости до 10 Мбит в секунду по одной витой паре. На вебинаре будут рассмотрены и другие новшества, которые недавно вошли в семейство технологий Ethernet: Synchronous Ethernet (SyncE), Precision Time Protocol (PTP), Time Sensitive Networking (TSN). Не останется в стороне и высокоскоростной 25G+ Ethernet от Microchip.

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это
Аксель tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это
Опытный кот
tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

Зарегистрирован: Ср апр 25, 2007 09:50:43
Сообщений: 800
Откуда: Киев
Рейтинг сообщения: 0

Может не только микруху можно заподозрить TUSB3410.

_________________
Скелет колобка состоит из черепа.

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это
Aheir tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

_________________
Оптимизм х (Опыт + Знания) = const

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это
RadioNefor tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это
Открыл глаза
tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

Зарегистрирован: Пт мар 28, 2008 00:39:54
Сообщений: 56
Откуда: Беларусь. Новополоцк.
Рейтинг сообщения: 0

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это
yeskela tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это
Открыл глаза
tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

Зарегистрирован: Сб ноя 22, 2008 22:11:28
Сообщений: 77
Рейтинг сообщения: 0

А питается МАХ232 откуда? От отдельного источника или питание с 4 и 7 пина выцеживаеться?

Попробуйте от отдельного БП или от USB макс запитать.

Попробуйте в переходнике USB-COM замкнуть 2 и 3 пины и терминалкой послать что-нибудь в порт. Если в ответ придет не то, что послали, то переходник «дохлый»

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это
tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что этоСтраница 1 из 1[ Сообщений: 9 ]

Часовой пояс: UTC + 3 часа

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

Источник

TUSB3410 Boot Device

Установщик драйверов:

В случае, когда вы не хотите тратить время на поиск нужного драйвера для вашего ПК, к вашим услугам представлен автоматический установщик, который самостоятельно подберет нужные и самые актуальные драйвера для всех устройств вашей системы. Скачать Outbyte Drivers Installer вы можете перейдя по этой ссылке Установить драйвера автоматически

Устройство:TUSB3410 Boot Device Drivers Installer
Версия драйвера:2.0.0.18
Дата драйвера:2021-11-26
Размер файла:1.12 Mb
Поддерживаемые ОС:Windows 2000, Windows XP, Windows Vista, Windows 7, Windows 8
Установить драйвера автоматически

Список драйверов:

Найдено драйверов для устройства «TUSB3410 Boot Device»: 1. Для загрузки необходимого драйвера, выберите его из списка ниже и перейдите по ссылке «Скачать». Пожалуйста, убедитесь в соответствии выбранной версии драйвера вашей операционной системе для обеспечения корректности его работы.

Поддерживаемые модели ноутбуков

Мы собрали список популярных моделей ноутбуков на которых устанавливается оборудование «TUSB3410 Boot Device». Выбрав интересующую вас модель ноутбука вы можете посмотреть полный список совместимых устройств.

Источник

Tusb3410 boot device что это

Этот даташит описывает контроллеры TUSB3410, TUSB3410I компании Texas Instruments (перевод оригинального даташита [1]). Все незнакомые термины и аббревиатуры смотрите в словарике, в конце статьи.

[1. Введение]

1.1. Общее описание контроллера TUSB3410

Микросхема TUSB3410 может быть использована как интерфейс между с каким-нибудь устройством, имеющим традиционный последовательный порт, и компьютером PC с портами USB. После того, как TUSB3410 сконфигурирована, поток данных от хоста до TUSB3410 через команды USB OUT выходит затем через сигнальную линию SOUT чипа TUSB3410. В обратном направлении поток данных входит в TUSB3410 через линию SIN, и затем поступает в хост через команды USB IN.

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

Рис. 1-1. Как проходят потоки данных в чипе TUSB3410.

Пояснения к рис. 1-1:

Host хост, компьютер или устройство On-The-Go, которое может работать и как хост, и как устройство USB.
In, Out направления передачи данных по шине USB. С этими направлениями связаны одноименные конечные точки и названия транзакций и пакетов.
SOUT, SIN сигналы TTL последовательного порта, работающего по стандарту RS-232.
Legacy Serial Peripheral стандартное периферийное устройство, имеющее аппаратный последовательный порт RS-232. Это может быть, к примеру, какой-нибудь внешний микроконтроллер.

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

Рис. 1-2. Блочная диаграмма TUSB3410.

Пояснения к рис. 1-2:

Clock Oscillator тактовый генератор, работающий от внешнего кварцевого резонатора 12 МГц.
PLL and Dividers узел ФАПЧ и делителя, который вырабатывает внутреннюю тактовую частоту 24 МГц.
DP, DM физические сигналы данных шины USB D+ и D-.
USB TxR узел трансивера физических сигналов шины USB.
USB Serial Interface Engine аппаратный преобразователь последовательных сигналов шины USB в параллельный код.
10K x 8 ROM память ROM (ПЗУ) 10 килобайт, в которой записан код загрузки (bootcode, бутлоадер).
16K x 8 RAM память RAM (ОЗУ) 16 килобайт, которая предназначена для загрузки в неё программы приложения firmware (код программы для MCU 8052).
2K x 8 SRAM память ОЗУ 2 килобайта, которая расположена в области XDATA архитектуры 8052 и предназначена для хранения данных firmware.
CPU-I/F Suspend/Resume узел управления приостановкой и возобновлением работы CPU.
UBM USB Buffer Manager менеджер буферов USB.
TDM Control Logic логика управления потоками данных DMA.
2 x 16-Bit Timers два таймера, стандартных для архитектуры 8052.
Port 3 порт ввода/вывода P3 (GPIO), также стандартный для архитектуры 8052.
P3.0, P3.1, P3.3, P3.4 выводы порта P3.
I 2 C Controller аппаратный контроллер шины I2C.
DMA-1, DMA-3 каналы прямого доступа к памяти.
UART-1 последовательный порт.
SIN, SOUT сигналы данных последовательного порта.

DSR стандартные сигналы интерфейса RS-232. Тильда в начале имени означает логическую инверсию.
IR Encoder кодер для получения сигналов последовательного канала инфракрасной передачи.
IR Decoder декодер для преобразования сигнала инфракрасного канала в последовательный код.
SOUT/IR_SOUT выходной сигнал последовательного порта.
SIN/IR_SIN входной сигнал последовательного порта.

[2. Основные особенности контроллера TUSB3410]

2.1. USB

• Полностью совместим со стандартом USB 2.0: TID #40340262.
• Поддерживает скорость передачи данных USB до 12 мегабит/сек (full speed).
• Поддерживает приостановку работы USB (USB suspend), возобновление работы (USB resume), и функцию удаленного пробуждения (remote wakeup).
• Поддерживает два режима питания:
— питание от шины USB (Bus-powered mode)
— питание от собственного отдельного источника питания (Self-powered mode)
• Может поддерживать до трех входных (IN endpoint) и до трех выходных (OUT endpoint) конечных точек (работающих в режимах interrupt, bulk).

2.2. Основные возможности

• Контроллер основан на встроенном ядре 8052, которое содержит:
— 256 килобайт RAM для внутренних данных (IDATA архитектуры 8052).
— 10 килобайт ROM (в котором записаны нестираемый бутлоадер USB и I2C).
— 16K килобайт RAM для кода firmware, который может быть загружен с хоста или через порт I2C.
— 2 килобайта общей RAM, которая используется как буферные данные и блоки дескрипторов конечной точки (endpoint descriptor blocks, EDB).
— 4 ножки GPIO, подключенные к порту 3 (P3) микроконтроллера 8052.
— главный контроллер I2C для доступа к микросхеме EEPROM.
— MCU работает на частоте 24 МГц со скоростью 2 MIPS.
— сторожевой таймер 128 мс (watchdog timer).
• Два встроенных контроллера DMA для операций ввода/вывода I/O через порты USB/UART.
• Работает от кварца 12 МГц.
• Поддерживает засыпание и пробуждение USB (suspend и resume).
• Поддерживает процедуру пробуждения хоста (remote wake-up).
• Имеет 32-выводный корпус LQFP.
• Использует напряжение питания 3.3V и имеет встроенный регулятор напряжения 1.8V, который можно использовать для питания ядра микроконтроллера.

2.3. Порт UART с расширенными возможностями

• Программно/аппаратное управление потоком данных (Software/hardware flow control):
— программируемые символы Xon/Xoff.
— программируемые автоматически работающие сигналы

DSR.
• Автоматическое управление приемопередатчиком шины RS-485, с включенным и выключенным эхо.
• Выбираемый режим IrDA, работающий на скорости до 115.2 килобит/сек (kbps).
• Программно задаваемая скорость передачи UART (baud rate) в диапазоне от 50 до 921.6 килобод.
• Программируемые характеристики UART:
— количество бит в символе может быть выбрано 5, 6, 7, или 8.
— выбор генерации и детектирования бита четности Even (четно), odd (нечетно), или no parity (без бита четности).
— выбор количества стоповых бит 1, 1.5, или 2 (stop bit).
• Генерация и детектирования сигнала останова передачи (Line break).
• Встроенный тест и замыкание со входа на выход (loop-back).
• Функции для управления модемом (сигналы

DCD).
• Внутренняя диагностика:
— управление Loopback (соединение входа с выходом для проверки), для коммуникаций при потери связей.
— симуляция событий и ошибок Break, parity, overrun, framing-error.

2.4. Цоколевка корпуса (расположение выводов, вид сверху)

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что этоtusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это
Корпус VF, вид сверхуКорпус RHB, вид снизу

Таблица 2-1. Назначение и нумерация выводов TUSB3410

CTS

DCD

DSR

DTR

RESET

RI/CP

RTS

VREGEN

WAKEUP

Имя№ выв.I/OОписание
CLKOUT22OВыход тактовой частоты (управляется битом 2 CLKOUTEN и битом 3 CLKSLCT регистра MODECNFG), см. секцию 5.5 и примечание 1.
13IUART: сигнал Clear to send, очищено для передачи (см. примечание 4).
15IUART: сигнал Data carrier detect, детектирование несущей (см. примечание 4).
DM7I/OФизический сигнал данных D+ шины USB.
DP6I/OФизический сигнал данных D- шины USB.
14IUART: сигнал Data set ready, набор данных готов (см. примечание 4).
21OUART: сигнал Data terminal ready (см. примечание 1).
GND8, 18, 28Цифровая земля и отрицательный провод питания.
P3.032I/OБит 0 GPIO порта 3 (см. примечания 3, 5 и 8).
P3.131I/OБит 1 GPIO порта 3 (см. примечания 3, 5 и 8).
P3.330I/OБит 3 GPIO порта 3 (см. примечания 3, 5 и 8).
P3.429I/OБит 4 GPIO порта 3 (см. примечания 3, 5 и 8).
PUR5OПодключение нагрузочного резистора (pull-up) для шины USB (см. примечание 2).
9IГлавный вход сброса (см. примечание 4).
16IUART: сигнал Ring indicator, наличие вызова (см. примечание 4).
20OUART: сигнал Request to send, запрос на передачу (см. примечание 4).
SCL11OСигнал тактов мастера шины I2C, сюда обычно подключается внешняя память EEPROM для загрузки (см. примечание 1).
SDA10I/OСигнал данных мастера шины I2C, сюда обычно подключается внешняя память EEPROM для загрузки (см. примечание 1 и 5).
SIN/IR_SIN17IUART: последовательные входные данные / вход данных канала IR (см. примечание 6).
SOUT/IR_SOUT19OUART: последовательные выходные данные / выход данных канала IR (см. примечание 7).
SUSPEND2OВывод индикации режима приостановки (см. примечание 3). Когда на этом выводе лог. 1, устройство находится в режиме приостановки (suspend mode).
TEST023IТестовый вход, предназначенный только для заводского тестирования (см. примечание 5). Этот вывод должен быть подтянут к VCC через резистор 10 кОм.
TEST124IТестовый вход, предназначенный только для заводского тестирования (см. примечание 5). Этот вывод должен быть подтянут к VCC через резистор 10 кОм.
VCC3, 25PWR3.3V, напряжение питания.
VDD184PWRВыход внутреннего регулятора для получения напряжения питания 1.8V. Напряжение генерируется, когда вывод

VREGEN находится в состоянии лог. 0. Когда

VREGEN в лог. 1, напряжение 1.8V (используется для питания ядра MCU) должно быть предоставлено от внешнего источника питания.

1IВход, активный к низкому уровню, для разрешения работы внутреннего стабилизатора напряжения (из 3.3V получает 1.8V).
12IВывод для запроса пробуждения хоста (wake-up request). Когда лог. 0, выводит из спячки операционную систему подключенного компьютера (см. примечание 5).
X1/CLKI27IВывод для подключения кристалла (вход) 12 МГц или вход внешних тактов.
X226OВывод для подключения кристалла (выход) 12 МГц.

Примечания к таблице 2-1 (тильда

в именах сигналов означает логическую инверсию):

1. Выход буфера CMOS с тремя состояниями выхода (нагрузочная способность +- 4 mA).
2. Выход буфера CMOS с тремя состояниями выхода (нагрузочная способность +- 8 mA).
3. Выход буфера CMOS с тремя состояниями выхода (нагрузочная способность +- 12 mA).
4. Вход совместимый с TTL, с гистерезисом.
5. Вход совместимый с TTL, с гистерезисом, с внутренним активным верхним (pullup) нагрузочным резистором на 100 mkA.
6. Вход совместимый с TTL, без гистерезиса, с внутренним активным верхним (pullup) нагрузочным резистором на 100 mkA.
7. Нормальный режим или IR-режим: выход буфера CMOS с тремя состояниями выхода (нагрузочная способность +- 4 mA).
8. MCU работает с выходами как с открытым стоком таким образом, что низкий уровень может удерживаться на выходе продолжительное время, а высокий уровень появляется на выходе только на 2 такта CPU, после чего выход переходит в состояние высокого сопротивления (третье состояние).

[3. Подробное описание TUSB3410]

3.1. Рабочие режимы

TUSB3410 управляет поведением интерфейса в ответ на команды USB, и это функционирование зависит от выбранного режима последовательного порта. С другой стороны, последовательный порт может конфигурироваться в трех различных режимах.

Как и в любом интерфейсном устройстве, передача данных является основной функцией TUSB3410, но обычно начальное конфигурирование и обработка ошибок требует некоторой поддержки в коде firmware. В последующих секциях будет описаны различные режимы, которые могут быть использованы для устройства, что представляет из себя конфигурирование в данных режимах.

3.2. Конфигурация интерфейса USB

TUSB3410 содержит встроенный микрокод, который позволяет MCU настроить USB, чтобы оно успешно прошло процедуру энумерации на хосте. Микрокод ROM может также загрузить код приложения пользователя (application code) во внутреннюю память RAM из внешней памяти через шину I2C (такую шину имеют многие популярные микросхемы EEPROM с последовательным интерфейсом) или от хоста, прямо через интерфейс USB.

3.2.1. Загрузка кода из подключенной внешней памяти

После сброса (или включения питания) TUSB3410 отключается от USB (сигналы приводятся в такое состояние, что хост видит устройство отключенным, даже если оно подключено к порту USB). Бит 7 (CONT) регистра USBCTL (см. секцию 5.4) очищается. TUSB3410 проверяет порт I2C на наличие подключенной внешней микросхемы памяти (например, это может быть микросхема 24C512), и наличие в ней допустимого прошитого кода; если валидный код найден, то этот код считывается из микросхемы памяти и загружается во внутреннюю RAM, которая включена в область память программ. Как только код загружен, TUSB3410 подключается к USB установкой бита CONT, и затем происходят стандартные процессы энумерации и конфигурирования. Такой вариант загрузки используется наиболее часто.

Примечание: для подготовки дампа кода (чтобы он стал допустимым для загрузки TUSB3410) и прошивки его в память EEPROM фирма Texas Instruments предоставляет специальную утилиту подготовки образа для EEPROM Header.exe, см. [2].

3.2.2. Загрузка кода из хоста PC

Если по шине I2C не удалось найти и считать допустимый код, то TUSB3410 сама подключается к USB (бутлоадер устанавливает бит 7 CONT регистре USBCTL, см. секцию 5.4), и затем проходит конфигурирование и стандартную энумерацию на хосте. После этого код может загрузить дополнительный код в RAM, этот код может содержать в себе приложение пользователя. После загрузки кода MCU автоматически делает переподключение к USB с помощью сброса и установки бита CONT, что приводит к повторной энумерации на хосте, но теперь уже под управлением кода, загруженного в RAM. Теперь конфигурация устройства USB может быть совсем другой, полностью зависящей от загруженного в RAM кода firmware.

Для того, чтобы загрузка через USB работала, необходима установка драйвера USB TI WDF USBUART Single Driver, см. [2].

3.3. Передача данных по USB

По стандарту USB микросхема TUSB3410 видится на хосте как периферийное устройство USB. Как и все такие устройства, оно использует endpoint 0 как конечную точку управления (control endpoint). Дополнительно могут сконфигурированы до 3 входных конечных точек (input endpoint) и выходных (output endpoint). Большинство приложений используют одну bulk input endpoint для ввода данных в хост (data in) и одну bulk output endpoint для вывода данных из хоста (data out), и одну interrupt endpoint для обновления статуса устройства. Конфигурация USB может оставаться одинаковой независимо от конфигурации последовательного порта.

Чаще всего данные передаются со стороны USB на сторону UART (и в обратном направлении) с использованием встроенного в чип контроллер DMA. В некоторых особых случаях (например, если нужно реализовать устройство класса USB HID) управление перемещением данных может осуществляться программно с помощью кода firmware MCU.

3.4. Настройка последовательного порта

Последовательный порт требует некоторой настройки управляющих регистров, которые должны быть записаны для конфигурирования порта. Эта конфигурация может быть одинаковой независимо от используемого способа передачи данных. Эти регистры включают в себя регистр управления линией (line control register), который управляет форматом передаваемого слова и регистры делителя, которые задают скорость передачи (baud rate).

Эти регистры обычно управляются приложением хоста.

3.5. Режимы данных последовательного порта

Последовательный порт может быть сконфигурирован в трех различных (однако похожих друг на друга в работе) режимах передачи данных (data mode): RS-232 data mode, RS-485 data mode и IrDA data mode. Как и режим USB режим последовательного порта обычно конфигурируется однократно (при сбросе/загрузке или включении питания) и дальше в процессе работы не меняется. Различие между режимами заключается в интервалах времени последовательного ввода и вывода или в использовании дополнительных управляющих сигналов. Однако базовый процесс преобразования последовательного кода USB в параллельный и затем из параллельного снова в последовательный (и обратно) одинаковый для всех режимов. Некоторые опции настройки доступны для всех режимов, а некоторые могут использоваться только для определенных режимов. Например, программное управление потоком (software flow control) с помощью символов Xoff/Xon может быть использовано во всех режимах, но может использоваться только в режимах RS-232 или IrDA, потому что режим RS-485 работает в полудуплексе. Точно так же аппаратное управление потоком (hardware flow control) и процедура установки связи (handshaking) с использованием сигналов

DSR) доступна в режимах RS-232 или IrDA. Однако в реальности эта возможность может использоваться только в режиме RS-232 mode, потому что режим IrDA имеет только сигналы SIN и SOUT, гальванически развязанные оптикой (обычно оптронами).

3.5.1. RS-232 Data Mode

Режим по умолчанию называется RS-232 mode, он обычно используется для полнодуплексного (full duplex) обмена данными через сигналы SOUT и SIN. В этом режиме выходы управления модемом (

DTR) соединены с модемом и обычно настроены как цифровые выходы. Входы управления модемом (

RI/CP) также обычно соединены с модемом и настроены как цифровые входы. Альтернативно

DSR) могут регулировать поток данных через SOUT и SIN для предотвращения переполнения приемного FIFO. И наконец, с той же целью может использоваться программное управление потоком (software flow control) через символы Xoff/Xon.

Режим RS-232 представлен во многих приложениях, и другие режимы являются подмножеством этого режима.

3.5.2. RS-485 Data Mode

Режим RS-485 очень похож на режим RS-232 тем, что назначение линий SOUT, SIN и формат сигнала на них остались такими же. Поскольку RS-485 имеет шинную архитектуру с неотъемлемым свойством системы обмена с одиночным дуплексом. В режиме RS-485 микросхема TUSB3410 управляет сигналами

DTR, которые могут разрешить либо драйвер RS-485 (передатчик), либо приемник RS-485. В режиме RS-485 разрешающие сигналы для передачи автоматически выставляются всякий раз, когда DMA настроен на выдачу данных. Приемник может быть оставлен разрешенным при разрешенном драйвере (передатчике), чтобы позволить при необходимости принимать эхо, но когда ожидаются реальные данные из канала RS-485, то при приеме драйвер должен быть запрещен. Заметьте, что это устраняет аппаратное управление потоком (hardware flow control), поскольку работа по передаче данных идет в полудуплексе (то в одном направлении, то в другом, и никогда в обоих направлениях сразу), и аппаратное управление потоком не эффективно. Программное управление потоком (software flow control) также поддерживается, но оно может иметь ограниченное значение.

Режим RS-485 разрешается установкой бита 7 (485E) в регистре FCRL (см. секцию 7.1.4), и бита 1 (RCVE) в регистре MCR (см. секцию 7.1.6), что позволяет приемнику подслушивать в режиме RS-485.

3.5.3. IrDA Data Mode

В режиме IrDA сигнал SOUT кодируется и SIN декодируется по стандарту IrDA, и данные могут передаваться со скоростью до 115.2 килобит/сек (kbps). При этом требуется подключение к внешнему трансиверу IrDA. Обмен данными обычно идет в полном дуплексе (full duplex), т. е. сразу в двух направлениях. Обычно в системе IrDA только сигналы SOUT и SIN подключены к аппаратуре, так что аппаратное управление потоком (hardware flow control) не подразумевается. Также поддерживается программное управление потоком (software flow control).

Режим IrDA разрешается установкой бита 6 (IREN) в регистре USBCTL (см. секцию 5.4).

Процесс декодирования состоит из приема сигнала от приемника IrDA и преобразование его обратно в последовательность ноликов и единичек. В соответствии с преобразованием кодера, декодер преобразует импульс в бит нуля и отсутствие импульса в бит единицы.

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

Рис. 3-1. Выбор режима RS-232 и IR

Пояснения к рисунку 3-1:

From UART, SOUT сигнал данных с выхода UART.
IREN бит в регистре USBCTL, который разрешает работу IR.
UART BaudOut Clock тактовая частота для UART, от которой зависит скорость передачи.
TXCNTL бит в регистре MODECNFG, управляющий режимом управления передачей (см. секцию 5.5).
SOFTSW бит в регистре MODECNFG, позволяющий программно разрешать работу выхода передатчика(см. секцию 5.5).
CLKSLKT бит в регистре MODECNFG, управляющий выбором тактовой частоты, появляющейся на выходе CLKOUT.
To UART Receiver, SIN сигнал данных, поступающий на вход приемника UART.
SOUT/IR_SOUT выходной порт (внешний вывод) передатчика UART/IR.
SIN/IR_SIN входной порт (внешний вывод) приемника UART/IR.
CLKOUT выходной порт (внешний вывод), на который выводится тактовая частота.

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

Рис. 3-2. Реализация интерфейса USB Serial (RS-232)

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

Рис. 3-3. Реализация интерфейса USB RS-485

[4. Карта памяти (Memory Map) MCU]

• Когда бит 0 (SDW) регистра ROMS установлен в 0 (boot mode)

• Когда бит 0 (SDW) регистра ROMS установлен в 0 (normal mode)

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

Рис. 4-1. Карта памяти MCU

4.1. Различные регистры

Этот регистр используется MCU для переключения из режима загрузки (boot mode) в обычный режим (normal operation mode), причем boot mode устанавливается только по сбросу при включении. Дополнительно этот регистр предоставляет номер ревизии устройства и конфигурацию ROM/RAM.

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

Размер адресного пространства кода. По этим битам можно определить пространство кода ROM или RAM (бит 7 ROA определяет ROM или RAM). Эти биты постоянно находятся в значении 10b, что показывает кодовое пространство 16 кбайт, и на состояние этих бит сброс не оказывает никакого влияния.

00 = 4 килобайта под код
01 = 8 килобайт под код
10 = 16 килобайт под код
11 = 32 килобайта под код

Показывает версию ROM или RAM, на чем основывается адресное пространство CODE (код программы). Этот бит всегда установлен в 1 (что показывает на кодовое пространство на основе RAM), и сброс на него не влияет.

ROA = 0: кодовое пространство ROM
ROA = 1: кодовое пространство RAM

Таблица 4-1. Определение размера ROM/RAM

Регистр ROMSBOOT ROMRAM CODEROM CODE
ROAS1S0
000нетнет4K
001нетнет8K
010нетнет16K (зарезервировано)
011нетнет32K (зарезервировано)
10010K4Kнет
10110K8Kнет
1*1*0*10K*16K*нет*
11110K32K (зарезервировано)нет

* сейчас жестко используется только этот вариант.

4.1.2. Работа в состоянии Boot (загрузка MCU firmware в память CODE RAM)

Поскольку кодовое пространство firmware находится в CODE RAM (исключая boot ROM), то firmware для TUSB3410 должно быть загружено из какой-то внешней памяти. Как уже упоминалось, таких источников внешней памяти два: один это внешняя последовательная микросхема EEPROM с интерфейсом I2C, и другой это хост, подключенный через USB. Когда устройство сброшено, бит 0 (SDW) в регистре ROMS (см. секцию 4.1.1) и бит 7 (CONT) в регистре USBCTL (см. секцию 5.4) очищены. Это конфигурирует карту памяти в состояние boot mode (см. таблицу 4-3) и удерживает устройство в состоянии отключения от хоста. Первая инструкция кода выбирается по адресу CODE 0000h (сейчас в это место отображены 10 килобайт ROM). 16 килобайт RAM отображены в область XDATA (начиная с адреса 0000h). MCU под управлением бутлоадера ROM читает внешнюю память EEPROM и проверяет данные в ней на наличие кода (по специальной сигнатуре загрузки). Если в EEPROM содержит соответствующий допустимый код (правильную сигнатуру), то MCU читает код firmware из EEPROM и записывает его в 16 килобайт XDATA RAM. Если код (сигнатура) не найден, то MCU выполняет загрузку из USB.

Как только код загружен, MCU устанавливает бит SDW регистра ROMS в 1. Это переключает карту памяти в normal mode; как только это сделано, 16 килобайт RAM будут отображены на адресное пространство CODE (начиная с адреса 0000h), и MCU начнет оттуда выполнение программы. Код снова инициализирует USB и устройство проходит обычную процедуру энумерации на хосте.

В TUSB3410 имеется сторожевой таймер (WDT, WatchDog Timer) с дискретностью 1 мс. Если к этому регистру не было обращения в течение 128 мс, то счетчик WDT сбрасывает MCU (см. рис. 5-1). Сторожевой таймер по умолчанию разрешен, и его можно запретить, если записать сигнатуру 101010b в биты WDD[5:0] регистра. Тактовый сигнал с периодом 1 мс для WDT поступает от импульсов SOF. Таким образом, чтобы таймер WDT считал, должен быть установлен бит 7 (CONT) в регистре USBCTL (см. секцию 5.4).

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

MCU firmware должно записывать 1 в этот бит, чтобы предотвратить перезагрузку, которую может вызвать истечение таймаута сторожевого таймера ( watchdog ). Если MCU не записал в этот бит 1 в течение времени 128 мс, то watchdog перезагрузит микросхему. Запись 0 не оказывает никакого воздействия на watchdog. Таймер watchdog имеет 7 разрядов, и на него подается тактовая частота с периодом 1 мс (от импульсов SOF). Читается бит WDT всегда как 0.

Бит, который указывает на сброс по сторожевому таймеру или на сброс при включении питания.

WDR=0: произошел сброс при включении питания.
WDR=1: произошел сброс от watchdog. Чтобы очистить этот бит, MCU должен записать сюда 1, запись 0 не дает никакого эффекта.

Это один из 6 бит, который позволяет запретить watchdog. Для запрета watchdog этот бит должен быть очищен.

4.2. Буферы и карта памяти ввода вывода (I/O)

Адресное пространство XDATA в диапазоне от F800h до FFFFh (2 килобайта) зарезервировано для буферов данных, пакета настройки USB (setup packet), блоков дескрипторов конечной точки (endpoint descriptors block, EDB), и ввода/вывода (I/O). Здесь 128 ячеек зарезервированы для регистров MMR. В таблице 4-2 представлено пространство XDATA и ограничение доступа к нему через DMA, менеджер буфера USB (USB buffer manager, UBM) и MCU.

Таблица 4-2. Адресное пространство XDATA

Таблица 4-4. Адресное пространство XDATA для ячеек EDB

4.3. Endpoint Descriptor Block (от EDB-1 до EDB-3)

Передачи данных через между USB, MCU и внешними устройствами определены в endpoint descriptor block (EDB). Имеется три input EDB и три output EDB. За исключением EDB-0 (I/O endpoint-0), все EDB размещены в SRAM, как описано в таблице 4-3. Каждый EDB содержит информацию, описывающую X- и Y- буферы. В дополнение, каждый EDB предоставляет общую информацию статуса.

В таблице 4-5 показаны записи для блоков EDB от EDB-1 до EDB-3. Регистры EDB-0 описаны в таблице 4-6.

№ битаИмяRESETОписание бит
0WDT0
5-1WDD[5:1]00000Эти биты позволяют запретить watchdog. Чтобы запретить сторожевой таймер, в эти биты надо записать 10101b и бит 7 WDD0 также должен быть сброшен в 0. Запись других значений не приведет к запрету watchdog.
6WDR0
СмещениеИмя записиОписание
07EPSIZXY_nI/O endpoint_n: размер буфера X/Y.
06EPBCTY_nI/O endpoint_n: счетчик байт Y.
05EPBBAY_nI/O endpoint_n: базовый адрес буфера Y.
04, 03SPAREНе используется.
02EPBCTX_nI/O endpoint_n: счетчик байт X.
01EPBBAX_nI/O endpoint_n: базовый адрес буфера X.
00EPCNF_nI/O endpoint_n: конфигурация.

Таблица 4-6. Базовые адреса регистров конечной точки

Базовый адресОписание
FF08hOutput endpoint 1
FF10hOutput endpoint 2
FF18hOutput endpoint 3
FF48hInput endpoint 1
FF50hInput endpoint 2
FF58hInput endpoint 3

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

Зарезервировано, равно 0.

Разрешение прерывания по завершению транзакции USB. Устанавливается и сбрасывается MCU.

USBIE=0: по завершению транзакции прерывание не сработает.
USBIE=1: по завершению транзакции сработает прерывание.

Показывает событие stall. Устанавливается и сбрасывается MCU.

STALL=0: нет события stall.
STALL =1: произошло событие stall. Если этот бит установлен MCU, то инициализируется STALL рукопожатие (handshake) и бит очищается MCU.

Разрешение двойного буфера (X и Y). Устанавливается и сбрасывается MCU.

Бит переключения буфера USB, отражающий состояние последовательности DATA0, DATA1.

ISO=0 означает неизохронный трансфер данных. Этот бит обязательно должен быть очищен MCU, поскольку поддерживаются только неизохронные передачи.

Бит разрешения UBM. Устанавливается и сбрасывается MCU.

UBME=0: UBM не может использовать эту конечную точку.
UBME=1: UBM может использовать эту конечную точку.

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

№ битаИмяRESETОписание бит
1-0RSVx

Биты 10..3 базового адреса буфера X, дополненные справа 3 нулевыми младшими битами для получения 11-битного адреса. Значение этого регистра устанавливается MCU. UBM или DMA используют это значение как начальный адрес для указанной транзакции. Имейте в виду, что UBM или DMA не меняют это значение по окончании транзакции.

В регистре OEPBBAX_n задано смещение относительно адреса 0xF800 в области данных XDATA. Т. е. реальный абсолютный адрес буфера, в который будет класть данные UBM, вычисляется следующим образом:

OUT_BUFFERXn_ADDRESS = 0xF800 + (OEPBBAX_n № бита

Счетчик байт буфера X, который считает до 64 (1000000b). Любое значение больше 64 может привести к непредсказуемым результатам.

NAK=0: в буфере нет допустимых данных. Готовность к OUT хоста.
NAK=1: буфер содержит допустимый пакет от хоста (выдает ответ NAK на запрос хоста OUT).

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

№ битаИмяRESETОписание бит
7-0A[10:3]xИмяRESETОписание бит
6-0C[6:0]x

Биты 10..3 базового адреса буфера Y, дополненные справа 3 нулевыми младшими битами для получения 11-битного адреса. Значение этого регистра устанавливается MCU. UBM или DMA используют это значение как начальный адрес для указанной транзакции. Имейте в виду, что UBM или DMA не меняют это значение по окончании транзакции.

В регистре OEPBBAY_n задано смещение относительно адреса 0xF800 в области данных XDATA. Т. е. реальный абсолютный адрес буфера, в который будет класть данные UBM, вычисляется следующим образом:

OUT_BUFFERYn_ADDRESS = 0xF800 + (OEPBBAY_n № бита

Счетчик байт буфера Y, который считает до 64 (1000000b). Любое значение больше 64 может привести к непредсказуемым результатам.

NAK=0: в буфере нет допустимых данных. Готовность к OUT хоста.
NAK=1: буфер содержит допустимый пакет от хоста (выдает ответ NAK на запрос хоста OUT).

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

№ битаИмяRESETОписание бит
7-0A[10:3]xИмяRESETОписание бит
6-0C[6:0]x

Размер буфера X и буфера Y, от 0 (0000000b) до 64 (1000000b). Любое значение больше 64 может привести к непредсказуемым результатам.

Зарезервировано, равно 0.

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

№ битаИмяRESETОписание бит
6-0S[6:0]x

Зарезервировано, равно 0.

Разрешение прерывания по завершению транзакции USB. Устанавливается и сбрасывается MCU.

USBIE=0: по завершению транзакции прерывание не сработает.
USBIE=1: по завершению транзакции сработает прерывание.

Показывает событие stall. Устанавливается UBM, но может быть установлен / сброшен MCU.

STALL=0: нет события stall.
STALL=1: произошло событие stall. Если этот бит установлен MCU, то инициализируется STALL рукопожатие (handshake) и бит автоматически очищается.

Разрешение двойного буфера (X и Y). Устанавливается и сбрасывается MCU.

Бит переключения буфера USB, отражающий состояние последовательности DATA0, DATA1.

ISO=0 означает неизохронный трансфер данных. Этот бит обязательно должен быть очищен MCU, поскольку поддерживаются только неизохронные передачи.

Бит разрешения UBM. Устанавливается и сбрасывается MCU.

UBME=0: UBM не может использовать эту конечную точку.
UBME=1: UBM может использовать эту конечную точку.

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

№ битаИмяRESETОписание бит
1-0RSVx

Биты 10..3 базового адреса буфера X, дополненные справа 3 нулевыми младшими битами для получения 11-битного адреса. Значение этого регистра устанавливается MCU. UBM или DMA используют это значение как начальный адрес для указанной транзакции. Имейте в виду, что UBM или DMA не меняют это значение по окончании транзакции.

В регистре IEPBBAX_n задано смещение относительно адреса 0xF800 в области данных XDATA. Т. е. реальный абсолютный адрес буфера, из которого UBM будет брать данные для отправки хосту, вычисляется следующим образом:

IN_BUFFERXn_ADDRESS = 0xF800 + (IEPBBAX_n № бита

Счетчик байт буфера X, который считает до 64 (1000000b). Любое значение больше 64 может привести к непредсказуемым результатам.

NAK=0: буфер содержит допустимый пакет для IN-транзакции хоста.
NAK=1: буфер пуст (выдает ответ NAK на запрос хоста IN).

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

№ битаИмяRESETОписание бит
7-0A[10:3]xИмяRESETОписание бит
6-0C[6:0]x

Биты 10..3 базового адреса буфера Y, дополненные справа 3 нулевыми младшими битами для получения 11-битного адреса. Значение этого регистра устанавливается MCU. UBM или DMA используют это значение как начальный адрес для указанной транзакции. Имейте в виду, что UBM или DMA не меняют это значение по окончании транзакции.

В регистре IEPBBAY_n задано смещение относительно адреса 0xF800 в области данных XDATA. Т. е. реальный абсолютный адрес буфера, из которого UBM будет брать данные для отправки хосту, вычисляется следующим образом:

IN_BUFFERYn_ADDRESS = 0xF800 + (IEPBBAY_n № бита

Счетчик байт буфера Y, который считает до 64 (1000000b). Любое значение больше 64 может привести к непредсказуемым результатам.

NAK=0: буфер содержит допустимый пакет для IN-транзакции хоста.
NAK=1: буфер пуст (выдает ответ NAK на запрос хоста IN).

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

№ битаИмяRESETОписание бит
7-0A[10:3]xИмяRESETОписание бит
6-0C[6:0]x

Размер буфера X и буфера Y, от 0 (0000000b) до 64 (1000000b). Любое значение больше 64 может привести к непредсказуемым результатам.

Зарезервировано, равно 0.

4.4. Регистры дескриптора Endpoint-0

Таблица 4-7. Регистры ввода/вывода EDB-0

№ битаИмяRESETОписание бит
6-0S[6:0]x
АдресИмя регистраОписаниеБазовый адрес буфера
FF83h
FF82h
OEPBCNT_0
OEPCNFG_0
Output endpoint_0: регистр счетчика байт
Output endpoint_0: регистр конфигурации
FEF0h
FF81h
FF80h
IEPBCNT_0
IEPCNFG_0
Input endpoint_0: регистр счетчика байт
Input endpoint_0: регистр конфигурации
FEF8h

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

Зарезервировано, равно 0.

Разрешение прерывания по завершению транзакции USB. Устанавливается и сбрасывается MCU.

USBIE=0: по завершению транзакции прерывание не сработает.
USBIE=1: по завершению транзакции сработает прерывание.

Показывает событие stall. Устанавливается и сбрасывается MCU.

STALL=0: нет события stall.
STALL=1: произошло событие stall. Если этот бит установлен MCU, то инициализируется STALL рукопожатие (handshake) и бит очищается автоматически при следующей транзакции настройки (setup).

Зарезервировано, равно 0.

Бит переключения буфера USB, отражающий состояние последовательности DATA0, DATA1.

Зарезервировано, равно 0.

Бит разрешения UBM. Устанавливается и сбрасывается MCU.

UBME=0: UBM не может использовать эту конечную точку.
UBME=1: UBM может использовать эту конечную точку.

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

№ битаИмяRESETОписание бит
1-0RSV0

Счетчик байт, который считает до 8 (1000b). Любое значение больше 8 зарезервировано (если используется, то все равно по умолчанию 8).

Зарезервировано, равно 0.

NAK=0: буфер содержит допустимый пакет для IN-транзакции хоста.
NAK=1: буфер пуст (выдает ответ NAK на запрос хоста IN).

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

№ битаИмяRESETОписание бит
3-0C[3:0]0000

Зарезервировано, равно 0.

Разрешение прерывания по завершению транзакции USB. Устанавливается и сбрасывается MCU.

USBIE=0: по завершению транзакции прерывание не сработает.
USBIE=1: по завершению транзакции сработает прерывание.

Показывает событие stall. Устанавливается и сбрасывается MCU.

STALL=0: нет события stall.
STALL=1: произошло событие stall. Если этот бит установлен MCU, то инициализируется STALL рукопожатие (handshake) и бит автоматически очищается.

Зарезервировано, равно 0.

Бит переключения буфера USB, отражающий состояние последовательности DATA0, DATA1.

Зарезервировано, равно 0.

Бит разрешения UBM. Устанавливается и сбрасывается MCU.

UBME=0: UBM не может использовать эту конечную точку.
UBME=1: UBM может использовать эту конечную точку.

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

№ битаИмяRESETОписание бит
1-0RSV0

Счетчик байт, который считает до 8 (1000b). Любое значение больше 8 зарезервировано.

Зарезервировано, равно 0.

NAK=0: в буфере нет допустимых данных. Готовность к транзакции OUT от хоста.
NAK=1: буфер содержит допустимый пакет от хоста, пока не обработанный MCU (выдает ответ NAK на запрос хоста OUT).

[5. Регистры USB]

В этом регистре содержится адрес функции устройства USB.

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

№ битаИмяRESETОписание бит
3-0C[3:0]0000

Эти биты задают текущий адрес устройства, назначенный на функцию. MCU записывает сюда указанное значение при поступлении от хоста команды SET ADDRESS.

Зарезервировано, равно 0.

Все биты в этом регистре устанавливаются аппаратно и очищаются MCU, когда он записывает 1 в соответствующее место расположения бита (запись 0 не оказывает эффекта). Дополнительно каждый бит может генерировать прерывание, если установлен соответствующий бит маски прерываний (сокращение R/C означает, что чтение read и очистка clear осуществляется только под управлением MCU).

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

№ битаИмяRESETОписание бит
6-0FA[6:0]0

Бит перезаписи SETUP. Устанавливается аппаратно, когда принят setup packet, при этом пакет setup уже находится в буфере setup.

STPOW=0: MCU может очистить этот бит, если запишет в него 1 (запись 0 не дает никакого эффекта).
STPOW=1: SETUP overwrite

Бит удаленного пробуждения (remote wakeup).

WAKEUP=0: MCU может очистить этот бит, если запишет в него 1 (запись 0 не дает никакого эффекта).
WAKEUP=1: запрос на пробуждение хоста, который поступил от ножки WAKEUP.

Бит, сигнализирующий о приеме транзакции SETUP. Пока SETUP в состоянии 1, на все запросы IN и OUT для конечной точки 0 будет ответ NAK, независимо от их реальных значений бита NAK.

SETUP=0: MCU может очистить этот бит, если запишет в него 1 (запись 0 не дает никакого эффекта).
SETUP=1: принята транзакция настройки (SETUP).

URRI=0: MCU может очистить этот бит, если запишет в него 1 (запись 0 не дает никакого эффекта).
URRI=1: модемом был детектирован звонок, и это событие используется для того, чтобы разбудить чип (для вывода его из режима приостановки suspend).

Бит запроса на возобновление (resume) функции.

RESR=0: MCU может очистить этот бит, если запишет в него 1 (запись 0 не дает никакого эффекта).
RESR=1: детектировано возобновление функции (function resume).

Бит запроса на приостановку (suspend) функции. Этот бит устанавливается в ответ на глобальное или селективное событие приостановки.

SUSR=0: MCU может очистить этот бит, если запишет в него 1 (запись 0 не дает никакого эффекта).
SUSR=1: детектирована приостановка функции (function suspend).

Бит запроса на сброс функции. Этот бит устанавливается в ответ на запуск хостом процедуры сброса порта USB (USB reset). Этот бит не затрагивается сбросом функции USB (USB function reset).

RSTR=0: MCU может очистить этот бит, если запишет в него 1 (запись 0 не дает никакого эффекта).
RSTR=1: детектирован сброс функции.

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

№ битаИмяRESETОписание бит
0STPOW0

Бит разрешения прерывания на событие SETUP overwrite.

STPOW=0: прерывание STPOW запрещено
STPOW=1: прерывание STPOW разрешено

Бит разрешения прерывания на событие удаленного пробуждения (remote wakeup).

WAKEUP =0: прерывание WAKEUP запрещено
WAKEUP =1: прерывание WAKEUP разрешено

Бит разрешения прерывания на событие SETUP.

SETUP=0: прерывание SETUP запрещено
SETUP=1: прерывание SETUP разрешено

Бит разрешения прерывания на событие звонка UART RI.

URRI=0: прерывание UART RI запрещено
URRI=1: прерывание UART RI разрешено

Бит разрешения прерывания на возобновление (resume) функции.

RESR=0: прерывание от возобновления функции запрещено
RESR=1: прерывание от возобновления функции разрешено

Бит разрешения прерывания на приостановку (suspend) функции.

SUSR=0: прерывание от приостановки функции запрещено
SUSR=1: прерывание от приостановки функции разрешено

Бит разрешения прерывания на сброс функции. Этот бит не затрагивается сбросом функции USB (USB function reset).

RSTR=0: прерывание от сброса функции запрещено
RSTR=1: прерывание от сброса функции разрешено

В отличие от остальных регистров, этот регистр очищается только сигналом сброса при включении питания. USB reset не может сбросить этот регистр (см. рис. 5-1).

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

№ битаИмяRESETОписание бит
0STPOW0

Как ответ на setup paket, MCU декодирует запрос и устанавливает/сбрасывает этот бит, чтобы отразить направление трансфера данных.

DIR=0: транзакция USB data-OUT (от хоста к TUSB3410)
DIR=1: транзакция USB data-IN (от TUSB3410 к хосту)

Бит статуса прерывания SETUP. Этот бит управляется MCU чтобы показать аппаратуре, когда обрабатывается прерывание SETUP.

SIR=0: прерывание SETUP не находится в обработке. MCU очищает этот бит перед выходом из обработчика прерывания SETUP.
SIR=1: прерывание SETUP в настоящий момент обрабатывается. MCU устанавливает этот бит в начале обработчика прерывания SETUP.

Зарезервировано, равно 0.

В этот бит всегда должен записываться 0.

Бит привязки сброса функции к сбросу MCU. Этот бит соединяет USB function reset с MCU reset или наоборот разъединяет их.

FRSTE =0: запись 0 в этот бит не даёт никакого эффекта
FRSTE =1: сброс функции соединен со сбросом MCU

Запрос на удаленное пробуждение устройства (device remote wakeup request). Этот бит устанавливается MCU и сбрасывается автоматически.

RWUP=0: запись 0 в этот бит не даёт никакого эффекта
RWUP=1: когда MCU записывает сюда 1, генерируется импульс remote-wakeup.

Разрешение режима IR. Этот бит устанавливается и сбрасывается под управлением firmware MCU.

IREN=0: кодер/декодер IR запрещен, выбран режим UART
RSTR=1: кодер/декодер IR разрешен, режим UART не выбран

CONT=0: порт upstream USB отключен, pullup запрещен
CONT=1: порт upstream USB подключен, pullup разрешен

Этот регистр очищается только сигналом сброса при включении питания. USB reset не может сбросить этот регистр.

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

№ битаИмяRESETОписание бит
0DIR0

Управление выходом передачи: выбор аппаратного или программного (под управлением firmware) выбора состояния буфера последовательного выхода, который может переключаться в третье состояние.

TXCNTL=0: выбрано автоматическое переключение под управлением аппаратуры
TXCNTL=1: выбрано программное переключение

Программное переключение: управляемый firmware выходной буфер с третьим состоянием разрешается для вывода на внешнюю ножку чипа.

SOFTSW=0: буфер последовательного выхода разрешен
SOFTSW=1: буфер последовательного выхода запрещен

Разрешение выхода тактов: разрешает / запрещает вывод тактов на ножку CLKOUT.

CLKOUTEN=0: вывод тактов запрещен. На выходе CLKOUT логический 0.
CLKOUTEN=1: вывод тактов разрешен

Выбор источника сигнала для выхода тактов CLKOUT : можно выбрать либо фиксированную частоту 3.566 МГц, либо такты для UART.

CLKSLCT=0: выбран в качестве тактового сигнала генератор скорости UART.
CLKSLCT=1: на CLKOUT будет выводиться фиксированная частота 3.566 МГц

Управление выводом тактов (Clock Output Control)

Бит 2 (CLKOUTEN) в регистре MODECNFG разрешает или запрещает вывод тактов на ножке CLKOUT TUSB3410. При включении по умолчанию CLKOUT запрещен. Если это необходимо, firmware может записать 1, чтобы разрешить вывод тактов.

Бит 3 (CLKSLCT) в регистре MODECNFG выбирает источник выходных тактов либо от фиксированной частоты 3.556 МГц, либо от тактов UART BaudOut.

5.6. Vendor ID/Product ID (VID/PID)

USB-IF и сертификация Microsoft WHQL требует эти параметры, и производители оборудования используют свои собственные уникальные ID вендора (Vedor ID, VID) и ID продукта (Product ID, PID, идентификатор модели). OEM не могут использовать идентификаторы VID/PID чипа вендора (например, VID/PID Texas Instruments) в своих окончательных продуктах. Уникальные комбинации VID/PID предотвращает потенциальные конфликты драйвера и разрешают сертификацию, привязанную к логотипу. Для дополнительной информации см. www.usb.org.

Каждая микросхема TUSB3410 имеет свой собственный уникальный 64-битный серийный номер, который генерируется во время производства. Этот номер последовательно увеличивается, однако нет гарантии того, что в этом процессе некоторые номера не будут пропущены. После сброса при включении питания SERNUM7 содержит самый значащий байт 64-битного серийного номера, а SERNUM0 самый младший байт. Эти данные не могут быть сброшены или перезаписаны.

Далее описана процедура загрузки серийного номера устройства в общее RAM:

5.15. Функционирование сброса и путь сигнала сброса при включении питания (Power-Up Reset)

На рис. 5-1 показано логическое соединение функции сброса шины USB (сигнал

USBR) сигнала ножки внешнего сброса (

RESET). Внутренний сигнал сброса генерируется из уровня на выводе

PURS) или от сигнала сброса USB (сигнал

USBRS может быть разрешен или запрещен битом 4 (FRSTE) регистра USBCTL (см. секцию 5.4), при включении питания FRSTE = 0. Внутренний сброс используется для переустановки всех регистров и логики, за исключением регистров USBCTL и MODECNFG, которые сбрасываются только сигналом

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

Рис. 5-1. Схема генерации и прохождения сигнала сброса.

5.16. Нагрузочный резистор (Pullup Resistor) для подключения/отключения устройства USB

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

Рис. 5-2. Схема нагрузочного резистора для подключения/отключения устройства USB

[6. Контроллер DMA]

В таблице 6-1 показаны каналы DMA и связанные с ними направления передачи данных. Два канала предоставлены для трансфера данных между хостом и UART.

Таблица 6-1. Каналы DMA

№ битаИмяRESETОписание бит
0TXCNTL0
Канал DMAНаправление передачиКомментарии
DMA-1От хоста к UARTDMA пишет данные в регистр TDR UART
DMA-3От UART к хостуDMA читает данные из регистра RDR UART

6.1. Регистры контроллера DMA

На приеме по окончании передачи блока DMA обновляет счетчик байт и бит 7 (NAK) в EDB (см. секцию 4.3). Дополнительно DMA использует бит 4 (XY) в регистре DMACDR для автоматического переключения (без прерывания работы MCU, так как переключение бита XY делает блок UBM). DMA останавливается только когда происходит таймаут или случается ошибка. Когда DMA передает (из буфера X/Y), то он продолжает переключение буферов X/Y, пока не обнаружит, что значение счетчика байт меньше размера буфера (обычно размер буфера 64 байта). В этот момент передача завершается и останавливается.

Этот регистр задает номер EDB который использует DMA для передачи данных в UART. Дополнительно этот регистр задает направление передачи данных и выбирает буфер транзакции X или Y.

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

Указатель дескриптора конечной точки. Это поле бит указывает на набор регистров EDB, которые должны использоваться для указанного трансфера.

XY=0: следующий для передачи/приема будет буфер X
XY=1: следующий для передачи/приема будет буфер Y

Бит управления непрерывностью трансфера DMA. Этот бит задает режим трансфера DMA, и всегда должен быть записан в состояние лог. 1.

В этом режиме DMA и UBM чередуют использование буферов X и Y (двойное буферизирование). DMA устанавливает бит 4 XY, и UBM использует его для трансфера. DMA переключается между буферами X и Y и продолжает передачу (то из буфера X, то из Y) без всякого вмешательства MCU. DMA прекращает работу и вызывает срабатывание прерывания MCU в следующих случаях:

1. Когда счетчик байтов UBM меньше размера буфера (заданного в EDB), DMA делает трансфер частично заполненного пакета и вызывает прерывание MCU по завершении.
2. Истекает таймер транзакции. DMA также вызывает срабатывание прерывания MCU.

Бит разрешения / запрещения прерывания DMA. Этот бит разрешает и запрещает прерывание по завершении транзакции.

INE=0: прерывание запрещено. Дополнительно бит 0 PPKT в регистре DMACSR1 (см. секцию 6.1.2) не очищается, бит 7 EN и DMAC не запрещены.
INE=1: разрешает прерывание EN. Когда этот бит установлен, DMA вызывает срабатывание прерывания MCU при переходе из 1 в 0 бита 7 EN. Когда трансфер завершен, EN=0.

Разрешение канала DMA. MCU устанавливает этот бит для начала трансфера DMA. Когда трансфер завершен, или прерван из-за ошибки, этот бит очищается. Переход этого бита из состояния 1 в 0 генерирует прерывание (если прерывание разрешено).

EN=0: DMA остановлен. Остановка происходит, когда счетчик байт достигает нуля, или когда происходит таймаут транзакции. Когда остановлено, DMA обновляет счетчик байт, устанавливает NAK=0 в регистре счетчика байт конечной точки output, и вызывает прерывание MCU (если бит 6 INE равен 1).
EN=1: установка этого бита стартует трансфер DMA.

Этот регистр задает значение таймаута транзакции. Дополнительно он содержит код завершения, который сообщает о любых событиях ошибок и таймаута.

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

№ битаИмяRESETОписание бит
2-0E[2:0]0

Бит события частично заполненного пакета. Этот бит устанавливается DMA и очищается MCU.

PPKT=0: нет события частично заполненного пакета
PPKT=1: детектировано событие частично заполненного пакета. Когда INE=0, этот бит не очищает бит 7 EN в регистре DMACDR1; таким образом, DMAC остается разрешенным, готовым к следующей транзакции. Бит PPKT очищается, когда MCU записывает в него 1, запись 0 не дает никакого эффекта.

Эти биты доступны только для чтения и всегда читаются как нули.

Этот регистр задает номер EDB, который DMA использует для передачи данных из UART. Дополнительно этот регистр задает направление передачи данных и выбирает буфер транзакции X или Y.

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

№ битаИмяRESETОписание бит
0PPKT0

Указатель дескриптора конечной точки. Это поле бит указывает на набор регистров EDB, которые должны использоваться для указанного трансфера.

Этот бит всегда читается как 1. Его нужно записать в 0, чтобы обновить бит буфера XY (в этом регистре бит 4), это надо выполнять только в режиме ускоренной передачи (burst mode).

XY=0: следующий для передачи/приема будет буфер X
XY=1: следующий для передачи/приема будет буфер Y

Бит управления непрерывностью трансфера DMA. Этот бит задает режим трансфера DMA, и всегда должен быть записан в состояние лог. 1.

В этом режиме DMA и UBM чередуют использование буферов X и Y (двойное буферизирование). UBM устанавливает бит 4 XY, и DMA использует его для трансфера. DMA переключается между буферами X и Y и продолжает прием (то в буфер X, то в Y) без всякого вмешательства MCU. DMA прекращает работу и вызывает срабатывание прерывания MCU в следующих случаях:

1. Истекает таймер транзакции: DMA обновляет EDB и вызывает срабатывание прерывания MCU. UBM при этом передает хосту частично заполненный пакет.
2. Произошла ошибка приемника UART: DMA обновляет EDB, но при этом прерывание MCU не вызывает. UBM также передает хосту частично заполненный пакет.

Бит разрешения / запрещения прерывания DMA. Этот бит разрешает и запрещает прерывание по завершении транзакции.

INE=0: прерывание запрещено. Дополнительно бит 0 OVRUN и бит 1 TXFT в регистре DMACSR3 (см. секцию 6.1.4) не очищается, бит 7 EN и DMAC не запрещены.
INE=1: разрешает прерывание EN. Когда этот бит установлен, DMA вызывает срабатывание прерывания MCU при переходе из 1 в 0 бита 7 EN. Когда трансфер завершен, EN=0.

Разрешение канала DMA. MCU устанавливает этот бит для начала трансфера DMA. Когда трансфер завершен, или прерван из-за ошибки, этот бит очищается. Переход этого бита из состояния 1 в 0 генерирует прерывание (если прерывание разрешено).

EN=0: DMA остановлен. Остановка происходит, когда происходит таймаут транзакции, или когда происходит ошибка приемника UART. Когда остановлено, DMA обновляет счетчик байт, устанавливает NAK=0 в регистре счетчика байт конечной точки input. Если остановка DMA произошла по таймауту транзакции, то DMA запускает прерывание. Однако, если остановка DMA произошла из-за ошибки UART, то DMA прерывание MCU не генерируется (в этом случае будет соответствующее прерывание от UART).
EN=1: установка этого бита стартует трансфер DMA.

Этот регистр задает значение таймаута транзакции. Дополнительно он содержит код завершения, который сообщает о любых событиях ошибок и таймаута.

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

№ битаИмяRESETОписание бит
2-0E[2:0]0

Бит события переполнения. Этот бит устанавливается DMA и очищается MCU (см. таблицу 6-2).

OVRUN=0: переполнения не было
OVRUN=1: детектировано переполнение. Когда IEN=0, этот бит не очищает бит 7 EN в регистре DMACDR3; таким образом, DMAC остается разрешенным, готовым к следующей транзакции. Бит OVRUN очищается, когда MCU запишет в него 1, запись 0 не дает никакого эффекта.

Бит события таймаута (см. таблицу 6-2).

TXFT=0: DMA остановил трансфер без таймаута.
TXFT=1: DMA остановлен по таймауту транзакции. Когда IEN=0, этот бит не очищает бит 7 EN регистра DMACDR3 (см. секцию 6.1.3); таким образом, DMAC остается разрешенным, готовым к следующей транзакции. Очищается бит TXFT, когда MCU записывает в него 1, запись 0 не дает эффекта.

Это поле задает таймаут транзакции в единицах 1 мс. Это значение загружается в декрементный счетчик каждый раз при передаче байта. Декрементный счетчик уменьшается на 1 с каждым импульсом SOF (т. е. каждую миллисекунду). Если счетчик достиг нулевого значения, то устанавливается бит 1 TXFT и трансфер DMA останавливается. Счетчик начнет считать только когда установлены биты 7 TEN регистра DMACSR3 и бит 7 EN регистра DMACDR3, и был принят первый байт.

Бит разрешения / запрещения счетчика таймаута транзакции.

TEN=0: счетчик запрещен (таймаут не отслеживается)
TEN=1: счетчик таймаута разрешен

Таблица 6-2. События IN-завершения DMA (IN-Termination Condition)

№ битаИмяRESETОписание бит
0OVRUN0
Остановка INTXFTOVRUNКомментарий
Ошибка UART00Было детектировано событие ошибки UART
Частично заполненный пакет UART10Это событие происходит, когда в приемник UART больше не поступают данные для хоста (данные поступают скудно, с паузами).
UART overrun11Это событие происходит, когда заполнены оба буфера X и Y, а также заполнен FIFO UART (хост занят, и не может принять данные).

6.2. Ввод/вывод данных (Bulk Data I/O) с использованием EDB

UBM и DMAC обращаются к EDB для выборки параметров буфера для транзакций IN и OUT (IN и OUT по отношению к хосту). Подразумевается следующее:

• MCU инициализирует EDB
• используется режим непрерывной работы DMA
• Используется двойное буферизирование
• Переключение X/Y управляется UBM

6.2.1. Транзакция IN (от TUSB3410 к хосту)

1. MCU инициализирует IEDB (пакет из 64 байт, и используется двойное буферизирование) и следующие регистры DMA:

• DMACSR3: задает величину таймаута транзакции.
• DMACDR3: задает, какой используется IEDB и режим работы DMA (continuous mode, непрерывный режим). Как только в этом регистре установлен EN = 1, стартует процесс трансфера данных.

2. DMA переносит данные из UART в буфер X. Когда блок из 64 байт передан, DMA обновляет счетчик байт и сбрасывает NAK на 0 в регистре счетчика байт конечной точки input (это сигнализирует для UBM, что буфер X готов к передаче данных к хосту). Блок UBM запускает трансфер X-буфера к хосту с использованием значения счетчика байт в регистре счетчика байт и переключает бит X/Y. DMA продолжает перенос данных из UART в буфер Y. По окончании передачи блока DMA обновляет счетчик байт и сбрасывает NAK на 0 в регистре счетчика байт конечной точки input (это сигнализирует для UBM, что буфер Y готов к передаче данных к хосту). DMA продолжает трансфер данных от устройства к хосту, переключая при этом буферы X и Y без всякого вмешательства MCU.

3. Завершение трансфера: как уже было упомянуто, DMA/UBM продолжает перенос данных, переключаясь между буферами X и Y. Завершение трансфера может произойти при следующих событиях:

• Остановка переноса данных (Stop Transfer): хост оповещает MCU (через control endpoint) для остановки передачи. При этом событии MCU сбрасывает бит 7 (EN) на 0 в регистре DMACDR.
• Часть пакета (Partial Packet): приемник устройства не имеет данных для передачи к хосту. При этом событии значение счетчика байт меньше 64 вызывает срабатывание таймера таймаута транзакции. Когда DMA детектирует это событие, то он устанавливает бит 1 (TXFT) на 1 и бит 0 (OVRUN) на 0 в регистре DMACSR3, обновляет счетчик байт и бит NAK в регистре счетчика байт конечной точки input, и запускает прерывание MCU. UBM передает частично заполненный пакет к хосту.
• Переполнение буфера (Buffer Overrun): хост занят, буферы X и Y заполнены (X-NAK = 0 и Y-NAK = 0), и DMA не может записать что-то в эти буферы. Таймаут транзакции останавливает трансфер DMA, DMA устанавливает бит 1 (TXFT) на 1 и бит 0 (OVRUN) на 1 в регистре DMACSR3, и запускает прерывание MCU.
• Событие ошибки UART (UART Error Condition): на приеме от UART событие ошибки приемника останавливает DMA устанавливает бит 1 (TXFT) на 1 и бит 0 (OVRUN) на 0 в регистре DMACSR3, но бит EN остается в установленным на 1. Таким образом, DMA не запускает прерывание MCU. Однако UART генерирует прерывание статуса, чем оповещает MCU о событии ошибки.

6.2.2. Транзакция OUT (от хоста к TUSB3410)

1. MCU инициализирует OEDB (пакет из 64 байт, и использование двойной буферизации) и следующие регистры DMA:

• DMACSR1: предоставляет индикацию частично заполненного пакета (partial packet).
• DMACDR1: задает используемую конечную точку output режим работы DMA (continuous mode, непрерывный режим). Как только в этом регистре установлен EN = 1, стартует процесс трансфера данных.

2. UBM переносит данные от хоста в буфер X. Когда блок из 64 байт передан, UBM обновляет счетчик байт и сбрасывает NAK на 1 в регистре счетчика байт конечной точки output (это сигнализирует для DMA, что буфер X готов к передаче данных к UART). DMA запускает трансфер X-буфера к UART, используя значения счетчика байт в регистре счетчика байт конечной точки output. При этом UBM продолжает перенос данных от хоста в буфер Y. По окончании передачи блока UBM обновляет счетчик байт и сбрасывает NAK на 1 в регистре счетчика байт конечной точки output (это сигнализирует для DMA, что буфер Y готов к передаче данных к UART). DMA продолжает трансфер данных из буферов X и Y в UART, переключая при этом буферы X и Y без всякого вмешательства MCU.

3. Завершение трансфера: DMA/UBM продолжают трансфер данных с переключением буферов. Завершение трансфера может произойти при следующих событиях:

• Остановка переноса данных (Stop Transfer): хост оповещает MCU (с использованием control endpoint) для остановки передачи. При этом событии MCU сбрасывает EN на 0 в регистре DMACDR1.
• Часть пакета (Partial Packet): UBM принял от хоста частично заполненный пакет. При этом событии значение счетчика байт меньше 64. Когда DMA детектирует это событие, он передает частично заполненный пакет в UART, устанавливает PPKT на 1, обновляет NAK на 0 в регистре счетчика байт конечной точке output и запускает прерывание MCU.

[7. UART]

[8. Расширенный порт ввода/вывода (Expanded GPIO Port)]

8.1. Регистры ввода/вывода и управления

TUSB3410 имеет 4 вывода порта ввода/вывода общего назначения (P3.0, P3.1, P3.3 и P3.4), которые могут управляться firmware, запущенном на MCU. каждая ножка вывода может управляться отдельно, независимо от других ножек, и каждая реализована как push/pull выход CMOS с нагрузочной способностью 12 mA с управлением режима третьего состояния и вход. В MCU выходы организованы с открытым стоком (open drain), при этом выходной низкий уровень может быть установлен продолжительное время, однако выход в состоянии высокого уровня переключается на два цикла и затем выход переходит в состояние высокого сопротивления (третье состояние).

Вывод, работающий в режиме входа, может быть прочитан инструкцией MOV. Например, MOV C,P3.3 читает вход на порте P3.3. Перед чтением предварительно убедитесь, что связанный выход находится в состоянии высокого сопротивления.

Выход может быть установлен в высокий логический уровень (и при этом вывод окажется в состоянии высокого сопротивления) инструкцией SETB. Например, SETB P3.1 переводит P3.1 в состояние лог. 1. Выход может быть установлен низкий логический уровень инструкцией CLR, так что CLR P3.4 переведет порт P3.4 в состояние низкого логического уровня (который останется в таком состоянии длительное время, пока состояние не будет изменено).

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

MCU может писать в этот регистр. Если MCU установит любой из этих бит в 1, то соответствующий pullup резистор будет отключен от внешнего вывода. Если MCU запишет в эти биты 0, то соответствующий pullup будет подключен. Резистор pullup подключается к напряжению питания Vcc.

[9. Прерывания (Interrupts)]

9.1. Регистры прерывания и статуса 8052

В стандарте 8052 зарезервировано 5 источников прерывания. SIE является стандартным регистром для разрешения прерываний (standard interrupt-enable), который управляет пятью источниками прерываний. Он также известен как IE0, размещенном по адресу S:A8h (в области данных регистров специального назначения). Все дополнительные источники прерывания объединены функцией ИЛИ на прерывание EX0.

Таблица 9-1. Карта размещения векторов (адресов) прерывания 8052

№ битаИмяRESETОписание бит
0
1
3
4
Pin0
Pin1
Pin3
Pin4
0
Источник
прерывания
ОписаниеАдресКомментарий
ESПрерывание UART0023h
ET1Прерывание от Timer-1001Bh
EX1Внешнее прерывание 10013h
ET0Прерывание от Timer-0000Bh
EX0Внешнее прерывание 00003hК этому прерыванию также привязаны все прерывания от внутренней аппаратуры, нестандартной для архитектуры 8052 (USB, I2C, DMA и т. д.).
ResetВектор сброса0000h

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

Разрешает или запрещает внешнее прерывание 0.

EX0=0: внешнее прерывание 0 запрещено.
EX0=1: внешнее прерывание 0 разрешено.

Разрешает или запрещает прерывание от таймера 0.

ET0=0: прерывание timer-0 запрещено.
ET0=1: прерывание timer-0 разрешено.

Разрешает или запрещает внешнее прерывание 1.

EX1=0: внешнее прерывание 1 запрещено.
EX1=1: внешнее прерывание 1 разрешено.

Разрешает или запрещает прерывание от таймера 1.

ET1=0: прерывание timer-1 запрещено.
ET1=1: прерывание timer-1 разрешено.

Разрешает или запрещает прерывание от последовательного порта.

ES=0: прерывание от последовательного порта запрещено.
ES=1: прерывание от последовательного порта разрешено.

Разрешить или запретить все прерывания сразу (глобальное управление прерываниями).

EA=0: все прерывания запрещены.
EA=1: разрешение работы всех прерываний управляется индивидуальными битами.

9.1.2. Дополнительные источники прерываний

Все нестандартные для архитектуры 8052 прерывания (DMA, I2C и т. д.) объединены операцией ИЛИ для генерирования внутреннего прерывания INT0. Кроме того,
INT0 должен быть запрограммирован как прерывание, активное по низкому уровню (low-level interrupt, без срабатывания по перепаду). После сброса, если INT0 не изменен, то он работает как прерывание по срезу (edge-triggered interrupt). Предоставлен регистр вектора прерывания для идентификации всех источников прерывания (см. секцию 9.1.3, VECINT: Vector Interrupt Register). Имеется до 64 векторов прерывания. MCU отвечает за чтение вектора и вызов соответствующей подходящей подпрограммы обработчика прерывания.

Этот регистр содержит значение вектора, идентифицирующего внутренний источник прерывания, который захватывается при переходе по адресу 0003h. Запись (любого значения) в этот регистр удаляет вектор и обновляет регистр на новое значение вектора (если в ожидании обработки находится следующее прерывание). Внимание: значение вектора является смещением; таким образом, его значение находится в инкременте до 2 (бит 0 сброшен в 0). Когда нет прерываний, ожидающих обработки, то значение вектора становится равным 00h (см. таблицу 9-2). Как показано, вектор прерывания делится на два поля: I[2:0] и G[3:0]. Поле I задает источник прерывания в пределах группы (на базисе первым-случилось-первым-обработано). В поле G, которое задает номер группы, группа G0 имеет самый низкий приоритет, а группа G15 самый высокий приоритет.

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

№ битаИмяRESETОписание бит
0EX00

Это поле задает источник прерывания в указанной группе. См. таблицу 9?2. Бит 0 всегда равен нулю; таким образом, значение вектора является смещением на 2.

Это поле задает группу прерывания. I[2:0] и G[3:0] комбинируют для получения действительного вектора прерывания.

Таблица 9-2. Значения вектора прерывания

№ битаИмяRESETОписание бит
00

9.1.4. Логическая схема соединения прерываний (внутренние/внешние)

На рис. 9-1 показаны логические соединения источников прерывания и их взаимосвязь с INT0. Кодер приоритета генерирует 8-битный вектор, соответствующий 64 источникам прерывания (из них используются не все). Приоритеты прерываний при этом заданы фиксировано. Вектор 0x88 имеет самый высокий приоритет, а вектор 0x12 самый низкий приоритет.

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

Рис. 9-1. Внутренние прерывания

[10. Порт I2C]

[11. Последовательность загрузки TUSB3410]

Код загрузки (бутлоадер, bootcode) является просто программой, которая размещена в 10 килобайтах boot ROM на кристалле TUSB3410. Эта программа разработана для загрузки приложения firmware либо из внешней памяти I2C (обычно это микросхема EEPROM), либо с хоста USB под управлением драйвера устройства хоста. После того, как TUSB3410 завершит загрузку, bootcode отдает управление потоком выполнения в загруженное приложение firmware.

В этой секции подробно описано, как bootcode инициализирует устройство TUSB3410. Дополнительно перечислены как справочные данные дескриптор USB по умолчанию, формат заголовка устройства I2C, формат загрузки драйвера хоста USB и поддерживаемые встроенные запросы USB, специфичные для вендора. Пользователи должны тщательно следовать соответствующему формату интерфейса с кодом загрузки. Ошибка в формате может привести к непредсказуемым результатам.

Исходный код бутлоадера также предоставлен в документации по программированию.

11.2. Алгоритм программирования кода загрузки

После сброса при включении питания код загрузки инициализирует регистры интерфейса I2C и USB наряду со значениями внутренних переменных. Затем код загрузки проверяет наличие подключенной по I2C микросхемы памяти EEPROM, и ищет в этой памяти допустимую сигнатуру. Если внешняя память подключена к I2C и в ней записана правильная сигнатура, код загрузки продолжает поиск блоки дескрипторов и обрабатывает их, если контрольная сумма совпадает. Если найдено приложение firmware, то код загрузки загружает его в RAM и передает поток управления в этот загруженный код. Иначе код загрузки подключается к USB и ждет от драйвера хоста загрузки приложения firmware. Как только загрузка firmware завершена, код загрузки также передает поток выполнения в загруженное firmware.

Далее описан пошаговый процесс работы кода загрузки.

• Проверка, находится ли код загрузки в режиме приложения. Это режим, в который происходит вход после загрузки кода приложения через микросхему I2C или через USB. Если код загрузки находится в режиме приложения, то код загрузки передает управление приложению firmware. Иначе код загрузки продолжает выполняться.

• Инициализация всех установок по умолчанию.
— Вызов подпрограммы CopyDefaultSettings(). Установка скорости I2C на 400 кГц.
— Вызов подпрограммы UsbDataInitialization(). Установка bFUNADR = 0, отключение от USB (bUSBCTL = 0x00), обработка события USB reset, копирование в RAM предопределенных дескрипторов устройства, конфигурации, строк. Запрет всех конечных точек и разрешение прерываний USB (SETUP, RSTR, SUSR и RESR).

• Если найдена допустимая сигнатура, то из I2C EEPROM загружаются кастомизированные дескрипторы устройства, конфигурации и строк.
— Выполняется обработка каждого блока дескриптора из I2C, пока не будет найден конец заголовка. Если блок дескриптора содержит дескрипторы устройства, конфигурации или строки, то код загрузки перезаписывает ими дескрипторы по умолчанию. Если блок дескриптора содержит бинарный код firmware, то код загрузки устанавливает указатель заголовка на начала бинарного кода firmware в I2C EEPROM. Если блок дескриптора в конце заголовка, то код загрузки останавливает поиск.

• Разрешение глобальных прерываний и прерываний USB, и установка бита соединения в 1.
— Глобальные прерывания разрешаются установкой бита 7 (EA) в регистре SIE (см. секцию 9.1.1) на 1.
— Разрешение всех внутренних прерываний периферии путем установки бита EX0 в регистре SIE на 1.
— Подключение к USB установкой бита 7 (CONT) в регистре USBCNTL (см. секцию 5.4) на 1.

• Ожидание любых событий прерывания, пока не поступит пакет настройки (setup packet) Get DEVICE DESCRIPTOR.
— Прерывание приостановки (Suspend interrupt). устанавливается бит ожидания (idle) в регистре PCON MCU, и происходит вход в режим приостановки. Событие USB reset выводит микроконтроллер из режима сна.
— Прерывание возобновления (Resume interrupt). Код загрузки пробуждается и ожидает новых запросов USB.
— Прерывание сброса (Reset interrupt). Вызов подпрограммы UsbReset().
— Прерывание настройки (Setup interrupt). Код загрузки обрабатывает этот запрос.
— Запрос перезагрузки USB (USB reboot request). Происходит отключение от USB очисткой бита 7 (CONT) в регистре USBCTL и рестарт по адресу 0x0000.

• Загрузка firmware из I2C EEPROM
— Запрет глобальных прерываний очисткой бита 7 (EA) в регистре SIE.
— Загрузка firmware в пространство XDATA, если код доступен в I2C EEPROM.

• Загрузка firmware из USB.
— Если не найдено firmware в I2C EEPROM, то хост USB загружает firmware через конечную точку output 1.
— В первом пакете данных, поступившим в output endpoint 1 драйвер USB хоста добавляет 3 байта перед firmware приложения в двоичном формате. Эти три байта содержат LSB и MSB, показывающие размер, за которыми идет арифметическая контрольная сумма двоичного кода firmware.

• Передача управления в код приложения firmware.
— Обновление конфигурации USB и номера интерфейса.
— Передача управления потоком выполнения кода в приложение firmware.

• Приложение firmware
— Либо отключает устройство от USB, либо продолжает отвечать на запросы USB.

11.3. Установки по умолчанию для кода загрузки

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

11.3.1. Дескриптор устройства (Device Descriptor)

Дескриптор устройства предоставляет версию USB, которую поддерживает устройство, класс устройства (device class), протокол, идентификатор вендора (VID), идентификатор продукта (PID), строки описания и количество возможных конфигураций. Операционная система (Windows, MAC или Linux) читает этот дескриптор для того, чтобы принять решение о выборе драйвера для устройства, который должен использоваться для обмена с устройством.

Код загрузки использует 0x0451 (Texas Instruments) в качестве ID вендора (VID) и 0x3410 (TUSB3410) в качестве ID продукта (PID). Он также поддерживает три разных строки и одну конфигурацию. В таблице 11-1 показан дескриптор устройства.

Таблица 11-1. Дескриптор устройства

11.3.2. Дескриптор конфигурации (Configuration Descriptor)

Дескриптор конфигурации предоставляет количество интерфейсов, которое поддерживает конфигурация устройства, конфигурация системы питания, и текущее энергопотребление.

Код загрузки декларирует только один интерфейс, работающий в режиме питания от шины USB (bus-powered). Энергопотребление во время загрузки задано до 100 mA. В таблице 11-2 показан дескриптор устройства.

Таблица 11-2. Дескриптор конфигурации

D7: зарезервировано (установлено в 1)
D6: имеет собственное питание
D5: поддерживается удаленное пробуждение (remote wakeup)
D4-0: зарезервировано (сброшено в 0).

G[3:0]
(hex)
I[2:0]
(hex)
VECTOR
(hex)
Источник прерывания
0000Нет прерывания
1
1
1
1
1
0
1
2
3
4-7
10
12
14
16
18-1E
Не используется
Output endpoint-1
Output endpoint-2
Output endpoint-3
Зарезервировано
2
2
2
2
2
0
1
2
3
4-7
20
22
24
26
28-2E
Зарезервировано
Input endpoint-1
Input endpoint-2
Input endpoint-3
Зарезервировано
3
3
3
3
3
3
3
3
0
1
2
3
4
5
6
7
Принят пакет STPOW
Принят пакет SETUP
Зарезервировано
Зарезервировано
Прерывание RESR
Прерывание SU SR
Прерывание RSTR
Wakeup
4
4
4
4
4
0
1
2
3
4-7
Прерывание I2C TXE
Прерывание I2C RXF
Input endpoint-0
Output endpoint-0
Зарезервировано
5
5
5
0
1
2-7
Прерывание статуса UART
Прерывание модема UART
Зарезервировано
6
6
6
0
1
2-7
8bMaxPower10x32Это устройство потребляет ток 100 mA.

11.3.3. Дескриптор интерфейса (Interface Descriptor)

Дескриптор интерфейса предоставляет количество поддерживаемых на этом интерфейсе конечных точек, а также класс интерфейса, подкласс и протокол. код загрузки поддерживает только одну конечную точку и использует свой собственный класс. В таблице 11-3 показан дескриптор интерфейса.

Таблица 11-3. Дескриптор интерфейса

7bInterfaceProtocol10
8iInterface10Индекс строкового дескриптора, описывающего этот интерфейс.

11.3.4. Дескриптор конечной точки (Endpoint Descriptor)

Дескриптор конечной точки предоставляет тип и размер канала обмена (communication pipe), поддерживаемый этой конечной точкой. код загрузки поддерживает только одну конечную точку output размеров в 64 байта в дополнение к управляющей конечной точке control endpoint 0 (управляющая конечная точка обязательно должна присутствовать для всех устройств USB). В таблице 11-4 показан дескриптор конечной точки.

Таблица 11-3. Дескриптор конечной точки

11.3.5. Строковый дескриптор (String Descriptor)

Строковый дескриптор содержит текстовые данные в формате unicode. Он используется для того, чтобы показать имя производителя, модель продукта и серийный номер в формате, удобном для прочтения человеком. Код загрузки поддерживает 3 строки. Первая строка содержит имя производителя. Вторая строка содержит имя продукта. Третья строка содержит серийный номер. В таблице 11-5 показаны строковые дескрипторы.

Таблица 11-5. Строковый дескриптор

11.4. Формат заголовка внешнего устройства I2C

Правильный заголовок должен содержать сигнатуру продукта и один или большее количество блоков дескриптора. Блок дескриптора содержит префикс дескриптора и его содержимое. В префиксе дескриптора представлены тип данных, размер и контрольная сумма, описывающие содержимое блока дескриптора. Содержимое дескриптора несет необходимую информацию для процесса загрузки.

Подпрограмма обработки заголовка всегда считает от первого блока дескриптора, пока не будет достигнут требуемый номер блока. Заголовок читается в префиксе дескриптора с размером 4 байта. Этот префикс содержит тип блока, размер и контрольную сумму. Например, если код загрузки хочет найти позицию третьего блока дескриптора, то он читает первый префикс дескриптора, вычисляет позицию следующего дескриптора основываясь на размере блока, считанного из префикса. Затем код загрузки делает те же самые вычисления для того, чтобы найти позицию третьего блока дескриптора.

11.4.1. Сигнатура продукта (Product Signature)

Сигнатура продукта должна быть сохранена в первые 2 байта микросхемы памяти I2C. Эти 2 байта должны соответствовать номеру продукта. Порядок этих байт должен быть таким, что сначала идет LSB, и за ним идет MSB. Например, для TUSB3410 эта сигнатура 0x3410. Таким образом, первый байт должен быть 0x10, и второй байт должен быть 0x34.

Код загрузки TUSB3410 ищет первые 2 байта в устройстве памяти I2C. Если первые 2 байта не равны 0x10 и 0x34, то код загрузки прекращает обработку заголовка.

11.4.2. Блок дескриптора (Descriptor Block)

Каждый блок дескриптора содержит префикс и содержимое. Размер префикса всегда 4 байта. Он содержит тип данных, размер и контрольную сумму, по которой проверяется целостность данных. Содержимое дескриптора включает в себя информацию, указанную в префиксе. Размер может быть от 1 до 65535 байт. Следующий дескриптор находится сразу за предыдущим дескриптором. Если больше нет дескрипторов, то дополнительный нулевой байт должен показывать конец заголовка.

11.4.2.1. Префикс дескриптора (Descriptor Prefix)

Первый байт префикса дескриптора показывает тип данных. Он говорит коду загрузки, как обработать данные содержимого дескриптора. Второй и третий байты дают размер содержимого дескриптора. Второй байт LSB, третий байт MSB. Последний байт несет 8-битную арифметическую контрольную сумму содержимого дескриптора.

11.4.2.2. Содержимое дескриптора (Descriptor Content)

В содержимом дескриптора может храниться информация USB, firmware или другие типы данных. Размер содержимого дескриптора должен быть от 1 до 65535 байт.

11.5. Контрольная сумма в блоке дескриптора

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

11.6. Примеры заголовка

Заголовок может быть указан различными способами. Следующие дескрипторы показывают примеры формата заголовка и поддерживаемых блоков дескриптора.

11.6.1. Блок дескриптора, поддерживаемый кодом загрузки TUSB3410

Код загрузки TUSB3410 поддерживает следующие блоки дескриптора.

• Дескриптор устройства USB (USB Device Descriptor)
• Дескриптор конфигурации USB (USB Configuration Descriptor)
• Строковый дескриптор USB (USB String Descriptor)
• Двоичный код Firmware 1
• Автоматически выполняемый двоичный код (Autoexec Binary) Firmware 2

1. Двоичный код firmware загружается, когда код загрузки принимает от хоста первый полученный запрос дескриптора устройства (device descriptor request). Загрузка firmware либо должна продолжаться на стадии данных, либо должно произойти отключение от USB и переподключение к USB в качестве нового устройства.
2. Код загрузки загружает этот код autoexec binary firmware перед тем, как подключиться к USB. Код firmware должен подключиться к USB как только будет загружен.

11.6.2. Заголовок дескриптора USB (USB Descriptor Header)

В таблице 11-6 показаны дескрипторы устройства, конфигурации, строк для кода загрузки. Последний нулевой байт показывает конец заголовка.

Таблица 11-6. Заголовок дескрипторов USB

D7: зарезервировано (установлено в 1)
D6: устройство имеет собственное питание
D5: поддерживается удаленное пробуждение (remote wakeup)
D4..D0: зарезервировано (сброшено в 0)

Устройство потребляет 100 mA.

Размер этого дескриптора в байтах.

Номер интерфейса. Значение, основанное на нуле, показывает значение индекса в массиве конкурирующих интерфейсов.

Значение, используемое для выбора альтернативной установки для интерфейса, указанного в предыдущем поле.

Количество конечных точек, используемое этим интерфейсом (не считая конечную точку 0). Если здесь указано значение 0, то интерфейс использует только управляющий канал по умолчанию (default control pipe).

Класс интерфейса специфичен для вендора.

Нет подклассов интерфейса.

Нет протоколов для интерфейса.

Индекс строкового дескриптора, описывающего этот интерфейс.

Размер дескриптора в байтах.

Биты 3..0: номер конечной точки.
Бит 7: направление (0 OUT, 1 IN).

Биты 1..0: тип трансфера (10 Bulk, 11 Interrupt)

Максимальный размер пакета этой конечной точки, доступный для приема или передачи, который можно использовать при выборе этой конфигурации (64 байта).

Интервал опроса конечной точки для трансферов данных, указанный в миллисекундах.

Строковый дескриптор USB

11.6.3. Autoexec Binary Firmware

Если для каких-то целей приложение требует загрузить firmware до установки соединения USB, то может использоваться следующий заголовок. Код загрузки загружает firmware и передает управление в firmware напрямую, без подключения по USB. Однако по требованиям стандарта USB любое устройство USB должно подключиться к шине и ответить хосту в течение первых 100 мс. Таким образом, если время загрузки превышает 100 мс, блоки дескриптора USB заголовка скорости должны быть добавлены перед автозапуском двоичного кода приложения (autoexec binary firmware). В таблице 11-7 показан пример заголовка autoexec binary firmware.

Таблица 11-7. Autoexec Binary Firmware

СмещениеТипРазмерЗначениеОписание
0x0000Signature010x10FUNCTION_PID_L
0x0001Signature110x34FUNCTION_PID_H
0x0002Тип данных10x07Autoexec Binary Firmware
0x0003Размер данных (младший байт)10x67Код приложения, к примеру, занимает 0x4567 байт.
0x0004Размер данных (старший байт)10x45
0x0005Контрольная сумма10xNNКонтрольная сумма данных кода firmware, которые идут далее.
0x0006Program0x4567Двоичный код приложения firmware.
0x456DТип данных10x00Конец заголовка.

11.7. Формат заголовка загрузки драйвера хоста USB

Если firmware загружается через USB, то нужен драйвер хоста, который следует формату таблицы 11-8. Драйвер бутлоадера Texas Instruments генерирует подходящий формат. Таким образом, пользователи должны только предоставить двоичный образ приложения firmware для бутлоадера. Если контрольная сумма не совпала, то код загрузки отключается от USB и ждет перед переподключением к USB.

Таблица 11-8. Формат загрузки драйвера хоста

СмещениеТипРазмерЗначениеОписание
0x0000Размер firmware (младший байт)10xXXРазмер кода приложения firmware в байтах.
0x0001Размер firmware (старший байт)10xYY
0x0002Контрольная сумма10xZZКонтрольная сумма данных кода firmware, которые идут далее.
0x0003Program0xYYXXДвоичный код приложения firmware.

11.8. Встроенные запросы USB, специфичные для вендора (Vendor Specific USB Requests)

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

11.8.1. Перезагрузка (Reboot)

Команда перезагрузки принудительно запускает код загрузчика (bootcode).

bmRequestTypeUSB_REQ_TYPE_DEVICE |
USB_REQ_TYPE_VENDOR |
USB_REQ_TYPE_OUT
01000000b
bRequestBTC_REBOOT0x85
wValueнет0x0000
wIndexнет0x0000
wLengthнет0x0000
Dataнет

11.8.2. Запустить на выполнение firmware (Force Execute Firmware)

Эта команда запускает загруженный код, даже если он не был успешно загружен.

bmRequestTypeUSB_REQ_TYPE_DEVICE |
USB_REQ_TYPE_VENDOR |
USB_REQ_TYPE_OUT
01000000b
bRequestBTC_FORCE_EXECUTE_FIRMWARE0x8F
wValueнет0x0000
wIndexнет0x0000
wLengthнет0x0000
Dataнет

11.8.3. Чтение внешней памяти (External Memory Read)

Код загрузки читает и возвращает содержимое внешней памяти по указанному адресу. Наверное имеется в виду память XDATA.

bmRequestTypeUSB_REQ_TYPE_DEVICE |
USB_REQ_TYPE_VENDOR |
USB_REQ_TYPE_IN
11000000b
bRequestBTC_EXETERNAL_MEMORY_READ0x90
wValueнет0x0000
wIndexАдрес данных0xNNNN (где NNNN равно числу от 0x0000 до 0xFFFF)
wLength1 байт0x0001
DataБайт по указанному адресу0xMM

11.8.4. Запись внешней памяти (External Memory Write)

Эта команда инструктирует код загрузки записать данные во внешнюю память по указанному адресу. Наверное имеется в виду память XDATA.

bmRequestTypeUSB_REQ_TYPE_DEVICE |
USB_REQ_TYPE_VENDOR |
USB_REQ_TYPE_OUT
01000000b
bRequestBTC_EXETERNAL_MEMORY_WRITE0x91
wValueСтарший байт: 0x00
Младший байт: байт данных для записи
0x00MM
wIndexАдрес данных0xNNNN (где NNNN равно числу от 0x0000 до 0xFFFF)
wLengthнет0x0000
Dataнет

11.8.5. Чтение памяти I2C (I2C Memory Read)

Код загрузки возвращает содержимое I2C EEPROM по указанному адресу.

bmRequestTypeUSB_REQ_TYPE_DEVICE |
USB_REQ_TYPE_VENDOR |
USB_REQ_TYPE_IN
11000000b
bRequestBTC_I2C_MEMORY_READ0x92
wValueСтарший байт: номер устройства на шине I2C
Младший байт: тип памяти [1:0], бит скорости [7]
0xXXYY
wIndexАдрес данных0xNNNN (где NNNN равно числу от 0x0000 до 0xFFFF)
wLength1 байт0x0001
DataБайт по указанному адресу0xMM

11.8.6. Запись памяти I2C (I2C Memory Write)

Эта команда говорит коду загрузки записать данные по указанному адресу.

bmRequestTypeUSB_REQ_TYPE_DEVICE |
USB_REQ_TYPE_VENDOR |
USB_REQ_TYPE_OUT
01000000b
bRequestBTC_I2C_MEMORY_WRITE0x93
wValueСтарший байт: должен быть 0x00
Младший байт: байт данных для записи
0x00MM
wIndexАдрес данных0xNNNN (где NNNN равно числу от 0x0000 до 0xFFFF)
wLengthнет0x0000
Dataнет

11.8.7. Чтение содержимого внутренней памяти ROM (Internal ROM Memory Read)

Код загрузки (загрузчик, bootcode) возвращает байт по указанному адресу в области boot ROM. Это двоичный код самого загрузчика, так что он читает и возвращает сам себя.

bmRequestTypeUSB_REQ_TYPE_DEVICE |
USB_REQ_TYPE_VENDOR |
USB_REQ_TYPE_IN
11000000b
bRequestBTC_INTERNAL_ROM_MEMORY_READ0x94
wValueнет0x0000
wIndexАдрес данных0xNNNN (где NNNN равно числу от 0x0000 до 0xFFFF)
wLength1 байт0x0001
Dataбайт по указанному адресу0xMM

11.9. По каким соображениям разрабатывался код загрузки

11.9.1. Запросы USB

Для каждого запроса USB (USB request), код загрузки выполняет шаги, описанные ниже, чтобы удостовериться, что аппаратура функционирует нормально (упрощенный алгоритм обработчика прерывания на запрос USB).

11.9.1.1. Передачи в ответ на запрос USB (USB Request Transfers)

Запрос USB состоит из 3 типов передач (transfers). Это трансферы control-read-with-data-stage (управляющий запрос чтения со стадией данных), control-write-without-data-stage (управляющий запрос записи без чтения данных) и control-write-with-data-stage (управляющий запрос записи со стадией данных). В каждом трансфере стрелочки показывают прерывания, генерируемые после приема пакета настройки (setup packet), с токенами IN или OUT.

На рисунках 11-1 и 11-2 показан поток данных USB, и как аппаратура (hardware) и программное обеспечение MCU (firmware) отвечают на запросы USB. В таблицах 11-9 и 11-10 показаны ответы кода загрузки на стандартные запросы.

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

Рис. 11-1. Control Read Transfer (трансфер управляющего чтения)

Таблица 11-9. Ответ кода загрузки на Control Read Transfer

CONTROL READ Действие в коде загрузки (BOOTCODE)
Получение состояния устройства (get status of device).Возврат установок питания и удаленного пробуждения (remote wakeup).
Получение состояния интерфейса (get status of interface).Возврат 2 нулевых байт.
Получение состояния конечной точки (get status of endpoint).Возврат состояния конечной точки.
Получение дескриптора устройства (get descriptor of device).Возвращение дескриптора устройства.
Получение дескриптора конфигурации (get descriptor of configuration).Возврат дескриптора конфигурации.
Получение строкового дескриптора (get descriptor of string).Возврат строкового дескриптора.
Получение дескриптора интерфейса (get descriptor of interface).Переход в состояние stall.
Получение дескриптора конечной точки (get descriptor of endpoint).Переход в состояние stall.
Получение конфигурации (get configuration).Возвращение значения bConfiguredNumber.
Получение интерфейса (get interface).Возвращение значения bInterfaceNumber.

tusb3410 boot device что это. Смотреть фото tusb3410 boot device что это. Смотреть картинку tusb3410 boot device что это. Картинка про tusb3410 boot device что это. Фото tusb3410 boot device что это

Рис. 11-2. Control Write Transfer Without Data Stage (трансфер управляющей записи без стадии данных)

Таблица 11-10. Ответ кода загрузки на Control Write Without Data Stage

CONTROL WRITE WITHOUT DATA STAGE Действие в коде загрузки (BOOTCODE)
Очистка фичи устройства (clear feature of device).Переход в состояние stall.
Очистка фичи интерфейса (clear feature of interface).Переход в состояние stall.
Очистка фичи конечной точки (clear feature of endpoint).Очистка endpoint stall.
Установка фичи устройства (set feature of device).Переход в состояние stall.
Установка фичи интерфейса (set feature of interface).Переход в состояние stall.
Установка фичи конечной точки ( set feature of endpoint).Перевод конечной точки в состояние stall.
Установка адреса (set address).Установка адреса устройства.
Установка дескриптора (set descriptor).Переход в состояние stall.
Установка конфигурации (set configuration).Установка bConfiguredNumber.
Установка интерфейса (set interface).Установка bInterfaceNumber.
Фрейм синхронизации (sync. frame).Переход в состояние stall.

11.9.1.2. Подпрограмма обработки прерывания (Interrupt Handling Routine)

Вектор с более высоким номером имеет более высокий приоритет, чем вектор с меньшим номером. В таблице 11-11 перечислены все прерывания и их источники.

Таблица 11-11. Значения векторов прерывания и их источники

G[3:0]I[2:0]VECTOR
(Hex)
Источник прерыванияИсточник прерывания
должен быть очищен
0000Нет прерыванияНет источника прерывания
1
1
1
1
2
3
12
14
16
Output?endpoint?1
Output?endpoint?2
Output?endpoint?3
Регистр VECINT
14-718-1EЗарезервировано
2
2
2
1
2
3
22
24
26
Input?endpoint?1
Input?endpoint?2
Input?endpoint?3
Регистр VECINT
24-728-2EЗарезервировано
3
3
3
3
3
3
3
3
0
1
2
3
4
5
6
7
30
32
34
36
38
3A
3C
3E
Принят пакет STPOW
Принят пакет SETUP
Зарезервировано
Зарезервировано
Прерывание RESR
Прерывание SUSR
Прерывание RSTR
Прерывание Wakeup
Регистры USBSTA/VECINT
Регистры USBSTA/VECINT

Регистры USBSTA/VECINT
Регистры USBSTA/VECINT
Регистры USBSTA/VECINT
Регистры USBSTA/VECINT

4
4
4
4
0
1
2
3
40
42
44
46
Прерывание I2C TXE
Прерывание I2C RXF
Input?endpoint?0
Output?endpoint?0
Регистр VECINT
44-748-4EЗарезервировано
5
5
0
1
50
52
Прерывание статуса UART1
Прерывание статуса модема UART1
Регистр LSR/VECNT
52-754-5EЗарезервировано
6
6
0
1
60
62
Прерывание RXF UART1
Прерывание TXE UART1
Регистр LSR/VECNT
62-764-6EЗарезервировано
70-770-7EЗарезервировано
8
8
8
0
1
2
80
82
84
Прерывание DMA1
Зарезервировано
Прерывание DMA3
Регистр DMACSR/VECINT

Регистр DMACSR/VECINT

83-786-8EЗарезервировано
9-150-790-FEЗарезервировано

11.9.2. Аппаратный сброс, инициируемый программно

Эта возможность может использоваться при обновлении firmware. Как только обновление завершено, приложение firmware отключается от USB на время как минимум 200 мс, чтобы обеспечить выгрузку драйвера операционной системой. Затем firmware разрешает работу сторожевого таймера (watchdog timer, этот таймер по умолчанию разрешен после сброса при включении питания), и входит в бесконечный цикл без сброса сторожевого таймера. Как только истечет таймаут сторожевого таймера (128 мс), он сбросит TUSB3410 так же, как это произошло быт при включении питания. Код загрузки запускается и выполняет последовательность действий при включении питания и загрузке.

11.10. Файлы

Исходный код TUSB3410 Bootcode (SLLC139.zip) можно скачать со страницы описания TUSB3410 на сайте компании Texas Instruments. Просмотрите ссылку Related Software. В скачанном zip-архиве имеются следующие файлы.

• Types.h
• USB.h
• TUSB3410.h
• Bootcode.h
• Watchdog.h
• Bootcode.c
• Bootlsr.c
• BootUSB.c
• Header.h
• Header.c
• I2c.h
• I2c.c

[12. Электрические параметры и условия работы]

12.1. Предельно допустимые эксплуатационные параметры (Absolute Maximum Ratings)

Превышение указанных здесь значений может полностью повредить микросхему. Эти параметры являются для чипа стрессовыми, и не подразумевается реальная эксплуатация микросхемы с этими параметрами или с параметрами, не соответствующими разделу «recommended operating conditions» (рекомендованные условия работы). Кроме того, работа в условиях предельно допустимых параметров может повлиять на надежность работы микросхемы.

12.3. Электрические характеристики

[13. Указания по применению (Application Notes)]

[Упаковка и размеры корпуса]

[Словарик]

Control endpoint конечная точка, которая предназначена для управления и получения данных о состоянии. Эта конечная точка имеется во всех устройствах USB, всегда имеет номер 0, и активно участвует в процедуре энумерации устройства USB.

DMA direct memory access, прямой доступ к памяти без участия программной обработки микроконтроллера.

DMAC DMA controller, контроллер DMA.

endpoint конечная точка, которая физически представляет из себя буфер памяти определенного размера. Обычно размер конечной точки 8, 16, 32, 64, 128 или 256 байт.

CPU узел ядра MCU 8052. Фактически то же самое, что и MCU.

IN, input в контексте конечных точек и транзакций обозначает направление передачи от устройства USB к хосту.

Input endpoint конечная точка, которая предназначена для данных пакета IN, в этом случае байты передаются от устройства USB к хосту.

MCU Microcontroller Unit — микроконтроллер (микросхема, содержащая процессор, память и периферийные устройства). Применительно к TUSB3410 имеется в виду встроенное ядро микроконтроллера 8052.

NAK отрицательный ответ на запрос хоста IN или OUT. Означает для хоста, что данные пока не могут быть переданы.

OEM Original equipment manufacturer — аббревиатура для обозначения чего-либо, имеющего отношение к производству продукта OEM-способом, при котором этот продукт, продающийся розничным покупателям под оригинальным брендом, получается путём сборки типовых комплектующих и/или их кастомизацией. Компанию, которая занимается сборкой конечного продукта, называют OEM-производителем, а компанию, которая поставляет типовые комплектующие, — OEM-поставщиком. OEM – компонентами называется продукт, использующийся как составная часть завершенного продуктового решения.

OUT, output в контексте конечных точек и транзакций обозначает направление передачи от хоста к устройству USB.

Output endpoint конечная точка, которая предназначена для данных пакета OUT, в этом случае байты передаются от хоста к устройству USB.

pullup, pull-up, pull up верхний нагрузочный резистор, подключенный к плюсу источника питания или к выходу буфера состоянием лог. 1. Если pullup относится к каналу USB чипа TUSB3410, то имеется в виду нагрузочный резистор 1.5 кОм, подключенный к сигналу D+. В другом контексте имеется в виду внутренний нагрузочный резистор, который имеется на каждом выводе порта P3, и который может быть подключен или отключен программно.

stall по отношению к USB означает событие ошибки, которое требует вмешательства хоста.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *