1 © 2012 MIPS Technologies, Inc. All rights reserved. Microchip PIC32 – микроконтроллер с ядром MIPS Юрий Панчул Старший инженер 20 октября 2012 года.

Презентация:



Advertisements
Похожие презентации
1 © 2012 MIPS Technologies, Inc. All rights reserved. Выбор опций для интеграции ядер MIPS в систему на кристалле Юрий Панчул Старший инженер 20 октября.
Advertisements

Схемотехника подсистем ЭВМ. Введение Подсистемы ЭВМ: Память: Кэш, Виртуальная память Системная шина Подсистема прерываний Система ввода-вывода Большинство.
Микроконтроллеры AVR семейства Mega. Отличительные особенности FLASH-память программ объемом от 8 до 256 Кбайт (число циклов стирания/записи не менее.
1 Микропроцессорная система. 2 Особенности микропроцессорных систем Гибкая логика работы меняется в зависимости от задачи; Универсальность может решать.
USB OTG и Embedded Host. ОСНОВНЫЕ ТЕМЫ Спецификация USB Окружение USB OTG против Embedded Host Embedded Host USB On-The-Go Устройства USB OTG - Особенности.
Пензенский государственный университет Кафедра Вычислительной техники Программа «Проектирование встраиваемых вычислительных систем на кристалле»
Разработка программного обеспечения для сигнальных процессоров TMS320C64xx Часть 5. Таймер. McBSP.
Модульное лицензирование Александр Варварик SWD Real-Time Systems Конференция QNX Россия сентября, Санкт-Петербург.
Назначение системы BIOS. Что такое BIOS? BIOS (Basic Input Output System) - базовая система ввода-вывода. Это часть программного обеспечения PC, поддерживающая.
Название ОКР: « Разработка микросхемы контроллера периферийных интерфейсов для высокопроизводительных систем на кристалле с архитектурой «Эльбрус» Шифр.
Встроенные Системы Часть 6. Функциональные блоки Кафедра Информатики, мат-мех СПбГУ Copyright © 2004 Victor Vengerov
1 © 2012 MIPS Technologies, Inc. All rights reserved. Ядра MIPS для использования в микроконтроллерах Microchip Юрий Панчул Старший инженер 20 октября.
Минимизация энергопотребления в системах на основе МК.
2 из 21 Введение в Cache-oblivious алгоритмы: –Определение Cache-oblivious алгоритмов. –Модель памяти компьютера. –Cache-oblivious модель –Примеры сache-oblivious.
«МЭС 2014»1 Аппаратное ускорение цифрового моделирования Зайцев Виктор Сергеевич Белорусский государственный университет Кафедра математической.
УСТРОЙСТВО СИСТЕМНОГО БЛОКА. Системный блок Это сложный и важный компонент ПК. Обеспечивает связь центрального процессора с внешними устройствами, в системном.
Демидов А.В г.1 Операционные системы Лекция 1 Определение, история, классификация ОС, Архитектура ЭВМ.
Интерфейсы периферийных устройств. Определения Периферийные устройства (ПУ) - это устройства ЭВМ, не входящие в состав центральной части ВС и предназначенные.
1 © 2012 MIPS Technologies, Inc. All rights reserved. Ядра MIPS для использования в микроконтроллерах Microchip Юрий Панчул Старший инженер 20 октября.
Интерфейсный блок AXI- коммутатора в составе системы на кристалле «Эльбрус-S2» Студент: Смольянов Павел 518 гр. Научный руководитель: Сахин Ю.Х.
Транксрипт:

1 © 2012 MIPS Technologies, Inc. All rights reserved. Microchip PIC32 – микроконтроллер с ядром MIPS Юрий Панчул Старший инженер 20 октября 2012 года

2 © 2012 MIPS Technologies, Inc. All rights reserved. Комбинация компетенций двух ведущих компаний Microchip Technology приносит компетенцию в микроконтроллерных системах на кристалле, периферии и индустриальных приложениях Микроконтроллеры PIC32 используют те же устройства ввода- вывода и средства системной интеграции, как и другие микроконтроллеры от Microchip Technology – PIC24, PIC18 и т.д. MIPS Technologies приносит компетенцию в разработке высокопроизводительных низкопотребляющих процессорных ядер Ядра MIPS поддерживается крупной экосистемой средств для разработчиков – компиляторами, встраиваемыми операционными системами и другим программным обеспечением, написанным для архитектуры MIPS

3 © 2012 MIPS Technologies, Inc. All rights reserved. Три варианта среды разработки Microchip MPLAB X Профессиональная система компиляции, профилирования и отладки с максимумом гибкости Работает под Linux, Windows и MacOS MPIDE Такой же интерфейс (и пользовательский, и программный), как у известной среды Arduino Хороша для хоббистов, обучения школьников и студентов не- электронных и не-программистских специальностей Полностью открытый GNU toolkit Подходит для людей, которые хотят только открытые решения Требует С header-файлов с определениями регистров из других пакетов – например RetroBSD, uOS или MPIDE

4 © 2012 MIPS Technologies, Inc. All rights reserved. Выбрать из 760 микроконтроллеров Microchip – непростая процедура

5 © 2012 MIPS Technologies, Inc. All rights reserved. Средства системной интеграции и периферия микроконтроллера Microchip PIC32 Oscillators Watchdog Timer Flash and Prefetch Cache Digital I/O Ports Analog Input Timers and Real-Time Clock/Calendar (RTCC) Communications – UART, SPI, I2C, USB OTG, PMP, CAN Input Capture Module Pulse Width Modulation (PWM) Module High-performance DMA Controller

6 © 2012 MIPS Technologies, Inc. All rights reserved. Зачем PIC32 пять источников тактовой частоты? Внутренний быстрый осциллятор - FRC – 8 MHz (±2%) Не очень точный, но большой плюс - не требует внешних компонент Относительно низкое энергопотребление Внутренний медленный осциллятор – LPRC – 32 kHz Низкая частота – низкое энергопотребление Низкая точность, зато не требует внешних компонент Внешний первичный осциллятор – POSC – до 20 MHz Высокая точность и скорость, но требует внешних компонент Два режима – XT для кварцевых генераторов до 10 MHz и HS для 10 MHz и выше Внешний вторичный осциллятор – SOSC – Hz Медленный, для работы с низким энергопотреблением Точный (кварцевый генератор), также используется для таймеров и модуля часов (RTCC) Внешний источник тактовой частоты - EC

7 © 2012 MIPS Technologies, Inc. All rights reserved. Для частот до 80 MHz используется PLL Для частот до 80 MHz используется Phase-locked loop (PLL) PLL – это устройство, которое позволяет умножать, делить или сдвигать тактовый сигнал Системный тактовый сигнал и тактовый сигнал для внешней шины могут иметь разную тактовую частоту

8 © 2012 MIPS Technologies, Inc. All rights reserved. Простой ввод-вывод через цифровые порты Видимые программисту переменные/регистры подсоединены к пинам, выходящим из микроконтроллера Ввод или вывод происходит, когда программа читает или пишет в регистры PORTB, PORTC, PORTD и т.д. Регистр TRISx (TRISB, TRISC и т.д.) используется для конфигурации бит портов для ввода или вывода Регистры PORTxSET, PORTxCLR и PORTxINV устанавливают, очищают или инвертируют биты по маске Изменения в пинах ввода могут вызывать прерывания

9 © 2012 MIPS Technologies, Inc. All rights reserved. Код ввода и вывода из цифровых портов // Установить все биты порта E как выводы // Как правило делается один раз в начале программы TRISE = 0; PORTE = 12; // Вывести число 12 (двоичн 1100) на пины PORTESET = 3; // Установить биты PORTECLR = 8; // Очистить биты PORTEINV = 6; // Инвертировать данные биты PORTEbits.RE3 = 1; // Компилятор позволяет // ставить биты индивидуально // Ввод делается аналогично, // только в TRISE нужно выставить в 1 // биты соответствующие PORTE для ввода TRISE = ~0; n = PORTE;

10 © 2012 MIPS Technologies, Inc. All rights reserved. Последовательные интерфейсы коммуникации – какой выбрать - 1 SPI До 20 Mbit / s Количество устройств ограничивается количеством сигналов 3 + n * CS сигналов I 2 C До 1 Mbit / s До 128 устройств 2 сигнала UART До 500 kbit / s Point to point (RS232), до 256 устройств (RS485) 2 (+2) сигналов Источник: Lucio Di Jasio. Programming 32-bit Microcontrollers in C. Exploring the PIC32.

11 © 2012 MIPS Technologies, Inc. All rights reserved. Последовательные интерфейсы коммуникации – какой выбрать - 2 SPI Достоинства: простой, низкая стоимость, высокая скорость Недостатки: один мастер, короткое расстояние I 2 C Достоинства: всего 2 сигнала, допускает несколько мастеров Недостатки: самый медленный (учитывая протокол), короткое расстояние UART Достоинство: длинное расстояние (с учетом использования трансиверов для снижения помех) Недостаток: требует точный тайминг, точную частоту синхросигнала Источник: Lucio Di Jasio. Programming 32-bit Microcontrollers in C. Exploring the PIC32.

12 © 2012 MIPS Technologies, Inc. All rights reserved. Последовательные интерфейсы коммуникации – какой выбрать - 3 SPI Типичные приложения: прямое соединение к нескольким периферийным устройствам на одной печатной плате Примеры: последовательный EEPROM (серия 25CXXX), АЦП MCP320X, Ethernet-контроллер ENC28J60, CAN контроллер MCP251X I 2 C Типичные приложения: соединение через шину к периферийным устройствам на одной печатной плате Примеры: последовательный EEPROM (серия 24CXXX), датчики температуры MCP98XX, АЦП MCP322X UART Типичные приложения: интерфейс с терминалами, персональным компьютерам и другим системам сбора данных Примеры: RS232, RS422, RS485, шина LIN, IrDA интерфейс MCP2550 и т.д. Источник: Lucio Di Jasio. Programming 32-bit Microcontrollers in C. Exploring the PIC32.

13 © 2012 MIPS Technologies, Inc. All rights reserved. Пример: UART - Waveform

14 © 2012 MIPS Technologies, Inc. All rights reserved. Код для базовой работы с UART void uart_init (int hertz, int baud) { U1STAbits.UTXEN = 1; // enable transmit pin U1STAbits.URXEN = 1; // enable receive pin U1BRG = hertz / 16 / baud - 1; U1MODEbits.ON = 1; // enable UART } char uart_get_char (void) { while (! U1STAbits.URXDA); // wait until data is available return U1RXREG; // return received character } void uart_put_char (char c) { while (U1STAbits.UTXBF); // wait until buffer empty U1TXREG = c; // transmit character over UART }

15 © 2012 MIPS Technologies, Inc. All rights reserved. Трюки для оптимизация скорости доступа к памяти Скорость работы микроконтроллера по умолчанию довольно медленная из-за «консервативных» установок Специальные настройки могут ускорить работу в 10 раз! Для оптимизации скорости исполнения программы на Microchip PIC32 необходимо в начале вызвать библиотечную функцию SYSTEMConfigPerformance (SYSCLK_FREQUENCY) Альтернативно, можно вручную Выставить минимальное количество циклов ожидания flash-памяти Включить predictive prefetch cache

16 © 2012 MIPS Technologies, Inc. All rights reserved. Код для оптимизации исполнения «вручную» CHECONbits.PFMWS = 2; // Wait states CHECONbits.PREFEN = 0; // Disable predictive prefetch cache CHECONbits.DCSZ = 0; // Disable data caching BMXCONbits.BMXWSDRM = 0; // Data RAM accesses from CPU // have zero wait states for address setup CHECONbits.PREFEN = 3; // Enable predictive prefetch cache // for both cacheable // and non-cacheable regions // Cop0 Config Register (CP0 Register 16, Select 0) // 2:0 K0: Kseg0 coherency algorithm // // 2 Uncached // 3 Cached asm volatile ("mfc0 %0, $16" : "=r" (config)); config |= 3; asm volatile ("mtc0 %0, $16" : "=r" (config));

17 © 2012 MIPS Technologies, Inc. All rights reserved. Демо: PIC32 может генерировать развертку графического дисплея без контроллера Вы видите устройство с графическим дисплеем TFT (Thin Film Transistor) У этого устройства нет контроллера Как оно работает?

18 © 2012 MIPS Technologies, Inc. All rights reserved. Расчет количества циклов для генерации развертки удивляет Дисплей WQVGA – 480 x 272 Каждый пиксел – 24-битный RGB – 3 байта Частота кадров в дисплее – 60 Hz Вывод каждого байта через параллельный порт – 3 цикла Следовательно, на генерацию развертки требуется не менее 480 * 272 * 3 * 60 * 3 = 70,502,400 циклов в секунду Но ведь максимальная частота используемого PIC32 – 80 MHz ?! Неужели процессор занимается ТОЛЬКО генерацией развертки ?

19 © 2012 MIPS Technologies, Inc. All rights reserved. Разгадка – развертку генерирует DMA контроллер DMA контроллер в PIC32 – устройство, которое умеет пересылать информацию между периферийными устройствами и / или внутренней памятью без участия CPU DMA контроллер может на 95% разгрузить CPU от задачи генерации развертки Идея: Установить прерывание от таймера и DMA контроллера и в обработчике прерывания инициировать пересылку данных из памяти в параллельный порт с помощью DMA контроллера

20 © 2012 MIPS Technologies, Inc. All rights reserved. Два способа использования – с внутренней или с внешней памятью

21 © 2012 MIPS Technologies, Inc. All rights reserved. Демо: Интерфейс между микроконтроллером Microchip PIC32 и ПЛИС Altera Cyclone IV Исходники демо - source/browse/trunk/tedious/011_fpga_coprocessor_ports_3.X/

22 © 2012 MIPS Technologies, Inc. All rights reserved. Демо крупнее: Интерфейс между микроконтроллером Microchip PIC32 и ПЛИС Altera Cyclone IV Плата Digilent chipKit Uno32 c Microchip PIC32 Плата Digilent chipKIT Basic I/O Shield Плата DE0-Nano с ПЛИС Altera Cyclone IV Отладчик PICkit 3 Макетная плата с дисплеем, USB кабели

23 © 2012 MIPS Technologies, Inc. All rights reserved. Детали интерфейса Микроконтроллеры можно соединять с ПЛИС-ами либо просто через цифровые порты, либо через SPI, I 2 C и другие протоколы Данное демо использует простые цифровые порты Для трансфера данных из микроконтроллера в ПЛИС тактовая частота ПЛИС должна быть в несколько раз выше, чем у микроконтроллера - oversampling Так как тактовая частота в PIC32 и ПЛИС генерируется независимо, то нужно пропускать входящий в ПЛИС сигнал через два D-триггера (флип-флопа) чтобы (почти) избавиться от метастабильного состояния Метастабильное состояние при таком методе все же может появляться, но с очень низкой вероятностью - раз в несколько лет

24 © 2012 MIPS Technologies, Inc. All rights reserved. Рекомендации по интерфейсу от Евгения Ставинова Для приготовления этого демо я консультировался с экспертом по ПЛИС Евгением Ставиновым Евгений работал в Xilinx и LeCroy, а также является автором книги 100 Power Tips for FPGA Designers

25 © 2012 MIPS Technologies, Inc. All rights reserved. Рекомендации по RTOS от сотрудника MIPS Technologies Сергея Вакуленко Сергей Вакуленко – выпускник физматшколы-интерната при КГУ; выпускник МФТИ; бывший сотрудник иститута имени Курчатова; сейчас сотрудник MIPS Technologies Сергей – автор RTOS uOS Мнение Сергея об использовании RTOS-ов для целей образования: uOS и FreeRTOS находятся примерно на одном уровне функциональности, но uOS намного проще ThreadX внутренне устроен тоже неплохо, но по функциональности не дотягивает. И вообще коммерческий. RTEMS и eCos стараются быть POSIX-совместимыми, и поэтому на порядок более громоздкие и неповоротливые uC/OS-II слишком коряво устроена, давать ее студентам так же вредно, как учить Basic

26 © 2012 MIPS Technologies, Inc. All rights reserved. Рекомендуемая литература по Microchip PIC32 Особо следует отметить David Harris and Sarah Harris, Digital Design and Computer Architecture для обучения студентов В этой книге студенты строят подмножество MIPS-процессора с помощью Verilog и ПЛИС После чего приводится пример индустриального MIPS – Microchip PIC32 и разбирается его периферия – порты, SPI, UART, аналог, соединение с моторами Таким образом, теория соединяется с практикой, и hardware соединяется с software

27 © 2012 MIPS Technologies, Inc. All rights reserved. At the core of the user experience ® Спасибо! MIPS, MIPS32, MIPS64, MIPS-Based, MIPS-Verified, MIPS Technologies logo are trademarks of MIPS Technologies, Inc. and registered in the U.S. Patent and Trademark Office. MIPS, MIPS32, MIPS64, MIPS-Based, MIPS Logo, MIPS Technologies Logo, Aptiv, microAptiv, interAptiv, proAptiv, CorExtend, Pro Series, microMIPS, M14K, M4K, 4KE, 4KEc, 24K, 24KE, 34K, 74K, 1004K, 1074K, MIPS Navigator, and FS2 are trademarks or registered trademarks of MIPS Technologies, Inc. in the United States and other countries.