Введение
В индийской философии существует понятие кармы. Это причинно-следственный закон, согласно которому действия человека определяют его дальнейшую судьбу. Если применить это понятие к текущей ситуации в мире микроконтроллеров, то наша карма - это переход к использованию 32-х разрядных микроконтроллеров. Поэтому когда я решил наконец взяться за изучение ARM`ов и сделать на подобном микроконтроллере демо-плату, я выбрал для нее именно такое название - KARMA. Дополнительно к основному смыслу, получилась игра слов: карма - к ARM`у. Демо-плата, как первый шаг к освоению ARM`а.
Ну это так, лирика. А если по существу, то в этом посте я хочу рассказать вам про демо-плату, которую сделал для изучения микроконтроллера AT91SAM3S4B. Это 32-х разрядный микроконтроллер фирмы Atmel на ядре ARM Cortex-M3. Он имеет 256 кБ флэш памяти, 48 кБ оперативной памяти и тактовую частоту до 64 МГц. В составе микроконтроллера богатый набор периферии - таймеры-счетчики, SPI, TWI, UART, USB, PWM, ADC, DAC модули и т.д, а наличие встроенного загрузчика позволяет прошивать его без программатора. Микроконтроллеры SAM3 поддерживаются бесплатной фирменной средой разработки Atmel Studio 6, которая содержит большое количество готовых библиотек, драйверов и примеров. При наличии JTAG отладчика , Atmel Studio 6 позволяет отлаживать программу микроконтроллера по шагам.
Описание
Karma-SAM3S представляет собой квадратную плату размером 84x84 мм. На ней установлен микроконтроллер 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) и разъемы портов ввода-вывода.
Питание на плату можно подавать несколькими способами:
- через разъем адаптера,
- через клеммник,
- через USB разъемы.
При питании платы через адаптер или клеммник входное напряжение должно быть около 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 рублей. По Москве курьером, в другой город почтой.
Заключение
По мере изучения этого микроконтроллера я буду выкладывать на сайт учебные материалы. В ближайшее время появится документация, материал о прошиве и написании первой программы.
Comments
Повсюду растет ажиотаж вокруг АРМов, в особенности STM32. Я, буквально на днях, задавал себе вопрос можно ли будет вскоре найти материал по Атмелу. И вот оно!
Единственное хотелось бы задать пару вопросов:
1.Почему не ST кторый стоит копейки
2.Ваша плата стоит около 50 уе, а например Discovery 20-30. причем на борту присутсвуют всевозможные датчики, гироскопы и т.п. плюс эта плата может выступать в качестве программатора
Хотел только что сравнить цены, так нигде не нашел такой контроллер. Странно....
Кстати а название прикольное )))
Плюс, мне нравится продукция фирмы Atmel и я хочу заниматься микроконтроллер ами только этой фирмы. У них хорошая документация и средства разработки.
2) Штучное и мелкосерийное производство всегда дороже массового. Отдельно взятый инженер не может тягаться с такой крупной фирмой как STMicroelectron ics. Они используют собственную элементную базу, автоматизирован ные сборочные линии и могут позволить себе продавать демо-платы даже в убыток, преследуя рекламные цели.
Цена на самом деле сопоставима с аналогичными платами, например платами фирмы Olimex. В качестве дополнительного бонуса будут выступать мои учебные материалы. Ведь демо-плат полно, а демо-плат с учебными материалами почти нет. Разве что у Ди Халта.
Discovery намного популярнее, доступнее и дешевле. Также как и ST.
А из среды разработки KEIL.
Цитирую : по оценкам экспертов ядро AVR32 выигрывает по производительно сти и энергопотреблен ию у ARM7,9,11 примерно на треть. Код компактнее и т.д. и т.п.
Из минусов жлобская политика ATMEL
Видать Вас самого данные девайсы не впечатлили)
Мне на халяву досталась SAM3U - EK с AT91SAM3U4E на борту, но с атмеловским сопровождением я уже почти отчаялся заставить ее хотя бы ледом поморгать))
Эх... Жирные и вкусные но не популярные камни...
У меня такого рода вопрос....
Вы не писали проект для SAM3S в ARM GCC?
Меня этот вопрос интересует потому, что я пишу проекты в Programmer's Notepad с использованием различных GCC тулчейнов ( одна IDE на все :) ). Хотелось бы попробовать Атмеловские АРМ-ы. Не слишком сложные. Поскольку считаю что Cortex-M3 вполне удовлетворит моим потребностям как в плане моей работы так и для личного использования. Сейчас я остановился на Xmega-х. Это довольно не плохие контроллеры но они 8-битные при всем к ним уважении :) А в интернете полно примеров для STM32. А вот для SAM3S да еще и для GCC, я ни чего не нашел.
Скажите, пожалуйста, вы ещё занимаетесь выпуском/продаж ей данных плат.
RSS feed for comments to this post