Скачать 418.24 Kb.
|
8-битные микроконтроллеры PIC18 Высокопроизводительное семейство 8-битных микроконтроллеров PIC18F представлено широкой гаммой микроконтроллеров, включающих большой набор периферийных модулей: 10бит АЦП, компараторы, ШИМ, захват/сравнение, драйвер ЖКИ; интерфейсы связи USB, CAN, I2C, SPI, USART, Ethernet и т. д. -быстродействия до 16 MIPS -объем памяти программ до 128Кб -корпуса от 18 до 100 выводов. -эффективное кодирование на C -NanoWatt технологии -встроенный программируемый генератор -3В и 5В семейства -продвинутая архитектура (16-и разрядные слова программ) -гибкость самопрограммирования -поддержка широко распространенных протоколов связи (CAN, USB, ZigBee™, TCP/IP) -программная совместимость и совместимость по выводам и периферийным модулям внутри семейства, а также со старшими (16-битными) семействами, предоставляют возможность расширения и увеличения функциональности при развитии разработок[21]. 3.2.16-битные микроконтроллеры : Компания Microchip Technology Inc. производит два семейства 16-и разрядных микроконтроллеров (MCU) и два семейства 16-и разрядных цифровых сигнальных контроллеров (DSC), которые дают разработчикам совместимые платформы с обширным выбором типов корпусов, периферийных модулей и быстродействия. Общие атрибуты всех 16-и разрядных семейств — это совместимость по выводам, общая система команд и, соответственно, общие компиляторы Си и средства разработки. Широкая линейка 16-битных контроллеров включает контроллеры от 18 до 100 выводов с объемом flash памяти от 6 Кб до 536 Кб. 16-битные микроконтроллеры PIC24F и PIC24H Основные особенности: -выполнение команды за 2 такта генератора -гарантированное время отклика на прерывание — 5 командных тактов -доступ к памяти (в том числе инструкции чтения-модификации-записи) за 1 командный такт -аппаратный умножитель (за 1 такт) -аппаратный делитель 32/16 и 16/16 чисел (17 командных тактов) -диапазон питающих напряжений 1.8…3.6В, один источник питания. -внутрисхемное и само- программирование -встроенный генератор с PLL -расширенная периферия (до 3-х SPI, до 3-х I2C, до 4-х UART (с поддержкой IrDA, LIN), CAN (и расширенный ECAN), USB OTG) -модуль измерения времени заряда (CTMU), основное применение — управление емкостными сенсорами -ток портов ввода/вывода общего назначения — 18 мА -порты толерантны к устройствам с 5 В питанием -до девяти 16-битных таймеров общего назначения -до восьми модулей захвата -ряд энергосберегающих режимов -до двух АЦП (32 канала) с конфигурируемой разрядностью -до восьми 16-битных модулей сравнения / генерации ШИМ -программное переназначение выводов (PPS) -прямой доступ к памяти DMA(у PIC24H) -расширенный набор инструкций, 16 ортогональных регистров общего назначения, векторная приоритетная система прерываний, и другие особенности (методы адресации, аппаратные циклы) [13]. 3.3.32-битные микроконтроллеры : Старшим семейством контроллеров от Microchip Technology является 32-разрядное семейство микроконтроллеров PIC32: -ядро MIPS32 M4K, частота тактирования 80 МГц, большинство команд выполняются за 1 такт генератора, производительность 1.53 Dhrystone MIPS/МГц -порты ввода/вывода относятся к основному частотному диапазону, т.о., к примеру, можно дергать портами с тактовой частотой. -дополнительный частотный диапазон организуется для периферии из основного посредством программно настраиваемого делитель, т.о. частота тактирования периферии может быть снижена для снижения энергопотребления. -28-, 44-, 64- и 100-выводные корпуса, до 128 кБ SRAM и 512 кБ Flash с кэшем предвыборки -совместимость по выводам и отладочным средствам с 16-битными контроллерами Microchip -аппаратный умножитель-делитель с независимым от основного ядра конвейером, оптимизированным по скорости выполнения -набор расширенных инструкций MIPS16e™ — набор 16-битных инструкций, позволяющий на некоторых приложениях снизить объем кода на 40 % -независимый от основного ядра контроллер USB Семейство 32-разрядных микроконтроллеров PIC32 выделяется значительно увеличенной производительностью и объемом памяти на кристалле по сравнению с 16-разрядными микроконтроллерами и контроллерами цифровой обработки сигналов PIC24/dsPIC. Контроллеры PIC32 также оснащены большим количеством периферийных модулей, включая различные коммуникационные интерфейсы — те же, что у PIC24, и 16-битный параллельный порт, который может использоваться, например, для обслуживания внешних микросхем памяти и жидко-кристаллических TFT-индикаторов. Семейство PIC32 построено на ядре MIPS32®, с конкурентоспособной комбинацией низкого потребления энергии, быстрой реакции на прерывание, функциональностью средств разработки и лидирующем в своем классе быстродействием 1.53 Dhrystone MIPS/МГц. Такое быстродействие достигнуто благодаря эффективному набору инструкций, 5-ступенчатому конвейеру, аппаратному умножителю с накоплением и несколькими (до 8) наборами 32-разрядных регистров ядра[21]. 4.Функции SРI Эти функции предназначены для облегчения пользователю сопряжения между программами Си и различными периферийными устройствами, использующими шину SPI. Интерфейс SPI использует три линии для последовательной связи. Дополнительно к многочисленным устройствам памяти все хорошо известные производители предлагают совместимые с SPI аналого-цифровые (АЦП) и цифро-аналоговые (ЦАП) преобразователи, часы реального времени (RТС) и другие устройства. Связи, требующиеся в типовом SРI-интерфейсе, показаны на Рис. 1. Микроконтроллер (МСU) посылает последовательные данные через свою МОSI (Master Out Slаvе In — Выход ведущего/Вход ведомого) линию на вход SI( S1аvе In — Вход ведомого) периферийного устройства. Периферийное устройство посылает свои данные через выход SО (S1аvе Out — Выход ведомого) на линию МISО. Обмен данных синхронизируется сигналом тактовой частоты SСК, который генерирует микроконтроллер. Сигналы Chip Select (Выбор чипа) SS0. . .SS3 активизируют периферийное устройство для доступа. Рис. 1 Последовательный SРI-интерфейс. Пример синхронизации для обмена данных между микроконтроллером (master) и периферийным (slave) устройством по интерфейсу SPI показан на Рис. 2 Рис. 2 Синхронизация SPI. Функции, которыми требуется управлять через SPI, зависят от используемого периферийного устройства. Интерфейс SPI работает подобно 8-битовому регистру сдвига. Байт, который требуется послать, сохраняется в регистре и будет перемещаться бит за битом на вывод МОSI. Освобождающиеся позиции заполняются битами, полученными с вывода МISО. Для передачи байта в регистр потребуется 8 тактов. Некоторые микроконтроллеры AVR имеют встроенный SPI. Если должно быть использовано это внутреннее периферийное устройство, то следует соответствующим образом сконфигурировать выводы микроконтроллера. Микроконтроллеры с внутренними аппаратными средствами SPI допускают конфигурацию полярности и фазы тактовой частоты SСК. При отсутствии аппаратного SPI правильность синхронизации сигналов должна быть запрограммирована. Весь обмен данными SPI организовывает SPI Control Register (Регистр управ ления SPI) - SРСR (Рис. 3) [25]. Рис. 3 Биты регистра SРСR. Биты управляющего регистра SPI устанавливаются следующим образом.
Таблица 1 Соотношение между тактовой частотой микроконтроллера и SСК Перечень функций SPI и их действия приведены в Табл. 2 Таблица 2 Перечень функций SРI Прототипы этих функций размещаются в файле spi.h, расположенном в поддиректории ..\INC. Перед использованием этих функций директивой #include должен быть подключён файл spi.h[12]. 5.LCD – функции LCD-функции предназначены для облегчения пользователю сопряжения между программами Си и алфавитно-цифровыми LCD-модулями со встроенным чипом HD44780 от Hitachi или эквивалентным. Контроллер HD44780 потенциально может управлять двумя строками по 40 символов в каждой (для модулей четырьмя строками по 40 символов используются два однотипных контроллера). Название и описание выводов рассматриваемых LCD приведено в Табл. 3 Таблица 3 Описание выводов LCD на базе HD44780 При помощи этих выводов LCD обменивается информацией с управляющим микроконтроллером (в нашем случае - с AVR). Микроконтроллер AVR посылает в LCD команды, управляющие режимами его работы, и коды выводимых символов. В свою очередь LCD может посылать микроконтроллеру AVR по его запросу информацию о своём состоянии и данные из своих внутренних блоков памяти. Три вывода LCD предназначены для подачи питающего напряжения (VSS, VDD) и напряжения смещения (V0), которое управляет контрастностью дисплея. На Рис. 4 показана схема питания этих выводов. Рис. 4 Cхема питания LCD. Выводы DВ0...DВ7 используются для организации мультиплексированной шины «Команды/данные». На выводы RS, R/W, Е (или Е1, Е2 для LCD 4х40) микроконтроллер AVR выставляет управляющие сигналы. При помощи сигнала на линии RS микроконтроллер сообщает контроллеру LCD о том, что именно передаётся по шине: команда или данные. Если RS = 0, адресуется регистр команд, если RS = 1 - регистр данных. Данные через регистр данных, в зависимости от текущего режима, могут помещаться (или прочитываться) в видеопамять (DDRAM) или в ОЗУ знакогенератора (CGRAM) по текущему адресу. Информация, попадающая в регистр команд, интерпретируется устройством выполнения команд как управляющая последовательность. Прочтение регистра команд возвращает в семи младших битах текущее значение счётчика адреса (АС), а в старшем разряде - флаг занятости (ВЕ). Сигнал на линии Е (или Е1, Е2) является стробом, сопровождающим сигналы на шине «Команды/данные». Запись информации в LCD происходит по спаду этого сигнала. Потенциал на управляющем выводе R/W задаёт направление передачи данных: запись в RAM LCD (R/W = 0) или считывание оттуда (R/W = 1). Для случая, когда микроконтроллер имеет ограниченное количество линий ввода/вывода, предусмотрен второй вариант подключения LCD с использованием 4-битной шины «Команды/данные». При этом каждый байт данных передаётся по линиям 0В4...ВВ7 последовательно двумя тетрадами, начиная со старшей. Контроллер LCD после приёма байта команды или байта данных требует некоторого времени для обработки полученной информации, в течение которого микроконтроллер AVR не должен выполнять новые передачи. Для того чтобы определить, когда контроллер LCD закончит свои внутренние операции, микроконтроллер AVR может опрашивать BUSY-флаг (флаг занятости - ВЕ), который сбросится только тогда, когда контроллер LCD освободится. Второй, более простой способ заключается в том, что управляющий микроконтроллер, зная, сколько времени требуется LCD на обработку той или иной команды, просто выполняет временную задержку после каждой передачи информации. Видеопамять (DDRAM), имеющая общий объём 80 Б, предназначена для хранения кодов символов, отображаемых на LCD. Видеопамять организована в две строки по 40 символов в каждой. Эта привязка является жесткой и не подлежит изменению, другими словами, независимо от того, сколько реальных строк будет иметь каждый конкретный LCD-модуль скажем, 80х1 или 20х4, адресация видеопамяти всегда производится как к двум строкам по 40 символов. При записи или считывании буфера данных обращение осуществляется к ячейке, на которую в данный момент указывает курсор. У двустрочных LCD первые 40 ячеек буфера данных обычно отображаются на верхней строке дисплея, а вторые 40 ячеек - на нижней. Кроме DDRAM, контроллер LCD содержит ещё один блок памяти - знакогенератор. Его «прошивка», т. е. соответствие кодов начертанию символов, обычно имеется в описании LCD. Пример такой «прошивки» представлен в Табл. 4. Из допустимых для размещения в DDRAM кодов символы с кодами 0х00...0х07 (и их дубликаты с кодами 0х08...0х0F) имеют специальное назначение - это переопределяемые символы, графическое изображение которых может назначить сам пользователь, поместив соответствующую информацию в области CGRAM. Для программирования доступны 8 переопределяемых символов в режиме с матрицей 5х7 точек. Для каждого из восьми перепрограммируемых символов в CGRAM отводится по 8 ячеек памяти, каждая из которых со ответствует одной строке точек в изображении символа. Для символа 0 (код сим вола 0х00) адреса ячеек памяти - 0х00...0х07, для символа 1 (код символа 0х01) адреса ячеек памяти - 0х08...0х0F и т. д. Таким образом, перепрограммируемая часть знакогенератора содержит 64 байта памяти (8х8). Для кодирования матрицы используются горизонтально «уложенные» байты, пять младших битов которых несут информацию о рисунке (причём 1 означает, что сегмент будет включён), 4-й бит каждого из 8 байтов матрицы определяет ле вую колонку символа, а 0-й - правую. Старшие три бита не используются и могут иметь любые значения[12]. Таблица 4. Пример прошивки знакогенератора LCD-модуля на базе HD44780 Пример кодирования CGRAM для одного символа приведён на Рис. 5 (символ 2, код символа 0х02). Рис. 5. Пример кодирования символа (незначащие биты показаны светлым шрифтом). У контроллера HD44780 существует набор внутренних флагов (Табл. 5), определяющих режимы работы различных элементов контроллера. Таблица 5. Флаги, управляющие работой контроллера HD44780 В Табл. 6 приведены значения управляющих флагов непосредственно после подачи на LCD напряжения питания. Переопределение значений флагов производится специальными командами, записываемыми в регистр команд, при этом комбинации старших битов определяют группу флагов или команду, а младшие содержат собственно флаги. Таблица 6. Значения управляющих флагов после подачи напряжения питания Список управляющих комбинаций битов регистра команд и выполняемые команды приведены в Табл. 7[32]. Таблица 7. Управляющие комбинации битов регистра команд Так как на момент включения LCD ничего не отображает (флаг В = О), то, для того чтобы вывести какой-либо текст, необходимо, как минимум, включить отображение, установив флаг В = 1. Вот пример широко распространённой последовательности команд (см. Табл. 7) для инициализации LCD: 0х38, 0х0С, 0х06 (знак «0х» перед числом указывает на шестнадцатеричное основание). 0х38 устанавливает режим отображения 2 строк с матрицей 5х8 точек и работу с 8-битной шиной данных; 0х0С включает отображение на экране LCD без отображения курсора, 0х06 устанавливает режим автоматического перемещения курсора слева направо после вывода каждого символа. Вывод на экран символа производится записью его кода в регистр данных. При этом символ размещается в DDRAM по текущему адресу, указываемому счётчиком адреса (АС) контроллера LCD, а значение АС увеличивается или уменьшается на 1. Чтобы произвести переустановку курсора на нужную позицию, необходимо присвоить АС соответствующее значение (см. Табл. 7). Здесь есть одна тонкость. Когда производится последовательная запись символов и в результате заполняется вся строка, курсор автоматически переходит на вторую строку; но если необходимо принудительно установить курсор, скажем, на начало второй строки, то будет неверным присвоить АС, казалось бы, логичное значение 0х28 (40), правильным является значение 0х40 (64). Значения адресов DDRAM в диапазоне 0х28...0х3F (а равно и 0х68...0х7F) являются неопределёнными, и результаты работы с ними могут быть непредсказуемыми. Следует также отметить особенность вывода на LCD русского текста. Прежде всего знакогенератор LCD должен иметь русские буквы (см.Табл.4). Кроме того, строку, предназначенную для вывода на LCD, содержащую английский текст и цифры, в программе Си можно записать несколькими способами, т. к. их коды Windows и коды английского знакогенератора LCD-дисплея совпадают. Пример: /* Эквивалентная запись определения строки «Text», содержащей английские буквы (см. Табл. 4)*/ char string[] = «Техt»; char string [] = {‘T’,’e’,’x’,’t’,’\0’ }; char string [] = {0х54, 0х65, 0х78, Ох74, 0х00}; С русским текстом дело обстоит иначе. Дело в том, что сходные с английскими русские буквы берутся из английского знакогенератора, а остальное — из усечённого русского (см. Табл. 4). Кроме того, коды Windows русских букв НЕ СОВПАДАЮТ с их кодами знакогенератора LCD-дисплея. Поэтому строку, предназначенную для вывода на LCD, содержащую русский текст, в программе Си можно записать только одним способом, а именно перечислив коды знакогенератора соответствующих букв. Пример: /* Запись определения строки "Текст" , содержащей русские буквы (см. Табл. 4) */ char string [] = {0х54, 0х65, 0хВА, 0х63, 0хВF, 0х00}; Напомним, что каждая строка должна заканчиваться нулевым символом, т. е. последнее значение 0х00 является символом конца строки, а не кодом выводимо го символа[31]. |
Новая жизнь "вторичного жилья" Вскрытие полов, очистка стен и потолков поведали всего о двух косметических ремонтах, сделанных давно и очень давно. Типовая планировка... |
1. Подключение к маршрутизатору и смена пароля А вот для дома, до недавнего времени, не было маршрутизатора как сетевого, так и беспроводного (Не, конечно, на базе существующих... |
||
Инструкция пользователя Акустическая система использует два полнодиапазонных драйвера 2 (50 мм) и получает питание от 2-канального усилителя, а два пассивных... |
Формирование орфографического навыка письма у учащихся с дизорфографией Поэтому одной из задач комплексного исследования когнитивных и языковой функций у пятиклассников с дизорфографией было изучение качества... |
||
Рекомендации по измерению основных параметров радиостанций с частотной... Радиокоммуникационный тестер рст–430 позволяет произвести все необходимые измерения основных параметров радиостанций с частотной... |
Здесь пойдет речь о том, что когда мы сильно сконцентрированы лишь... Я очень спешу и поэтому нервничаю. Женщина передо мной берет маслины, и (надо же, какое совпадение) в открытой банке маслины закончились,... |
||
Государственный Университет Аэрокосмического Приборостроения Дипломный проект Разработка схемы электрической принципиальной сетевого модуля измерителя дальности 37 |
Проект для детей младшего дошкольного возраста (с 3х до 4х лет) «синичка маленькая птичка» Проблема экологического воспитания дошкольников приобретает особую остроту и актуальность. В дошкольном возрасте происходит формирование... |
||
Решение проблем возникших при изготовлении сувенира И всегда возникает проблема, что подарить человеку, так чтобы подарок был нужным, полезным и оригинальным. Поэтому тема подарка будет... |
Осторожно грипп!!! Скрытый, или так называемый инкубационный, период при гриппе очень короткий — 1—2 дня, поэтому болезнь распространяется очень быстро... |
||
Методы исследования в биологии (10 класс) Цель: создать условия для осмысления информации об основных методах биологических исследований |
1 марта — Международный день борьбы с наркотиками Проблема наркомании в подростковом возрасте в последние годы стала актуальна. Это трагедия не только семьи, в которой есть больной... |
||
50 тысяч детей в долине Моава «всему Обществу сынов Израилевых: земля, которую мы проходили для осмотра, очень, очень хорошая». Но к этому времени вся территория... |
Измеритель емкости Данная модель измерителя емкости имеет дисплей 3 ½ разряда (максимум дисплея 1999). Девять пределов позволяют проводить измерения... |
||
Методика проведения исследования 3 Мировой рынок ии: ключевые тренды... Целью настоящего исследования было определить актуальный уровень осведомленности о технологиях машинного обучения и искусственного... |
Первоисточник и авторство текста: Восточный портал, проект Андрея Ланькова Когда меня спрашивают, что я же могу сказать о Сеуле, я всегда отвечаю: "Сеул – очень большой город. Ну очень большой!" Сеул, действительно... |
Поиск |