• I






      
           

Научно-популярный образовательный ресурс для юных и начинающих радиолюбителей - Popular science educational resource for young and novice hams

Основы электричества, учебные материалы и опыт профессионалов - Basics of electricity, educational materials and professional experience

КОНКУРС
language
 
Поиск junradio

Радиодетали
ОК
Сервисы

Stock Images
Покупка - продажа
Фото и изображений


 
Выгодный обмен
электронных валют

Друзья JR



JUNIOR RADIO





USB для микроконтроллеров Atmel ATtiny. Часть2



Статьи публикуются по мере поступления. Для упорядоченного тематического
поиска воспользуйтесь блоком  "Карта сайта"







Для безопасности я использовал последовательные резисторы в выходных сигналах. Устройство Atmel питается линиями данных D1-D3, через резисторы 220 Ом. D0 используется для управления светодиодом. Вот версия схемы ASCII:

 

DB25 папа ATtiny2313

 ---------- ----------

 18 GND ---------------------- + ---- 10 GND

  2 D0 ---- 330 ---- LED ---- +

  3 D1 ---- 220 --- +

  4 D2 ---- 220 --- + -------------- 20 VCC

  5 D3 ---- 220 --- +

  7 D5 ---- 1K ------------------- 1 / RESET

  8 D6 ---- 680 ------------------ 19 SCK

  9 D7 ---- 1K ------------------- 17 MOSI

 10 ACK --------------------------- 18 MISO

 

Схема USBtiny может питаться через диод на контакте 14 разъема DB-25, чтобы обеспечить перепрограммирование внутрисистемной системы ATtiny2313. Для этого требуется переходный кабель между другим программным обеспечением SPI и разъемом DB-25 (подробнее см. README). Здесь представлены изображения преобразователя, подключенного к программисту параллельного порта, и крупный план схемы, встроенной в корпус DB25 (нажмите, чтобы увеличить):

 

 

крупный план

 

Бит-биение сигналов SPI через USB оказалось очень медленным. Чтобы получить разумные скорости программирования, я переместил алгоритм SPI в AVR. Это означает, что вы можете отправить 32-битную команду SPI в один пакет USB. Кроме того, вы можете читать или записывать до 255 байт от / до вспышки или EEPROM в одной передаче управления. В дистрибутив входит патч для avrdude-5.4, который добавляет поддержку для управления этим конвертером SPI. Имя программиста - «usbtiny». Вы можете использовать параметр -B или команду sck для указания минимального периода SCK в микросекундах (диапазон: 1..250, по умолчанию: 10). Встроенная поддержка USBtiny была добавлена ​​в avrdude версии 5.5. Второе приложение USBtiny - это приемник для инфракрасных пультов дистанционного управления, который можно использовать с пакетом LIRC . Прошивка хранит тайм-аут метки / пространства из ИК-декодера TSOP1738 в буфере, который опрошен драйвером устройства LIRC. В качестве визуальной обратной связи светодиод мигает при получении сигнала. В качестве дополнительной (дополнительной) функции к PORTB подключается ЖК-дисплей 2x16. Вы можете управлять дисплеем через шину USB. Ниже приведена схема схемы. Выпадающий резистор на PB3 предотвращает зависание в коде инициализации ЖК-дисплея, когда ЖК-дисплей не подключен к PORTB. Вы можете отключить код ЖКИ, установив макрос LCD_PRESENT в main.c на 0.

 

Схематический

 

Я принял протокол «IgorPlug-USB», так что существующий драйвер устройства LIRC «igorplugusb» можно было использовать без изменений. Тем не менее, включены патчи для lirc-0.8.0 и lirc-0.8.2, которые повышают надежность.

 

инфракрасный

 

В релиз входит третье приложение под названием «usbtinyisp». Это модифицированная версия приложения конвертера SPI, которое было адаптировано для использования в программном обеспечении USBtinyISP AVR . Код работает как для устройств v1.0, так и для v2.0. В подкаталоге «шаблон» содержится минимальное приложение шаблона, которое может использоваться в качестве отправной точки для новых приложений USBtiny. Программное обеспечение было разработано в системе Linux. В дополнение к стандартным инструментам, таким как GNU make, вам нужны версии gcc, binutils и glibc для создания кода: в системе Debian / Ubuntu вы можете использовать следующие пакеты:

 

· НКА-АРН

·Binutils-АРН

·АРН-Libc

 

Чтобы загрузить код в AVR, я использую avrdude с программатором параллельного порта. Сначала я использовал gcc-3.4.3 с опцией -Os, которая генерирует разумный компактный код. К сожалению, более новые версии, такие как gcc-4.1.0, сгенерировали на 10% больше кода, и в результате код приложения больше не вписывался в 2K. Чтобы он соответствовал, мне пришлось удалить необязательные строки поставщика и устройства, установив макросы USBTINY_VENDOR_NAME и USBTINY_DEVICE_NAME. К счастью, генерация кода улучшилась в более поздних версиях, таких как gcc-4.3.4. Схемы были созданы с помощью gschem, из пакета geda-gschem. Преобразование в Postscript выполняется со сценарием, который вызывает gschem неинтерактивно. В дистрибутив входит модуль Python usbtiny.py, который определяет класс USBtiny, который можно использовать для связи с прошивкой USBtiny. Этот класс используется тестовыми скриптами. Модуль usbtiny.py использует оболочку Python вокруг libusb, которая создается Swig . С помощью этого модуля вы можете управлять устройством USBtiny только с несколькими строками кода Python. Программное обеспечение USBtiny лицензируется в соответствии с GNU General Public License, опубликованным Free Software Foundation, либо версией 2 лицензии, либо (по вашему выбору) любой более поздней версии.

 

Материал к статье

usbtiny-1.7.tar.gz

 

 







Просмотров: 1078 | Добавил: Chinas | Рейтинг: 0.0/0








Необходимо добавить материалы...
Результат опроса Результаты Все опросы нашего сайта Архив опросов
Всего голосовало: 372



          

Радио для всех© 2024