Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Клавиатуры, мышки, джойстики



 

В этой категории представлены проекты, которые имитируют стандартные устройства ввода для компьютера. В связи с этим, для работы подобных проектов со стороны компьютера не требуется ни каких драйверов и специальных программ, так как все эти устройства автоматически распознаются операционной системой и любыми программами, работающими с данным конкретным видом устройства ввода. Среди проектов масса устройств, позволяющих подключать к компьютеру джойстики от различных игровых приставок, что позволяет комфортно работать с эмулятором приставки на компьютере. Несколько вариантов уменьшенной клавиатуры (например клавиатура из 17 клавиш или клавиатура всего из семи клавиш, каждая из которых имеет несколько степеней свободы). Эти экзотические клавиатуры предназначены для специальных применений (скоростного набора, применения в полевых условиях и т.п.). Интересный проект подключения к современному компьютеру старинной клавиатуры Commodore 64. Проект был разработан для имитации действующего старинного компьютера для оформления съемочной площадки исторического фильма. Несколько вариантов управления курсором мыши и кнопками клавиатуры при помощи пульта ДУ. Оригинальная магнитная «Мышь» на датчиках холла и многое другое.

 

 

Интерфейсы и адаптеры

 

В этом разделе перечислены примеры адаптеров, преобразовывающих стандарт USB в другие стандартные виды интерфейсов. Приводятся следующие примеры:

Преобразователь USB – uDMX. Стандарт uDMX является расширением стандарта DMX и отличается от последнего наличием питания. Канал DMX предназначен для управления световыми устройствами и различными сценическими эффектами.

Миниатюрный адаптер I2C шины. Для примера используется совместно с датчиком температуры DS1621.

USB – LPT адаптер.

Универсальный ИК-порт с подключением по USB.

 

Передача данных

 

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

 

Управление отдельными светодиодами и дисплеями

 

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

 

Загрузчики и программаторы

 

В этом разделе приведены примеры устройств, предназначенных для программирования (прошивки) других микроконтроллеров AVR. Приведено несколько примеров программаторов. В частности, программатор, совместимый с STK500 и суперминиатюрный программатор, который использует идею создать USB-AVR канал на самой программируемой микросхеме. При этом схема программатора состоит лишь из нескольких резисторов, пары конденсаторов и кварцевого резонатора.

 

 

Управление различными нагрузками (моторами и т.п.)

 

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

 

Разное

 

Сюда вошло все, что не подходит для остальных категорий. Здесь вы можете найти описание управляемого от компьютера устройства звуковых эффектов, внешнего устройства для хранения ваших сетевых паролей, которое можно отключить от компьютера и унести с собой, устройство ввода MIDI информации, устройство чтения дискет устаревшего формата C64 Commodore и др.

 

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

 

Последнее обновление ( 10.06.2008 г. )

 

Описание проекта USB-AVR

Автор Белов А. В.

 

06.06.2008 г.

Проект USB-AVR - это простой и легкий в повторении способ, решающий проблему подключения микроконтроллера к компьютеру. Полное описание данного проекта (на английском языке) вы можете найти на официальном сайте фирмы «Objective development». Основная изюминка предложенного решения: программная реализация USB интерфейса. В качестве сигнальных шин USB канала выступают две любые линиии порта ввода-вывода микроконтроллера с минимальным количеством внешних элементов.

 

Изюминкой проекта является то, что он может работать даже от внутреннего RC генератора, правда лишь в том случае, если используемая микросхема имеет режим повышенной частоты генерации внутреннего генератора. Это такие микроконтроллеры как ATTiny45 или ATTiny26. В этом случае вам даже не потребуется внешний кварцевый резонатор.

 

Рис. 1. Типовая схема AVR-USB

 

На рисунке 1 показана типовая схема, реализующая канал AVR- USB. Как видно из схемы, микропроцессор получает питание от компьютера через USB разъем (контакт 1). Диоды VD1 и VD2 работают, как низковольтные стабилизаторы напряжения и позволяют снизить напряжение питания микроконтроллера до величины 3, 3 В. Это необходимо для того, что бы снизить уровни сигналов до стандарта USB. Использование двух диодов позволяет удешевить схему, но сказывается на качестве ее работы. Если вы желаете повысить качество и стабильность работы схемы диоды можно заменить микросхемой стабилизатором напряжения на 3, 3 В. Например таким, как LE33. Пониженное напряжение питания затрудняет подключение к схеме дополнительных микросхем. Если вы желаете питать микроконтроллер от 5В, вы можете поставить стабилитрон на 3, 6В на каждую линию данных D+ и D-, как это показано на рисунке 2.

 

 

Рис.2. Схема с питанием от +5В

 

Преимущества предложенного решения

Канал полностью совместим с USB 1.1 за исключением обработки ошибок передачи данных и некоторого несоответствия электрических характеристик.

Имеется множество конкретных легко доступных примеров разработок с использованием этого продукта для самых популярных операционных систем: Linux, Mac OS и Windows.

Система без труда может эмулировать любой тип конечных точек USB: одна конечная точка управления, две конечные точки направления IN и до семи конечных точек направления OUT. (Большее количество точек не разрешается стандартом низкоскоростного USB).

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

Имеется возможность самостоятельной установки кода устройства и кода производителя.

Работает на любом микроконтроллере AVR, имеющем не менее 2 Кб флэш-памяти, не менее 128 байт ОЗУ, и тактовую частоту не менее 12 МГц.

Не использует UART, таймер, режим захвата, и другие специальные режимы и аппаратные возможности (за исключением прерывания по переднему фронту).

Допускает работу на частотах тактового генератора больших, чем 12 МГц. Имеются варианты для внешнего кварцевого резонатора с частотой 15 МГц, 16 МГц, 20 МГц и для внутреннего RC генератора с тактовой частотой 16, 5 МГц.

Вы получаете тексты всех программ, которые написаны на языке СИ и снабжены подробными комментариями.

Оттранслированные программы проекта занимают от 1200 до 1400 байт в программной памяти.

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

 

Загрузить полный пакет программ AVR- USB с частично русифицированными файлами комментариев вы можете здесь.

 

 

«Что позволено Юпитеру…», или почему одни микроконтроллеры надежнее других

 

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

 

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

 

Эксперимент

 

В 2006 году в нашу фирму обратился Михаил Черепанов — разработчик компании «Свей» («Свей» — российский производитель промышленной электроники). Вот текст его письма:

«История началась с того, что от заказчиков поступили жалобы на то, что наши цифровые преобразователи (построенные на MSP430F148IPM) периодически «зависают» и не отвечают на запросы до тех пор, пока не будут перезагружены путем снятия и повторной подачи напряжения питания.

Были предположения, что «зависание» происходит из-за наличия импульсных помех (на электрических подстанциях это обычное явление). Чтобы воспроизвести ситуацию, я изготовил генератор помех (рис. 1).

 

 

 

В результате испытаний наши преобразователи были доработаны следующим образом:

1) Вместо кварцевого резонатора установлен кварцевый генератор.

2) Установлен внешний сторожевой таймер, так как в MSP430F148 он работает от того же кварца и так же оказывается неэффективным.

После чего сбои больше не происходили.

Позже наша продукция успешно прошла испытания (для изделий, подлежащих обязательному декларированию соответствия) на ЭМС по:

ГОСТ Р 51317.4.2.

ГОСТ Р 51317.4.3.

ГОСТ Р 51317.4.4.

ГОСТ Р 51317.4.11.

 

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

1) Испытания генератором помех.

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

3) Документация должна быть «дружественная», с примерами конфигурирования периферии.

4) Наличие доступных отладочных средств (в пределах $200).

5) Если требуется USB, Ethernet, TCP, то должна быть соответствующая готовая библиотека, а лучше RTOS с поддержкой оных».

 

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

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

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

Мы предоставили два оценочных комплекта:

Low Pin Count – Do it!, построенный на основе 8-разрядного UPD78F9222;

EB-V850ES/HG2-EE, построенный на основе 32-разрядного UPD70F3707.

 

Искровой разряд производился в непосредственной близости с оценочными комплектами.

Схематично процесс тестирования изображен на рис. 2.

 

 

 

Оба оценочных комплекта работали без сбоев, даже когда искра приближалась на расстояние порядка 5 см. Заказчик сообщил, что подобным образом он проверил более 10 различных оценочных комплектов. Мы попросили его предоставить результаты этих экспериментов. Далее они будут приведены без комментариев, «как есть».

Через некоторое время заказчик провел еще один, можно сказать, более «варварский» эксперимент. Однако его результаты также интересны. Он рукой касался выводов работающего кварцевого генератора. В таких условиях из всех перечисленных микроконтроллеров, тактируемых от внешнего генератора, работал только один — uPD70F3707 (NEC). Однако, справедливости ради, следует заметить, что при прикосновении демонстрационная программа заметно замедляла скорость своего выполнения. Причина такого «поведения» микроконтроллера uPD70F3707 будет объяснена далее.

Давайте попытаемся понять, благодаря чему семейство V850ES/HG2 (к которому принадлежит микроконтроллер uPD70F3707) оказалось столь «живучим». Если внимательно рассмотреть некоторые периферийные узлы, то все постепенно становится на свои места.

 

Сторожевой таймер и тактовые генераторы

 

Проблемы, с которыми столкнулся наш клиент, были вызваны тем, что при воздействии сильных электромагнитных помех возможен срыв генерации кварцевого генератора, а так как в микроконтроллере MSP430F148 сторожевой таймер тактируется от того же самого опорного генератора, то при остановленном опорном генераторе сторожевой таймер уже не может «разбудить» микроконтроллер [1]. Для того чтобы предотвратить эту ситуацию, во всех микроконтроллерах NEC сторожевой таймер тактируется от отдельного внутреннего кольцевого генератора. Кольцевой генератор представляет собой нечетное число инверторов, соединенных в кольцо так, что выход одного инвертора идет на вход следующего. Срыв генерации кольцевого генератора практически невозможен. Следует отметить, что во всех микроконтроллерах семейства V850 от NEC запуск процессорного ядра происходит от дополнительного встроенного кольцевого генератора, и только убедившись в том, что кварцевый генератор запустился, вы можете переключить тактирование на «кварц».

 

Монитор тактовой частоты (Clock Monitor)

 

Монитор тактовой частоты следит за наличием генерации тактового генератора, использующего внешний кварцевый резонатор. В случае если генерация пропадает, генерируется внутренний сигнал сброса RESCLM и устанавливается флаг RESF.CLMRF [2]. После выхода из режима сброса микроконтроллер анализирует этот флаг и «понимает», что возникли проблемы с внешним тактовым генератором, после чего ядро запускается от одного из внутренних тактовых генераторов. В зависимости от семейства может быть 1 или 2 генератора, однако их частота, как правило, всегда меньше, чем частота генератора, использующего внешний резонатор.

Именно поэтому после прикосновения пальцем микроконтроллер uPD70F3707 продолжал работать, но уже значительно «медленнее», что и констатировал Михаил Черепанов из компании «Свей».

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

Кроме семейства V850ES/Hx2, этот узел имеют также семейства, специально разработанные для приложений управления электродвигателями (V850E/IA3, IA4, IF3, IG3; V850ES/IK1, IE2), для автомобильных приборных панелей (V850E/Dx3), для бортовой электроники с CAN-интерфейсом (V850ES/Sx2, Sx2-H, Sx3, Fx2, Fx3, Fx3-L), а также V850ES/Kx1+, Jx2, Jx3, Jx3-L, Hx2 и Hx3.

Следует отметить, что в некоторых других микроконтроллерах (как правило, в 8- и 16-разрядных) инженеры NEC вместо монитора тактовой частоты используют оконный сторожевой таймер. Он имеет совершенно иной принцип работы, однако это периферийное устройство можно использовать с той же целью, что и монитор тактовой частоты, то есть он может отслеживать факт исчезновения тактовых импульсов «внешнего» опорного генератора и позволяет микроконтроллеру переключиться на внутренний генератор.

 

Разделение шин питания

 

Все 32-разрядные микроконтроллеры NEC, упоминавшиеся ранее, и многие 8-разрядные имеют раздельные шины питания для внутренних периферийных устройств, процессорного ядра и цепей портов ввода/вывода. На рис. 3, 4 схематично показано такое разделение.

 

 

 

При правильной развязке шины питания ядра и портов ввода/вывода помехи, наведенные на портах ввода/вывода, не попадают в цепи питания периферийных устройств и ядра и повышают электромагнитную устойчивость (EMS).

Так, например, в оба списка (табл. 1, 2) попали микроконтроллеры с ядром АРМ.

 

Таблица 1. Оценочные комплекты при проверке работали без сбоев

 

Название Описание
uPD78F9222 оценочный комплект Low Pin Count – Do it!, 2-слойная плата, проверена с кварцем и внешним генератором от NEC Electronics
uPD70F3707 оценочный комплект EB-V850ES/HG2-EE от NEC Electronics
TMS320F2806 2-слойная плата, с внешним генератором
ADUC7026BSTZ62 макетная плата, с кварцем
ATMEGA32-16PU навесной монтаж на ножках микросхемы, с кварцем
AT89C51-24PI 2-слойная плата, с кварцем
Z8F2421AN020EC 2-слойная плата, с кварцем
EZ80F91AZ050SC отладочный комплект eZ80F910200ZCO, 4-слойная плата, с кварцем
MC56F8322VFB60 отладочный комплект MC56F8300DSK, 2-слойная плата, видимо, с внутренним RC-генератором
MC9S12NE64 отладочный комплект DEMO9S12NE64
CY8C21x34 Cypress; отладочный набор CY3212 – CapSense, 2-слойная плата, внутренний RC-генератор

 

Таблица 2. Оценочные комплекты, которые при проверке имели сбои тестовой программы

Название Описание
C8051F064 Silicon Labs; 2-слойная плата, работа от кварца
MSP430F148IPM 2-слойная плата, с кварцем 8 МГц
LPC2129 отладочная плата
LPC2148FBD64 2-слойная плата, с внешним генератором
LPC2148 отладочный комплект от Olimex, на 2-слойной плате, с кварцем
TMS470R1A256 KickStart Development Board от IAR на TMS470R1A256, c кварцем
AT91SAM7S128 отладочный комплект от Olimex

 

Без сбоев работали микроконтроллеры ADUC7026BSTZ62, в то время как в «черный список» попали микроконтроллеры с ядром АРМ от NXP (LPC2148). Если исследовать цепи питания ядра, периферийных устройств и портов ввода/вывода, можно отметить, что микроконтроллер от Analog Devices, также «устоявший» против искры [3], имеет структуру питания, аналогичную V850ES/Hx2 от NEC. A именно развязанные шины питания ядра и портов ввода/вывода (рис. 5, 6).

 

 

 

Инженеры NXP при создании LPC2148FBD64 [4] ограничились только разделением аналоговых и цифровых цепей питания (рис. 7).

 

 

Даже в микроконтроллерах, анонсированных как предназначенные для автомобильного применения, таких как AT90CAN32/64/128; ATmega164P/324P/644P и ATmega32M1/64M1/32C1/64C1, разделение шин питания портов ввода/вывода и шин питания ядра не предусмотрено. В результате возрастает возможность отказа из-за помех, наведенных по цепям ввода/вывода в ответственных применениях.

Микроконтроллер MSP430F148, который был использован в разработке, описанной Михаилом, также не имеет разделения шин питания ядра и портов ввода/вывода.

Можно также вспомнить еще одного очень популярного производителя микросхем — компанию Microchip. Исследования с микроконтроллерами данного производителя не проводились, однако, если посмотреть на них с точки зрения разделения шин питания, то в определенном смысле концепция развязки портов ввода/вывода и периферийных устройств реализована в семействе PIC24FJ64GA/128GA/256GA. На рис. 8 видно, что цепи питания ядра VDDCORE и портов ввода/вывода VDD разделены. Однако общий провод VSS остался гальванически не развязанным для этих двух цепей питания. По предварительным оценкам, помехозащищенность этих микроконтроллеров будет ниже, чем у ADUC7026 от ADI или V850 от NEC.

 


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-06-05; Просмотров: 1159; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.048 с.)
Главная | Случайная страница | Обратная связь