Настройка UART по прерываниям для Atmel SAM D20/D21

Работа с UART'ом по прерываниям — это одна из базовых задач, которую необходимо освоить в огромном числе проектов при работе с любым контроллером. Разумеется, что в ASF (атмеловский аналог ST'шной SPL) есть драйвер работы с UART по прерываниям, но его реализация для семейств Cortex M0+ весьма спорная.

Хочу поделиться двумя вещами:
1. Как «допилить» стандартный пример из ASF
2. Как настроить UART при помощи регистров, без использования библиотек


Читать дальше
  • +1
  • 11 декабря 2015, 13:37
  • Den1s

Отдаем отладочные КИТы SAM9M10-G45-EK ARM926-based [ЗАВЕРШЕНО]

[ЗАВЕРШЕНО]КИТы закончились. Спасибо всем откликнувшимся, что не оставили в беде

Первая партия была роздана. Но сегодня было обнаружено еще некоторое число ништячков. Условия те же: забирать в СВАО Москвы, по будням с 10 до 18-30. Для иногородних просьба самостоятельно искать людей, которые заберут и отправят КИТы почтой. Обязательно пишите (или дублируйте) запросы в ЛИЧКУ, во избежание накладок и обид.
На данный момент есть:
0 шт. — UC3-A3 Xplained на камне AVR32 UC3
0 шт. — UC3-L0 Xplained на камне AVR32 UC3
0 шт. — EVK1104 на камне AVR32 UC3
0 шт. — EVK1100 на камне AVR32 UC3
0 шт. — SAM3N-EK Cortex M3
0 шт. — XMEGA-A1 Xplained проц XMEGA128A
0 шт. — RZ600 2 USB-стика с UC3 + 3 пары радиотрансиверов
0 шт. — AVR Dragon родной

SAM9M10-G45-EK закончились

Сегодня, была обнаружена коробка с жирными отладками под атмеловский процессор на ядре АРМ926. КИТы распакованы и немного поюзаны, но комплектность и работоспособность в порядке. В итоге коммерческой ценности они не представляют, а место занимают. Камушек хотя и старый, но порох в пороховницах есть. Для изучения линукса самое то, куча периферии, дисплей и т.п. Может кто-то захочет себе home-server какой-нибудь замутить.
Короче, отдаем в хорошие руки, за даром. Никаких аливерды не требуется. Забирать в московском офисе (СВАО, самовывоз). В наличии 6 штук.
Что есть на отладке можно посмотреть тут www.atmel.com/tools/SAM9M10-G45-EK.aspx


Читать дальше
  • 0
  • 03 декабря 2015, 22:11
  • Den1s

Atmel хочет вернуть любовь радиолюбителей (халява)

Заранее извиняюсь за заголовок в стиле яндекс-новостей))).
В общем наткнулся тут на акцию от Atmel по раздаче халявных микроконтроллеров Cortex M0. Вот ссылка.
Я, как человек взрощенный на AVR, до сих пор по инерции испытываю теплые чувства к ним (ну и любовь к халяве тоже свою роль сыграла)… потому и повёлся)). Суть акции в том, что Atmel в рамках компании по продвижению своих микроконтроллеров SAM D20 раздает образцы всем желающим.


Читать дальше
  • +1
  • 24 февраля 2015, 22:03
  • Den1s

Охота на virt2real. Robot на Wi-Fi

Попробую-ка я тогда намутить себе халявную виртурилку, раз больше никто не хочет.

Давненько уже неспешно собираю робота. Даже как-то выкладывал где-то тут фотки с целью похвастаться.
Шасси — Rover5, 4 DC двигателя с энкодерами.
Электроника робота состоит из 4-х частей:
1. Плата питания. Делает 5В и 3.3В из 7.2В (6 аккумуляторов). Моторы питаются напрямую от 7.2В
2. Плата двигателей. Используется драйвер L298 и контроллер ATMega324. Сюда же подключаются энкодеры от двигателей, так что плата отвечает за прямолинейность движения. Команды получает по I2C от платы Wi-Fi.
3. Плата Wi-Fi. Функционально представляет из себя мост «WiFi-I2C» и является интерфейсом робота с внешним миром. Контроллер STM8, WiFi-модуль WizFi210. При включении питания коннектится к домашнему роутеру и поднимаем TCP сервер. Подаем с компа команды и эта плата ретранслирует их по I2C потребителю (плате двигателей либо плате навигации).
4. Плата навигации. Камень — STM32. В своем составе содержит дальномер, гироскоп, акселерометр, компас, сервы для камеры. Точно так же получает команды по I2C (откровенно говоря пока не получает, т.к. еще софт я для неё не дописал:))


Читать дальше
  • +2
  • 09 июля 2014, 01:45
  • Den1s
  • 2

Робот на шасси Rover5

Данный пост ничего информативного в себе не несет, предназначен для недр личного блога. Просто хвастаюсь детищем)). Где как ни тут это может быть кому-то интересно.
Шасси — Rover5, 4 DC двигателя с энкодерами
Питание — 6 аккумуляторов
Электроника:
1) нижняя маленькая плата — питание. Делает 5В и 3.3В.
2) нижняя большая плата — плата двигателей. Драйвер L298. Камень — ATMega324
3) верхняя маленькая плата — плата навигации (дальномер, гироскоп, компас, серво для камеры). Камень — STM32
4) верхняя большая плата — плата Wi-Fi для связи с внешним миром. Камень — STM8


Читать дальше
  • +5
  • 12 февраля 2014, 00:30
  • Den1s

Wi-Fi модуль WizFi210. Часть 2. АТ-команды

Содержание

UART
Подключаемся к UART модуля, ставим в терминалке скорость 115200 (остальные настройки по умолчанию). Если все сделано правильно — то можно начинать баловаться.
В плане управления, разработчики WizFi210 ничего мудрить не стали и организовали все на АТ-командах, типа как на различных GSM-модулях: шлем команду, далее символ возврата каретки (0x0D) и модуль в ответ дает результаты выполнения команды.
Для проверки жизнеспособности модуля традиционно можно использовать команду АТ. В ответ должны получить [OK]
AT   // это мы шлем в модуль

AT   // а эти 2 строчки модуль нам возвращает
[OK]


Читать дальше
  • +3
  • 26 августа 2013, 15:40
  • Den1s

Wi-Fi модуль WizFi210. Часть 1. Железо

Содержание

Подумал тут написать несколько статей посвященных wi-fi модулю WizFi210. Делает его корейская контора WizNet. Просто переводить DataSheet я смысла не вижу, постараюсь сделать упор на моменты, которые не прописаны в документация, либо прописаны скудно и неявно.
Первая часть традиционно по железу. Если будет интерес — то продолжу.



Читать дальше
  • +8
  • 19 августа 2013, 17:55
  • Den1s

Bootloader для STM8. Прошивка "по воздуху"

Представленные ниже материалы не претендуют на научную новизну и новаторство, а являются просто кратким обзором моей реализации бутлоадера для STM8 для прошивки из внешней EEPROM. В конце статьи приложен рабочий проект под IAR. Основано (скорее даже «содрано») все на AppNote от ST. Надеюсь, что кому-то поможет быстрее реализовать некоторые задумки.

Предисловие
Делал я недавно приборчик с Wi-Fi модулем на борту. Хост контроллер там стоит STM8S. Ну и встал вопрос обновления прошивки МК «по воздуху».
Обычно везде описывается вариант работы бутлоадера «на лету» с управлением от некой компьютерной утилиты, которая по какому-либо интерфейсу (UART, SPI, I2C) засылает фрагмент прошивки в МК, этот фрагмент заливается во flash, далее идет следующий фрагмент… и так пока не зальем всю прошивку. Если в процессе прошивки произошел какой-либо сбой (вырубился свет, отказал канал связи), мы спокойно этот сбой устраняем, запускаем bootloader и повторяем попытку. Автономность загрузчика в большинстве случаев ограничивается проверкой условия входа в загрузчик.

Но в некоторых случаях (например, в моем) этот вариант не катит. Например, когда нет прямого доступа к интерфейсам МК, потому что связь с ним (МК) осуществляется через некий канал связи (GSM-модуль, Wi-Fi модуль, PLC). Тогда если произошел сбой в процессе прошивки, то при следующем запуске уже некому будет установить этот самый канал связи т.к. скорее всего bootloader не потянет функционала по управлению вышеперечисленными устройствами.
Напрашивается идея сначала силами основной прошивки «сливать» «образ» новой версии куда-то (например во внешнюю EEPROM), а потом уже загрузиться под бутом и прошиваться с любым количеством попыток, т.к. даже если какой-то сбой и произойдет — из EEPROM образ прошивки никуда не денется.



Читать дальше