Разработка конструкторской документации на изделие "USB-термометр"

курсовая работа

1. ОПИСАНИЕ СХЕМЫ ЭЛЕКТРИЧЕСКОЙ ПРИНЦИПИАЛЬНОЙ «USB-термометр»

USB-термометр предназначен для измерения температуры. Схема термометра показана на рис. 1. Прибором управляет микроконтроллер PIC18F14K50 (DD1), имеющий встроенный модуль USB. Температуру измеряет цифровой датчик LM75AD (ВК1). Он связан с микроконтроллером шиной I2C и имеет на ней адрес ведомого 1001111.

В датчике имеется регистр-указатель, код в котором адресует один из четырех информационных регистров. По нулевому адресу находится двухбайтный регистр температуры Temp_data, хранящий ее текущее значение, измеренное датчиком. Этот регистр работает только на чтение. В таблице показано, как в нем размещены двоичные разряды значения температуры. Если разряд D10 равен 0, то температура выше нуля.

Рис. 1. Схема USB-термометра

В компьютере для работы с термометром необходимо установить программный драйвер. Он создаст виртуальный СОМ-порт. Режим работы порта: восемь информационных разрядов без контроля четности и один столовый, скорость обмена информацией определяется автоматически. По умолчанию опрос микроконтроллером датчика температуры происходит каждые 5 с. Полученное значение в градусах Цельсия передается по интерфейсу USB строкой из пяти символов: десятки, единицы, точка, десятые доли, пробел.

2. ОПИСАНИЕ СТРУКТУРЫ МИКРОКОНТРОЛЛЕРА

Компания Microchip Technology Inc. выпускает широкую номенклатуру PIC контроллеров с интегрированным модулем USB, поддерживающим спецификацию 2.0. В настоящее время выпускаются 8-и, 16-и и 32-х битные полноскоростные (Full Speed - FS) USB микроконтроллеры в корпусах с числом выводов от 28 до 100, с поддержкой функций устройство, хост и OTG.

Ядро. Микроконтроллеры семейства K50 имеют расширенную систему команд. Дополнительно к стандартным 75-ти инструкциям ядра PIC18 новые микроконтроллеры поддерживают команды расширяющие функциональность ядра. Дополнительные восемь инструкций пополняют операции с косвенной и индексной адресацией, в новом ядре также реализована индексная адресация со смещением для многих стандартных инструкций ядра PIC18. Расширение системы команд по умолчанию запрещено. Для разрешения работы расширенных команд служит специальный бит XINST в битах конфигурации микроконтроллера. Таким образом, реализуется полная программная совместимость со стандартным ядром, если пользователь использует новые микроконтроллеры со старым программным обеспечением.

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

· автоматическое размещение и освобождение области программного стека при входе и выходе из подпрограмм;

· вызов функции по указателю;

· манипулирование с указателями на программный стек;

· работа с переменными расположенными в программном стеке.

Контроллеры серии K50 могут работать с максимальной тактовой частотой 48МГц в диапазоне напряжений от 2.7 до 5.5В, и на частоте 20МГц в диапазоне от 1.8 до 2.7В.

Интерфейсы. Модуль USB контроллеров PIC18F1xK50 поддерживает LS (Low Speed - 1.5Мб/с) и FS (Full Sped - 15МБ/с) спецификации USB 2.0. Контроллеры имеют по 256 байт выделенной для работы с USB двухпортовой ОЗУ, поддерживают 16 конечных точек (по 8 на вход и на выход). Для определения физического подключения микроконтроллера к шине USB контроллеры имеют возможность формирования прерывания по изменению состояния на выводах D+ и D-. Так же как и старшие контроллеры семейства PIC18, новые 20-и выводные контроллеры содержат все необходимое для прямого подключения к USB хосту (встроенный USB модуль с трансивером, подтягивающие резисторы на линии D+ и D- для задания скорости шины), но не могут работать с внешним USB трансивером. Устройства на базе контроллеров семейства PIC18F1xK50 могут работать с питанием от шины USB, от собственного источника питания или иметь комбинированное питание. При наличии в устройстве собственного источника питания может пригодиться возможность PIC контроллера определять подключение USB кабеля с помощью возможности формирования прерывания по изменению состояния на линиях D+ и D-. Хост или хаб USB имеет подтягивающие к «земле» резисторы порядка 15КОм. При подключении микроконтроллера к шине USB и наличии внешних подтягивающих резисторов к напряжению питания, микроконтроллер может определить изменение состояния на выводах D+ и D-, выставить флаг прерывания и включить модуль USB.

Помимо модуля USB контроллеры имеют модуль последовательного интерфейса EUSART и модуль синхронного последовательного интерфейса MSSP.

Модуль EUSART поддерживает работу с интерфейсами RS-485, RS-232 и LIN 2.0. Наличие внутреннего точного стабилизированного RC генератора и возможности автоматического определения скорости принимаемых данных позволяет работать без внешнего кварцевого генератора.

Модуль синхронного последовательного интерфейса MSSP позволяет работать в режимах Master и Slave с интерфейсами SPI и I2C.

Аналоговая периферия. Микроконтроллеры серии PIC18F1xK50 содержат всю, ставшую стандартной аналоговую периферию - 10-и разрядный АЦП, два аналоговых компаратора и программируемый источник опорного напряжения. Из нововведений следует отметить наличие встроенного прецизионного источника фиксированного опорного напряжения. Для фиксированного источника опорного напряжения выбираются три значения напряжения 1.024В, 2.048 и 4.096В. Источник опорного напряжения может использоваться как база для программируемого источника опорного напряжения (ЦАП), может подключаться на вход АЦП и компараторов. Выход программируемого источника опорного напряжения может так же подключаться ко входу АЦП и компараторов, а также выводиться на вывод микроконтроллера для использования совместно с внешними цепями микроконтроллера. Микроконтроллеры PIC18F1xK50 имеют два аналоговых компаратора. Компараторы часто интегрируются в микроконтроллеры, так как они предоставляют некоторые полезные функции, независимые от исполняемого программного кода. Встроенные компараторы имеют входной мультиплексор, позволяющий подключать входы компараторов к тому или иному выводу микроконтроллера и источникам опорного напряжения. Выход компаратора может подключаться на выходной порт микроконтроллера, может быть источником прерывания, выводить микроконтроллер из режима энергосбережения Sleep, а так же выключать ШИМ модуль микроконтроллера.

Средства разработки. Новые контроллеры поддерживаются всеми средствами отладки компании Microchip (программаторами-отладчиками PICkit2, PICkit3, ICD-2, ICD-3 и внутрисхемным эмулятором REAL ICE). Однако, как и для всех маловыводных контроллеров, для внутрисхемной отладки необходим специальный отладочный модуль. На плате отладочного модуля установлен специальный микроконтроллер PIC18F14K50-ICD, который содержит модуль теневой отладки и имеет дополнительные выводы, выделенные для внутрисхемной отладки.

3. ПРОГРАММНЫЙ ПРОДУКТ ДЛЯ МИКРОКОНТРОЛЛЕРА

Данный микроконтроллер для своей работы использует константу osccal -- представляет собой 16-ти ричное значение калибровки внутреннего генератора МК, с помощью которого МК отчитывает время при выполнении своих программ, которая записана в последней ячейке данных пика. Подключаем данный микроконтроллер к программатору.Ниже на скриншоте красными цифрами показана последовательность действий в программе IC-prog.1. Выбрать тип микроконтроллера2. Нажать кнопку «Читать микросхему»В окне «Программный код» в самой последней ячейке будет наша константа для данного контроллера.

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

Делись добром ;)