Микроконтроллеры ARM. Начало.

Время идёт своим чередом. Пришла пора осваивать микроконтроллеры ARM. Я думаю к такому выводу приходят большинство увлечённых эмбеддеров. Действительно , если рассматривать цены на сами микроконтроллеры ARM и на средства их разработки и отладки, то становится очевидным, что на данный момент они в плане возможности/цена уже во многом превосходят популярные AVR и PIC. В то же время я не являюсь ортодоксальным воителем за микроконтроллеры ARM — всё-таки своя ниша у 8-ми разрядных чипов есть, и останется, думаю, в ближайшее время. Зацикливаться на определённом семействе ARM я не планирую, однако распыляться тоже не буду. Для работы и освоения в качестве основных я выбрал семейство LPC2000 (ARM7 TDMI), STM32F100R, LPC1343, LPC1114(Cortex M3). Выбор обусловлен тем, что большинство из средств разработки мне досталось, в общем, на халяву 🙂
Плату LPCXpresso с LPC1343 на борту мне презентовал товарищ DI HALT.
(ARM 32-bit Cortex-M3 Microcontroller with MPU, CPU clock up to 72MHz, 32kB on-chip Flash ROM with In-System Programming (ISP) and In-Application Programming (IAP), 8kB SRAM, USB 2.0 Full-speed Device Controller with On-chip PHY, Nested Vectored Interrupt Controller, AHB Matrix, APB,UART with full Modem Interface and RS485 Support, SSP, I2C, 10-bit ADC with 8 channels, High-current Output Driver (20mA) on One Pin, High-current Sink Drivers (20mA) on Two I2C Pins,Four Timers with capture/compare, Watchdog Timer, System Tick Timer, Power-On Reset, Power Management Unit, Crystal oscillator, 12MHz internal RC oscillator, PLL, JTAG and Serial Wire Debug/Trace Port with ETM, Up to 42 General purpose I/O pins)

Аналогичная, но с LPC1114, мне досталась в виде семпла от компании NXP.
 (ARM 32-bit Cortex-M0 Microcontroller with MPU, CPU clock up to 50MHz, 32KByte on-chip Flash ROM with In-System Programming (ISP) and In-Application Programming (IAP) via 12KByte On-Chip Bootloader, 8KByte SRAM, lower power variant supporting the Power Profile SW API. Nested Vectored Interrupt Controller, up to 2 SSP controllers, UART with full Modem Interface and RS485 Support, Fast Mode I2C-Bus, 4 Timers with 4 capture channels and 13 output channels, Watchdog (WDT), Sytem tick timer, 10-bit ADC with 8 channels, Power Management Unit (PMU), Brownout detection, 12MHz internal RC oscillator, and Serial Wire Debug.)

STM32 Discovery с STM32F100RB презентовали от EBV Elektronik, опять таки в виде семпла.

(ARM 32-bit Cortex-M3 Microcontroller, 24MHz, 128kB Flash, 8kB SRAM,
PLL, Embedded Internal RC 8MHz and 40kHz, Real-Time Clock,
Power Saving Modes, JTAG and SWD,
7-channel DMA, Nested Interrupt Controller,
12-bit 16-ch A/D Converter, 2 12-bit 2-ch D/A converters, 51 Fast I/O Ports,
2 SPI, 2 I2C, 3 USART, CRC calculation unit,
SysTick Timer, 2 Watchdog Timers,
16-bit 6-ch advanced timer with PWM,
6 16-bit Timers with Input Capture, Output Compare and PWM)

Модуль с LPC2148 я прикупил на evodbg

(ARM7TDMI-S based high-performance 32-bit RISC Microcontroller with Thumb extensions 512KB on-chip Flash ROM with In-System Programming (ISP) and In-Application Programming (IAP), Two 8-ch 10bit ADC
32KB RAM, Vectored Interrupt Controller,
Two UARTs, one with full modem interface.
Two I2C serial interfaces, Two SPI serial interfaces
Three 32-bit timers, Watchdog Timer,
Real Time Clock with optional battery backup,
Brown out detect circuit
General purpose I/O pins.
CPU clock up to 60 MHz, On-chip crystal oscillator and On-chip PLL)

Там же приобрёл JTAG программатор-отладчик JetLink8.

  • USB 2.0 интерфейс
  • Поддерживает все ARM7/ARM9/ARM11, Cortex-M0/M1/M3, включая Thumb режим.
  • Поддерживает Serial Wire Debug (SWD)
  • Поддерживает Serial Wire Viewer (SWV)
  • Автоматическое распознавание ядра
  • Скорость JTAG до 12 MHz
  • Скорость загрузки до 720 КБайт/сек
  • Скорость DCC до 800 КБайт/сек
  • Простая интеграция в IAR Embedded Workbench IDE, Keil, CrossWorks
  • Не требует внешнего питания, запитывается от USB порта
  • Поддержка адаптивного тактирования
  • Мониторинг всех сигналов JTAG, измерение питания отлаживаемого микроконтроллера
  • Поддержка отладки в цепочке
  • Полностью совместим с Plug and Play
  • Стандартный 20- выводной разъем
  • Широкий диапазон напряжений сигналов JTAG: 1.2V — 3.3V, толерантен 5V
  • USB и гибкий JTAG кабель в комплекте
  • Программа просмотрщик памяти в комплекте
  • Включает TCP/IP server, который позволяет использование J-Link через TCP/IP сети
  • Доступен RDI интерфейс, который позволяет использовать J-Link с RDI совместимым программным обеспечением
  • Доступна программа для программирования Flash памяти (J-Flash)
  • Embedded Trace Buffer (ETB) support
  • Возможность питания отлаживаемого микроконтроллера (до 300 мА)
  • Восьмая версия.
  • Начиная с версии dll 4.20 добавлена поддержка Cortex-A5/A8.

Вот этими силами и средствами я и начну освоение ARM контроллеров. Ситуация во многом облегчается тем, что в рамках моего AVR микроконтроллерного конструктора уже имеется куча проверенной и отработанной периферии в виде  отдельных модулей, для работы с которыми есть библиотеки для AVR. В качестве основного IDE буду использовать KEIL (его демо-версия бесплатна), а для работы с LPCXpresso — их собственную разработку от CodeRed. Также немаловажным фактором выбора именно этих контроллеров явилось то, что для семейства LPC2000 у меня есть скачанная из сети книга товарища Мартина Тревора «Микроконтроллеры ARM7. Семейство LPC2000 компании Philips. Вводный курс.», а для работы с Cortex M3 (STM32 Discovery, LPCXpresso)  в сообществе, на радиокоте да и на других форумах есть определённые наработки. Хотя основным источником информации вижу, конечно, оригинальную техническую документацию.

Ну что же, друзья, путь в десять тысяч ли начинается с первого шага — он сделан!

Запись опубликована в рубрике ARM с метками , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован.