Компания toshiba выпустила новый микроконтроллер tmpm375fsdmg на ядре arm cortex-m3

Микроконтроллеры GIGADEVICE. Инструкция по освоению

Статья была опубликована в журнале Компоненты и технологии №7 2017 г.
Хафизов Даян, Смирнов Григорий

На сегодняшний день рынок 32-битных микроконтроллеров на основе ядра Cortex-M3 довольно широк. Популярностью у разработчиков цифровых устройств на основе микроконтроллеров пользуется продукция таких производителей, как Microchip, ST Microelectronics, NXP и т.д.

Однако, недавно появился еще один производитель, готовый составить им конкуренцию – GigaDevice со своей линейкой микроконтроллеров GD32.

В данной статье будет рассказано о микроконтроллерах GD32, приведено сравнение с ближайшим конкурентом, а также представлены примеры работы с одним из представителей семейства GD32 в популярной IDE Keil MDK-ARM.

Рисунок 1. Логотип компании GigaDevice

Компания GigaDevice (рис.1) была создана в 2005 году в Пекине и вышла на китайский рынок с микросхемами памяти. В 2008 году GigaDevice начали выпуск микросхем памяти SPI NOR FLASH с напряжением питания 3,3 В по технологии 180 нм. Примечателен тот факт, что это первая полностью самостоятельная разработка в Китае.

За последующие 5 лет GigaDevice укрепили свои позиции на рынке микросхем памяти и значительно улучшили технологии производства, быстро осваивая более высокие технологические нормы.

Сейчас компания производит SPI NOR FLASH с напряжением питания 1,8 В по технологии 65 нм и занимает третье место в мире по объемам продаж в сегменте микросхем энергонезависимой памяти с объемом производства более 1 млрд микросхем в год.

Компания GigaDevice в высокой степени сконцентрирована на инженерной работе, так в компании больше половины состава сотрудников – инженеры. Кроме этого, у компании GigaDevice более 100 патентов и около 500 заявок на патенты.

В 2013 году компания GigaDevice приобрела лицензию на ядро ARM Cortex-M3 и объявила о начале производства собственных 32-битных микроконтроллеров GD32. Внешнее сходство и сходство в наименованиях с микроконтроллерами от ST Microelectronics подталкивает к мысли о полном «копировании», но это не так. Несмотря на идентичность в расположении контактов и схожесть характеристик, отличия между GD32 и STM32 есть:

  • рабочая частота до 108 МГц для семейства GD32F1 (у STM32F1 до 72 МГц),
  • объем FLASH памяти до 3 Мб (у STM32F2 не более 1 Мб),
  • объем оперативной памяти до 256 Кб (у STM32 не более 128 Кб),
  • и проч.По сравнению с «одноклассником» STM32F1, микроконтроллеров GD32F1 обладают лучшим набором характеристик. В случае, когда не хватает flash-а для программы или хранения данных, или же не хватает быстродействия, оптимально использовать GD32F1. Также большим плюсом GD32 является более низкая, нежели у конкурентов, цена.

Конечно, микроконтроллеры GD32 не лишены своих слабых мест. Так, например, для начала работы требуется установка специального AddOn для IDE Keil, а объем технической документации на сайте производителя пока что не дотягивает до STM32, но тем не менее это не является серьезным препятствием на пути освоения микроконтроллеров GD32.

Ну что же, плюсы и минусы есть у всех. Проверим работоспособность микроконтроллеров GD32 на реальном железе. Возьмем отладочную плату GD32103E-EVAL (рис. 2) и рассмотрим несколько простых примеров.

Рисунок 2. Внешний вид отладочной платы GD32103E-EVAL

Начало начал. Помигаем светодиодами.
Несмотря на то, что микроконтроллеры GD32 и STM32 не являются абсолютно идентичными устройствами, они являются совместимыми как по выводам, так и по карте регистров в рамках одного семейства.

Следовательно, микроконтроллер GD32F103ZET6 будет совместим по выводам с STM32F103ZET6. Таким образом, мы можем воспользоваться популярным среди разработчиков генератором исходного кода STM32CubeMX для создания демонстрационного проекта (рис. 3).

В данном случае, ключевым отличием GD32F103ZET6 от «собрата» STM32F103ZET6 являются максимальная частоте работы ядра: 108 МГц у GD, против 72 МГц у STM. Также отметим, что микроконтроллеры серии GD32F103 могут иметь до 3 Мб встроенной Flash памяти против 1 Мб у STM32.

Это может стать решающим преимуществом GD32F103 перед STM32.

Рисунок 3. Окно STM32CubeMX. Настройка портов ввода/вывода

Для начала помигаем светодиодами на отладочной плате. Заведены они контакты PF0-PF3. По рекомендации производителя для тактирования будем использовать внешний кварцевый резонатор на 8 МГц (OSC_IN – 23 контакт, OSC_OUT – 24 контакт).

Внутренняя схема тактирования у GD32 отличается от STM32. Во время включения требуется больше времени для стабилизации частоты, поэтому необходимо изменить настройки RCC (рис.

4): задержку ожидания готовности HSE STARTUP TIMEOUT надо приравнять 0xFFFF (у STM32F1xx равен 0x0500).

Рисунок 4. Настройки RCC для GD32F10x

Далее генерируем исходный код для Keil. После установки AddON-ов от GigaDevice в закладке Device появилась возможность выбрать MCU GD32 (рис. 5). В нашем случае выбираем GD32F103ZE.

Рисунок 5. Конфигурирование Keil для работы с GD32

В файле main.c добавляем в цикл: HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_1); HAL_Delay(1000); HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_0); HAL_Delay(1000);

Затем собираем проект и приступаем к «прошивке» контроллера. На отладочной плате GD32103E-EVAL уже присутствует программатор GD-Link (так же, как и почти на всех отладочных наборах у STM).

Так что после установки утилиты от GigaDevice, можем прошивать микроконтроллер и заниматься отладкой программы из Keil. В закладке Debug выбираем CMSIS-DAP Debugger (рис. 6) и в настройках указываем определившийся адаптер (рис. 7).

Жмем «OK», прошиваем контроллер, перезапускаем контроллер, наблюдаем за двумя мигающими светодиодами ☺.

Рисунок 6. Настройка программатора

Рисунок 7. Окно выбора режима программатора

Итак, пока получается, что мало того, что для работы с GD32 можно использовать программное обеспечение от STM, так еще и библиотека HAL корректно работает. Работа с UART, АЦП и таймерами. Светодиодами помигали, теперь сделаем что-то посерьезнее. Будем снимать данные с АЦП и передавать их в UART. И делать это будем через прерывание от таймера.

Сделаем новый проект в STM32CubeMX. UART заведем на контакты PA9 (TX) и PA10 (RX), на PC3 заведем вход АЦП (рис. 8).

Рисунок 8. Конфигурирование входов-выходов для работы с UART и АЦП

Настроим UART как показано на рис. 9. Для этого перейдем на вкладку Configuration и выберем USART1.

Рисунок 9. Настройки UART

Также настроим ADC. Большая часть настроек остается по умолчанию.

Рисунок 10. Настройка АЦП

АЦП на входе PC3 подключен к потенциометру на 10 кОм (рис. 11). В новом проекте будем снимать значение напряжения с АЦП. Опрос АЦП будем производить в прерывании от таймера TIM6.

Рисунок 11. Подключение потенциометра к контакту РС3

Перейдем на вкладку Clock Configuration. В данном случае воспользуемся настройкой тактирования ядра и периферии, установленными по умолчанию: ядро тактируется частотой 48 МГц, тактирование периферии конфигуратор рассчитает автоматически (рис. 12).

Рисунок 12. Настройки тактирования

Рисунок 13. Конфигурирование таймера TIM6

Таймер TIM6 сконфигурируем так, чтобы прерывание от него срабатывало 1 раз в секунду. Поскольку периферия тактируется с частотой 48 МГц, то для получения периода в 1 секунду значение предделителя приравниваем к 47999, а регистр счетчика – к 999 (рис. 13). Сгенерируем проект и откроем его в Keil.

Все обработчики прерываний находятся в файле stm32f1xx_it.c. Находим обработчик прерывания от таймера TIM6 и вставляем туда функцию отправки данных в UART, как на рис. 14. HAL_UART_Transmit – функция HAL для отправки данных в UART, сгенерированная STM32CubeMX.

Эта и другие функции HAL для UART находятся в файле stm32f1xx_hal_uart.c

transmitBuffer – в данном случае массив, который мы объявили глобально и в который просто записали строчку, которую хотим передавать в UART.

Рисунок 14. Обработчик прерываний TIM6. Отправка данных в UART.

Для опроса АЦП задействуем таймер TIM3. Опрос АЦП сделаем в обработчике прерывания от таймера TIM3. В обработчике прерывания от таймера TIM3 запускаем АЦП, ждем окончания преобразования, складываем полученное значение отсчетов АЦП в переменную и останавливаем работу АЦП (рис. 15).

Рисунок 15. Код обработчика прерываний TIM3 для работы АЦП

Далее, заходим в обработчик прерывания от таймера TIM6, где у уже есть функция отправки данных в UART и добавляем отправку данных от АЦП, пересчитанных в вольты, как на рисунке 16.

Рисунок 16. Код обработчика прерываний TIM6

Подключив UART с микроконтроллера к компьютеру через преобразователь UART-USB, посмотрим на данные через терминал (в данном случае, terminal v1.9b). Изменяя положение регулятора на потенциометре, видим, как меняются измеренные значения с АЦП (рис. 17).

Рисунок 17. Вывод измеренных значений с АЦП

Заключение

Еще раз отметим, что микроконтроллеры GD32 – это не подделка под STM32 и не безымянный контрафакт, а полноценный микроконтроллер на Cortex-M3, предназначенный для разработки высокопроизводительных и надежных устройств.

Совместимость инструментов и библиотек, предназначенных для работы с микроконтроллерами STM32, позволяет довольно легко начать процесс изучения и запустить новые разработки на GD32.

Высокая степень «железной» совместимости между соответствующими семействами микроконтроллеров от GigaDevice c микроконтроллерами от ST Microelectronics позволяет создавать более гибкие по функциональности устройства, а так же не сильно зависеть от одного производителя.

Необходимо учесть отличия в конфигурации отдельной периферии и тактирования.
В сочетании с бОльшим объемом встроенной flash-памяти и более высокой максимальной частотой микроконтроллеры GD32 открывают для разработчика возможности расширить функционал уже существующих устройств и задуматься об увеличении производительности в новых разработках.

Литература

  1. GD32103E-EVAL User Manual
  2. GD32F103xx DATASHEET Rev. 2.2
  3. UM1718 User manual. STM32CubeMX for STM32 configuration and initialization C code generation. Rev.20
  4. UM1850 User manual. Description of STM32F1xx HAL drivers. Rev.1
  5. User Manual GD-Link Adapter. Rev.1
  6. GD32F103xx – AN001. Software Migration Guide.

Источник: https://e-components.ru/articles/-KuZgwuyqane-L15UYOo

TOSHIBA развивается TMPM36BFYFG, NEW Cortex ™-M3 CORE-НА ОСНОВЕ микроконтроллера

Toshiba объявила последнее дополнение к своей серии TXO3 ARM® ядро ​​на основе микроконтроллеров, TMPM36BFYFG.Новое устройство улучшает основные характеристики и сокращение энергопотребления на 2/3, что из Toshiba’ с предыдущими продуктами.Массовое производство начнется в ноябре, 2013.

Развитие фоне:Toshiba started  первый Cortex™-M3 основе микроконтроллера, TMPM330FDFG в 2009 году.С тех пор компания была сосредоточена на разработке товарных групп, которые включают конкретные проекты для различных applications.

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

Особенности:В дополнение к стандартным периферийным усовершенствования IP, TMPM36BFYFG потребляет всего 2/3 от потребляемой мощности эквивалентной продукции, в результате обзора внутреннего дизайна.TMPM36BFYFG могут способствовать сокращению потребления энергии всей системы через шину оптимизации архитектуры.

Новый микроконтроллер является идеальным контроллером для бытовой техники, инструментов управления и подсистем компьютерной периферии, оргтехники и автоматизированное оборудование завода, так как он оснащен богатым интерфейсом связи, многоцелевой таймер для управления двигателем иIGBT управления.

Toshiba будет расширять свою линейку специализированных продуктов с новым устройством.Приложения:Бытовая техника, медицинское оборудование, компьютерная периферия, мониторы, средства связи, принтеры, пункт-продажи терминалов, дом энергией системы управления и промышленного оборудования являются лишь немногие из потенциальных примененийиз TMPM36BFYFG.

Структура и Features

Продукт номерПример price(включая налоги)Начало производства timeРасписание производства quantityГлавная specificationsNote
TMPM36BFYFG
500 yen
Ноябрь 2013
Один миллион за month
  • CPU: Cortex™-M3
  • Максимальная рабочая частота: 80 МГц
  • On-чип памяти: Flash 256Kbytes, SRAM 66Kbytes
  • Связь I / F: I 2 C / SiO 3 канала, SIO / UART 4 ​​канала, полный UART 2 канала, SPI 3 канала
  • DMA: 32 каналов (2 единицы)
  • 16-битных таймера: 8 каналов
  • Многоцелевой таймер: 4 канала (трехфазный ШИМ-управления и управления IGBT)
  • АЦП: 12-бит последовательного приближения типа 16 каналов (1µ сек преобразование)
  • Удаленный прием управление: 1 канал (блок приема поддерживается)
  • Внешняя шина памяти: есть (мультиплекс соединение 8 bit/16 бит)
  • Часы реального времени: 1 канал
  • Сторожевой таймер: 1 канал
  • Напряжение питания: 2,7 В через 3,6 В (однапитания)
  • Упаковка: LQFP100 (14мм × 14 мм, 0.5 мм шаг)
DMA: Direct Memory Accessрассчитывается размер 1KB является 1024bytes.

Для получения дополнительной информации об этом продукте, посетите следующие ссылки:

http://www.semicon.toshiba.co.jp/eng/product/micro/selection/new_product/1268080_12394.html

Контактные анкеты для клиентов:Отдел маркетинга.MIXED CONTROLLER SIGNAL GROUP
Tel: 81-44-548-2821

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

Оригинальный текст:
TOSHIBA DEVELOPS THE TMPM36BFYFG, A NEW CORTEX™-M3 CORE-BASED MICROCONTROLLER

Toshiba today announced the latest addition to its TXO3 series of ARM® core-based microcontrollers, the TMPM36BFYFG. The new device improves on basic performance and cuts power consumption to 2/3 that of Toshiba’s previous products. Mass production will begin in November, 2013.

Development background:Toshiba started its first Cortex™-M3 core-based microcontroller, TMPM330FDFG, in 2009. Since then, the company has focused on developing product groups that incorporate specific designs for a variety of applications.
As the functionality and performance of embedded applications has improved, the need for designs offering memory scalability, rich interface functions and lower power consumption has grown.Features:In addition to standard peripheral IP enhancements, TMPM36BFYFG consumes only 2/3 of the power requirements of equivalent products, the result of a review of the internal design. The TMPM36BFYFG can contribute to reducing energy consumption of the entire system through bus architecture optimization. The new microcontroller is an ideal system controller for home appliances, control instruments and the sub-systems of computer peripherals, office automation equipment and automated factory machinery, as it is equipped with a rich communications interface, a multi-purpose timer for motor control and IGBT control. Toshiba will expand its line of dedicated products with the new device.Applications:White goods, health-care equipment, computer peripherals, monitors, communication equipment, printers, point-of-sale terminals, home energy management system and industrial machinery are just a few of the potential applications of the TMPM36BFYFG.

Outline and Features

Product numberSample price(included tax)Production start timeSchedule production quantityMain specificationsNote
TMPM36BFYFG
500 yen
November 2013
One million per month
  • CPU: Cortex™-M3
  • Maximum operating frequency: 80MHz
  • On-chip memory: Flash 256Kbytes, SRAM 66Kbytes
  • Communication I/F: I2C/SIO 3 channels, SIO/UART 4 channels, Full UART 2 channels, SPI 3 channels
  • DMA: 32 channels (2 units)
  • 16-bit timer: 8 channels
  • Multi-purpose timer: 4 channels (Three-phase PWM control and IGBT control)
  • AD converter: 12-bit successive-approximation type 16 channels (1µsec conversion)
  • Remote control reception: 1 channel (block reception supported)
  • External memory bus: available (multiplex connection 8 bit/16 bit)
  • Real-time clock: 1 channel
  • Watchdog timer: 1 channel
  • Power-supply voltage: 2.7V through 3.6V (single power supply)
  • Package: LQFP100 (14mm × 14mm, 0.5mm pitch)
DMA: Direct Memory AccessThe calculated size for 1KB is 1024bytes.

For more information on this product, visit the following links:

http://www.semicon.toshiba.co.jp/eng/product/micro/selection/new_product/1268080_12394.html

Contact for questionnaire from customers:MARKETING DEPT. MIXED SIGNAL CONTROLLER GROUP
Tel: +81-44-548-2821

Information in this document, including product prices and specifications, content of services and contact information, is current on the date of the announcement but is subject to change without prior notice.

Источник: http://news.instore.kz/2013/04/19173

Karma-SAM3S. Осваиваем ARM Cortex-M3

Описание 

Karma-SAM3S представляет собой квадратную плату размером 84×84 мм. На ней установлен микроконтроллер AT91SAM3S4B фирмы Atmel и вся необходимая для него “обвязка” – стабилизаторы напряжения, кварцевый резонатор, JTAG разъем и т.д.

Также на плате есть несколько компонентов для начального знакомства с периферией микроконтроллера – две пользовательские кнопки, два светодиода, потенциометр подключенный к АЦП, бузер, источник опорного напряжения, USB-UART преобразователь, разъем для microSD карт.

 

Помимо этого на плате есть разъемы для подключения модулей – это UEXT разъем фирмы Olimex и MicroBus разъем фирмы Microelectronika. На этих разъемы выведены все широко используемые интерфейсы – I2C, SPI, UART. 

Для обоих разъемов существует широкая номенклатура модулей, начиная от простых интерфейсных модулей (RS-485, CAN и т.д.) и заканчивая GPS, GSM модулями. Это позволяет расширять возможности платы, быстро осваивать работу с различной периферией, а также собирать макеты устройств. Список модулей для MicroBus разъема можно посмотреть на сайте Microelectronika.

Список модулей для UEXT разъема можно посмотреть на сайта Olimex.

Пользовательские выводы микроконтроллера AT91SAM3S4B сгруппированы на 10-и контактные разъемы типа IDC. Посадочные места под разъемы оставлены пустыми, чтобы пользователь мог запаять то, что ему необходимо – штыри или гнезда.

 

9 и 10 выводы каждого разъема подключен к цепям питания. С помощью запаиваемого джампера 9-ый вывод разъемов можно подключить либо к 3.3 В, либо к 5В.

Под такую конфигурацию разъемов у фирмы Microelectronika тоже существуют различные периферийные модули. 

Все интерфейсные разъемы расположены таким образом, чтобы попадать контактами в сетку c шагом 2.54 мм. Это позволяет размещать над или под платой Karma-SAM3S так называемый шилд (макетное поле).

Например так.

Или так. 

Питание 

На плате организованы две шины питания – 3.3 В и 5 В. Напряжение 3.3 В необходимо для работы микроконтроллера, 5 В используется для USB-UART преобразователя. Также оба этих напряжения подаются на разъемы модулей (MicroBus, UEXT) и разъемы портов ввода-вывода.

 Питание на плату можно подавать несколькими способами:- через разъем адаптера, 
– через клеммник, 
При питании платы через адаптер или клеммник входное напряжение должно быть около 7 – 9 В. Если 5-и вольтовое напряжение на плате не используется, напряжение питания можно понизить до 5 В.

Полярность входного напряжения не играет роли, потому что перед стабилизаторами установлен диодный мост.Напряжение с USB разъемов подается на стабилизаторы через перемычки. Поэтому для работы от USB они должны быть установлены. При питании от USB 5-и вольтовая шина будет иметь напряжение ~4.5 В.

Это связано с тем, что источники напряжения подключены к шинам питания платы через диоды, на которых падает часть входного напряжения. Для включения или выключения платы используется движковый переключатель, а для индикации наличия напряжения – два светодиода. 

Прошивка

Микроконтроллер на плате можно прошивать двумя способами:- с помощью встроенного загрузчика (бутлоадера), 
– с помощью JTAG отладчика. Первый способ хорош тем, что не требует никакого дополнительного оборудования. Достаточно подключить плату с помощью USB разъемов к компьютеру и запустить загрузчик.

 Загрузчик хранится в постоянной памяти микроконтроллера и его нельзя стереть. Однако для того, чтобы его активировать, нужно подать на плату KARMA-SAM3 питание, предварительно зажав кнопку ERASE. Микроконтроллер сбросит специальный бит, который определяет источник загрузки, и при следующем запуске передаст управление загрузчику.

Для выполнения самого процесса записи можно использовать одну из программ – SAM-BA или BOSSA. При наличии JTAG отладчика удобство программирования, конечно повышается. Кроме того у нас появляется возможность в прямом смысле видеть все содержимое микроконтроллера и отлаживать программу по шагам.

В качестве JTAG отладчика можно использовать фирменный, но дорогой SAM-ICE.

Или его бюджетный китайский аналог – J-Link. 

Подробнее о процессе программирования я расскажу в следующих постах.

Среда разработки 

Для написания программ можно использовать бесплатную фирменную среду Atmel Studio 6. В составе Atmel Studio 6 есть большое количество библиотек и драйверов для микроконтроллера SAM3S. Это существенно облегчает начальное знакомство с ARM микроконтроллером.

 При наличии аппаратного JTAG отладчика студия позволяет отлаживать код по шагам и видеть содержимое памяти и регистров микроконтроллера. 

Для любителей хардкора есть IAR ARM. Эта платная среда разработки, но существует бесплатная версия с ограничением по коду.

Для начального знакомство с ARM микроконтроллером этого вполне достаточно. 

Заказ

Если вас заинтересовала плата Karma-SAM3S, вы можете сделать заказ через форму обратной связи. Стоимость платы составляет 1550 рублей без учета доставки. В комплектацию входит – собранная плата, джамперы, 4 стойки с гайками и антистатическая упаковка.

 Шилд (макетное поле) стоит 150 рублей. Плата делается под заказ, поэтому время выполнения заявки 1-2 недели.Оплата наличными на руки или с помощью электронных платежей (Яндекс. Деньги, WebMoney, PayPal).Доставка от 200 рублей.

По Москве курьером, в другой город почтой.  

Заключение

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

У вас недостаточно прав для комментирования.

Источник: http://chipenable.ru/index.php/item/213

Отечественные микроконтроллеры с ядром ARM Cortex-M3

АктуальностьСтоимостьПродолжительностьГруппаНачало занятий
Идёт набор
43 000 руб
72 часа
от 3 до 10 человек
По мере формирования группы

  Записаться на курс

Программа направлена на изучение высокопроизводительных 32-разрядных микроконтроллеров дизайн.центра ЗАО «ПКК Миландр» и их применения при разработке встроенных систем.

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

Основные характеристики микроконтроллера – тактовая частота до 80 МГц , производительность — 1,25 DMIPS/МГц, 128 кб Flash .памяти программ и 32 кб ОЗУ.

В ядре Cortex.M3 реализованы следующие функции – блок аппаратной защиты памяти от несанкционированного доступа, умножение за один цикл, аппаратная реализация деления (32 бита/32 бита).

 Контроллер внешней системной шины позволяет работать с внешними микросхемами статического ОЗУ и ПЗУ, NAND Flash памятью и другими периферийными устройствами

В программе рассматриваются особенности архитектуры микроконтроллеров, изучаются:

  • структура микроконтроллеров и подсистема памяти;
  • подсистемы ввода-вывода и прерываний;
  • интерфейсы и периферийные узлы микроконтроллеров,

а также система команд, вопросы программирования и программно-аппаратные средства разработки программного обеспечения микроконтроллеров.

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

Теоретический курс сопровождается практическими занятиями на базе отладочной  платформы 1986EvBrd .

Учебный план

№ п/пНаименование разделовВсего часовВ том числеЛекцииПрактические и лабораторные занятияСамостоятельное изучениеПроверка знаний
1 Общая характеристика семейства 1986ВЕ9х и его архитектурные особенности 2 2
2 Процессорное ядро ARM Cortex-M3 2 2
3 Структура микроконтрол-лера 1986ВЕ9х 2 2
4 Регистровая модель микро-контроллера 1986ВЕ9х 2 2
5 Подсистема памяти микро-контроллера 1986ВЕ9х, блок защиты памяти 2 2
6 Подсистема питания, тактирование микроконт-роллера 1986ВЕ9х, PLL 4 2 2
7 Система команд микро-контроллера  1986ВЕ9х 2 2
8 Средства отладки программ-много обеспечения, инте-грированная среда Keil µVision4, платформа    1986EvBrd 4 2 2
9 Порты ввода-вывода ми-кроконтроллера 1986ВЕ9х. Обмен информацией через порты ввода-вывода. 4 2 2
10 Подсистема прерываний, контроллер векторных пре-рываний 4 2 2
11 Организация прямого до-ступа к памяти. Контроллер DMA.  4 2 2
12 Внешняя системная шина микроконтроллера 1986ВЕ9х. 4 2 2
13 Таймеры. Формирование импульсных последователь-ностей с заданными пара-метрами.  6 2 4
14 Широтно-импульсные моду-ляторы. Организация управ-ления двигателем. 4 2 2
15 Аналого-цифровые и цифро -аналоговые преобразователи. Организация сбора и выдачи аналоговой информации. 4 2 2
16 Контроллер UART. Обмен информацией по интер-фейсу RS-232. 4 2 2
17 Последовательные интерфейсы SSP, I2C 4 2 2
18 Интерфейс USB, контрол-леры USB Device, USB Host 6 2 4
19 Интерфейс CAN 4 2 2
Итоговая аттестация 4 зачет
Итого 72 38 30 4

Контактная информация

Запись на курс

Источник: http://www.eltech.ru/ru/povyshenie-kvalifikacii/programmy/shemotehnika-priborostroenie-i-informacionno-izmeritelnye-tehnologii/mikrokontrollery-mikroprocessory/otechestvennye-mikrokontrollery-s-yadrom-arm-cortex-m3

Знакомство с ARM Cortex-M3 и с STM32, в частности

Пожалуй, большинство эмбеддерщиков и просто интересующихся встроенными системами уже слышали про процессоры . Их устанавливают в промышленное оборудование, в смартфоны и аудио-плееры, в видеотехнику, да много ещё куда.

Популярность ARM во многом обеспечена их хорошей производительностью при низком энергопотреблении, что делает их идеальными для применения в различных мобильных устройствах. ARM расшифровывается как Advanced RISC Machines. — это архитектура процессоров с “сокращённым” набором команд, ныне одна из наиболее распространённых.

Между прочим, микроконтроллеры AVR, используемые в Arduino, имеют архитектуру RISC.

Существует современное семейство ARM под названием Cortex, которое делится на три подсемейства:

  • Cortex-A
    Это полноценные процессоры общего назначения для самых различных задач. Самое известное устройство на базе их — это iPhone.
  • Cortex-R
    Предназначены для систем реального времени, где существует необходимость в быстрой и точной реакции на внешние события с гарантированным временем отклика — для применений в промышленности, медицине, автомобилестроении и пр.
  • Cortex-M
    Микроконтроллеры, уже известная нам по AVR область. Как обычно, это не очень быстрый процессор, но со встроенной памятью для программ (flash), оперативной памятью (SRAM) и различной периферией — такой, как GPIO (порты ввода-вывода), UART, SPI, I2C и т.д.

Эта статья, как и последующие в цикле (да, это будет цикл статей), сконцентрируется на самом популярном виде Cortex-M в наши дни — Cortex-M3. Микроконтроллеры этого семейства выпускают несколько компаний — например, ST Microelectronics, NXP, Atmel, Texas Instruments. Надо сказать, что с ARM вообще и Cortex-M3, в частности, ситуация с производством отличается от привычной: компания ARM Limited занимается только разработкой архитектуры и средств разработки (компиляторов и IDE), но сама процессоры не производит, а продаёт лицензии другим компаниям — вышеперечисленным, например. При этом гарантируется совместимость кода на уровне инструкций процессора — это значит, что можно разрабатывать ПО под процессоры различных производителей, пользуясь одним и тем же компилятором.

Чем же Cortex-M3 круче других микроконтроллеров? Много чем:

  • Полностью 32-битная архитектура: все регистры 32-битные, арифметические операции работают с 32-битными данными; умножение 32 x 32 -> 32 выполняется за 1 такт, деление — за 2-12 тактов. Благодаря этому CM3 за то же время успевает сделать больше, чем 8-ми и 16-битные МК.
  • Большое количество (от 16) регистров общего назначения, характерное для архитектуры RISC. Так как регистры работают на частоте процессора, а RAM — на меньшей, всегда предпочтительнее работать с данными в регистрах, а чем их больше, тем дольше можно обходиться без использования RAM. Тут соперничать c CM3 могут разве что AVR.
  • Отличная поддержка режимов энергосбережения. Можно отправить в спячку как весь МК, так и отдельные его подсистемы.
  • 24-битный таймер SysTick
    Этот таймер без ШИМ (PWM), зато 24-битный: можно задавать интервал срабатывания в широких пределах, не особо парясь. Самое то для организации конечных автоматов и планировщика RTOS.
  • Полноценная отладка по JTAG или SWD даже на младших кристаллах. Полноценная — значит, можно ставить точки останова (breakpoints), просматривать содержимое переменных и регистров, выполнять программу пошагово и т.п.
  • NVIC — Nested Vectored Interrupt Controller
    Контроллер прерываний, который поддерживает до 240 прерываний на все случаи жизни, до 256 их приоритетов, и обеспечивает быструю реакцию на прерывания.
  • Контроллера DMA — Direct Memory Access
    Очень полезная вещь — позволяет периферии (UART, SPI, I2C и пр.) читать/писать дынные в RAM без участия МК. То есть, можно дать задание контроллеру DMA считать в указанный буфер 100 байт по SPI, и эта задача будет выполняться в фоне, не загружая МК.
  • Высокая плотность кода. Для большинство более-менее сложных проектов размер кода будет меньше, чем для многих других МК. Это достигается за счёт специально разработанного для этих целей набора инструкций . Меньше размер кода — больше кода влезет в МК.
  • Общая ориентированность набора инструкций на компиляторы C — например, наличие команд для табличных переходов (для swicth/case), битовых манипуляций (PORTA |= (1 память, память->периферия, периферия>память и периферия>периферия.
  • Несколько 16-битных таймеров с произвольными делителями (не только степени двойки, как в AVR), которые умеют генерировать прерывания по переполнению, по сравнению, генерировать ШИМ, измерять длину и число входящих импульсов, запускать ЦАП, и даже автоматически считать импульсы с энкодеров и датчиков Холла!
  • NVIC, помимо всего прочего, поддерживает до 20 прерываний от внешних источников.
  • Модуль RTC (Real-Time Clock) — часы реального времени с счётчиком и будильником.
  • Несколько Watchdog-таймеров для пущей надёжности.
  • FSMC — Flexible Static Memory Controller
    Обеспечивает прозрачный доступ к нескольким видам памяти — SRAM, ROM, NOR Flash, NAND Flash, PSRAM и 16-битным PC Card-совместимым устройствам.
  • SDIO — Secure Digital I/O interface
    Делает львиную долю работы по чтению/записи на карты памяти MMC и SD, что даёт возможность легко и просто прикрутить поддержку FAT и полноценно работать с файлами на карточках.
  • USB
    Полная поддержка стантарта USB 2.0 Full-speed, до 8 эндпоинтов.
  • USB OTG (On-The-Go)
    Эта технология позволяет связывать USB-устройства с её пооддержкой без участия хоста — например, цифровую камеру с принтером.
  • Ethernet, MAC-уровень
    Ага, можно связываться с компом по локальной сети. С внешней PHY-микросхемой может выжимать 10/100 Мбит/с.
  • Шина I2S — шина цифровой связи аудио-устройств.
  • Ну, и стантдартный набор: UART, SPI, I2C, CAN.

Во-вторых, у STM32 очень хорошая структурированная документация:

  • Один Reference manual с описанием всей периферии на всю линейку STM32F10x
  • Подробная документация по каждой отдельной серии МК — распиновка, корпуса, наименование и т.п.
  • Приличное количество аппноутов (Application Notes) — рекомендаций по применению: правильный подбор источника тактирования, питания, примеры работы с LCD, SD-картами, RTC и многое другое.

В-третьих, совместимость — и по расположению ног на кристалле, и по коду. То есть, если не хватает производительности, Flash, RAM или периферии, то можно без модификации кода и без переделки платы просто поставить на плату МК пожирнее с тем же количеством ног.

В-четвёртых, цена. Самый младший камень из серии — STM32F100C4T6B — можно купить за 1-2 $, при этом он имеет 48 ног, 16 КБ Flash, 4 КБ SRAM и может работать на частоте 24 МГц, ну и UARTы и прочие интерфейсы в наличии.

То есть, он круче, чем стандартный для Arduino контроллер ATmega168. Конечно, 48 ног — это не DIP-корпус, а TQFP: в макетку или в панельку его не воткнёшь, нужно плату разводить.

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

Ну, и наконец, платы вроде Arduino для быстрого освоения у ST тоже имеются, и начнём мы изучать STM32 с одной из них — :

Так что, если кто не силён в пайке, расслабьтесь. В этой плате есть встроенный отладчик ST-Link, так что вы сможете вкусить всю прелесть полноценной отладки, для которой к AVR пришлось бы докупать AVRDragon за 70$.

В общем, STM32 — это выбор редакции, однозначно. Теперь о цикле статей. Если коротко, то цель цикла — описать STM32F10x вдоль и поперёк. А, если длинно, мы с вами:

  • Изучим всю периферию линейки со всеми режимами работы.
  • Познаем всю прелесть и сложность работы с прерываниями.
  • Научимся разным полезным программерским трюкам и приёмам.
  • Подтянем свои знания языка C.
  • Научимся комбинировать полученные знания и к концу курса сделаем хотя бы одно относительно сложное устройство (уровня MP3-плеера).

Кто хочет прокачаться в программировании МК, у кого есть стальные яйца воля к победе, кто не боится трудностей — ждите продолжение, оно скоро будет. Заряжайте свои мечи, падаваны (:

Источник: http://robocraft.ru/blog/ARM/644.html

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}