Главная arrow Программирование arrow MSC51 arrow TUSB3410 Saturday, March 25 2017  
ГлавнаяКонтактыАдминистрированиеПрограммированиеСсылки
UK-flag-ico.png English Version
GERMAN-flag-ico.png Die deutsche Version
map.gif карта сайта
нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Поделиться:

TUSB3410 Версия для печати
Написал microsin   
17.12.2006

1. Микросхема предназначена для построения high-скоростного периферийного USB-устройства (USB 2.0). В основу положен MSC51-совместимый (точнее, MCS52) микроконтроллер. От традиционной периферии MCS51 остались 4 ножки порта P3 (P3.0, P3.1, P3.3 и P3.4), C/T0 и C/T1, 256 ячеек ОЗУ IDATA. Добавились USB-контроллер, 10K CODE ROM (в ней записано заводское ПО, позволяющее загрузить программу для микроконтроллера как через аппаратный I2C, так и - с помощью специального драйвера - от USB-хоста), 16K CODE RAM (куда грузится управляющая программа для микроконтроллера), аппаратный порт I2C(предназначенный для загрузки управляющей программы микроконтроллера). Кварцевый резонатор обязательно должен быть 12 МГц (тактовая частота микроконтроллера при этом получается 24 МГц). TUSB3410 разработана для питания от шины USB, причем питается от напряжение питания 3.3 в - нужно применить в качестве стабилизатора питания микросхему, например, LP2980IM5-3.3 или TPS76933. Подробную справочную информацию по TUSB3410 можно найти на сайте Texas Instruments - ti.com.

2. TUSB3410 не имеет отладочных кристаллов, поддерживающих полноскоростную пошаговую отладку с применением точек останова. Отлаживают программу с помощью вывода через RS232 значений переменных и регистров, что, конечно, требует модификации программы (пример можно найти на сайте ti.com - TUSB2136, TUSB3210, TUSB3410, TUSB5052 Firmware Debugging Guide). Второй способ отладки, с применением IDE Keil (Keil’s 8051/8052 development tools), позволяет применить пошаговую отладку, однако и здесь значительные ограничения - в случае установки breakpoint происходит замедление выполнения примерно в 100 раз, и тоже задействован стандартный для MCS51-архитектуры RS232.

3. Для отладки программ удобен USB-драйвер - TI AppLoader Driver, который можно свободно скачать с сайта ti.com. После его установки можно загружать программу в кристалл TUSB3410 через шину USB, для чего достаточно положить исполняемый код (в бинарном формате) в файл %windir%\system32\drivers\TUSB3410.BIN и затем переподключить устройство с TUSB3410 к шине компьютера. При этом микросхема EEPROM должна быть отключена от I2C, иначе загрузка микроконтроллера произойдет по I2C, а не через USB (для этого можно просто разорвать провод SCL, или заземлить ножку SCL или SDA). Имя загружаемого файла прописано в реестре в разделе HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Enum \ USB \ Vid_0451&Pid_3410 \ TUSB3410________ \Device Parameters, параметр FWFileName (тип REG_SZ, значение по умолчанию TUSB3410.BIN). Таким образом, отладка по методике "заработало/не заработало" состоит из шагов:
- компилируем бинарный файл
- переименовываем (или копируем) его в %windir%\system32\drivers\TUSB3410.BIN
- отключаем/подключаем устройство

4. Код firmware, записываемый в I2C EEPROM, имеет специальный формат (подробно описанный в доке по TUSB3410). Этот формат придуман для того, чтобы можно было в EEPROM разместить USB-дескрипторы вместе с программой микроконтроллера. Поскольку формат хоть и довольно прост, но требует для создания прошивки подсчета контрольных сумм для блоков дескрипторов и программного кода, Texas Instruments решила облегчить жизнь разработчикам и выпустила для компоновки кода EEPROM специальную утилиту (можно свободно скачать с ti.com) - Header.exe. Утилита представляет из себя консольную программу, генерирующую файл прошивки для I2C EEPROM. На входе у программы файл конфигурации и исполняемый бинарный код микроконтроллера, а на выходе - бинарный файл прошивки. Пример командной строки (берется конфигурационный файл text.cfg и генерируется прошивка EEPROM test.bin):
header.exe test.cfg test.bin -v
   Содержание test.cfg (руководство по составлению конфигурационного файла вместе с примерами скачиваются
   вместе с утилитой header.exe):
[НАЧАЛО test.cfg]
;------------------------------------------------------------------------------
;
; Шаг 1 - Создаем device signature
;
DEVICE_NAME = TUSB3410                 ; USB to Single UART device
;------------------------------------------------------------------------------
;
; Шаг 2 - Создаем descriptor blocks
;
DESCRIPTOR_BLOCK USB_DEVICE_DESCRIPTOR
0x12,              ; размер этого дескриптора в байтах
0x01,              ; тип device descriptor
0x10, 0x01         ; USB 1.10
0xff,              ; device class is vendor-specific
0x00               ; нет подклассов
0x00               ; протоколы не используются
0x08               ; максимальный размер пакета для конечной точки 0
0x9B, 0x0B         ; vendor ID: 0x0B9B (сюда поместите свой код производителя)
0x12, 0x40         ; product ID: 0x4012 (сюда поместите свой код продукта)
0x01, 0x01         ; номер релиза устройства (device release number) = 1.01
                   ;  (поменяйте по вкусу)
0x01,              ; индекс строкового дескриптора, описывающего производителя
0x02,              ; индекс строкового дескриптора, описывающего продукт
0x00,              ; индекс строкового дескриптора, описывающего серийный номер
                   ;  устройства
0x01,              ; количество возможных кофигураций
;
;
DESCRIPTOR_BLOCK USB_STRING_DESCRIPTOR
;
; string descriptors
;
;
; string index 0, language ID
;
0x04,                              ; 4 bytes
0x03,                              ; DESC_TYPE_STRING
0x09,0x04,                         ; english 0x0409
;
;------------------------------------------------------
; string index 1, производитель
; Пробелы вставляются с помощью символа '@'
;------------------------------------------------------
;
0x30,                              ; 48 bytes
0x03,                              ; DESC_TYPE_STRING
'I',0x00,'@',0x00,'a',0x00,'m',0x00,
'@',0x00,'b',0x00,'e',0x00,'s',0x00,
't',0x00,'@',0x00,'p',0x00,'r',0x00,
'o',0x00,'g',0x00,'r',0x00,'a',0x00,
'm',0x00,'m',0x00,'e',0x00,'r',0x00,
'!',0x00,'!',0x00,'!',0x00,
;
; = "I am best programmer!!!"
;
;------------------------------------------------------
; string index 2, продукт
;------------------------------------------------------
;
0x2A,                              ; 42 bytes
0x03,                              ; DESC_TYPE_STRING
'M',0x00,'y',0x00,'@',0x00,'f',0x00,
'i',0x00,'r',0x00,'s',0x00,'t',0x00,
'@',0x00,'U',0x00,'S',0x00,'B',0x00,
'@',0x00,'D',0x00,'e',0x00,'v',0x00,
'i',0x00,'c',0x00,'e',0x00,'!',0x00,
;
; = "My first USB Device!"
;
;------------------------------------------------------
; string index 3, серийный номер. Нули вроде как означают, что серийный номер пустой
;------------------------------------------------------
;
0x00,
0x00,
;------------------------------------------------------------------------------
;
;
DESCRIPTOR_BLOCK AUTOEXEC_BINARY_FIRMWARE
;
LOAD_BINARY_FILE = code.bin
;LOAD_HEX_FILE = ??????; Используйте эту строку, если firmware в hex формате
;
;------------------------------------------------------------------------------
; Шаг 3 - Завершаем заголовок
;
DESCRIPTOR_BLOCK END
[КОНЕЦ test.cfg]

В этом примере исполняемый код для микроконтроллера утилита header.exe берет из файла code.bin.

[Ссылки]

1. Примеры использования чипа TUSB3410, апноуты - ti.com-examples-appnotes.zip.

2. Переходник USB-RS232 на чипе TUSB3410.

Последнее обновление ( 14.03.2010 )
 

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

:D:lol::-);-)8):-|:-*:oops::sad::cry::o:-?:-x:eek::zzz:P:roll::sigh:

Защитный код
Обновить

< Пред.   След. >

Top of Page
 
microsin © 2017