Изучаем Atmel SAM D20 Xplained Pro.

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
ATrosh
Открыл глаза
Сообщения: 64
Зарегистрирован: Пт ноя 18, 2011 18:43:01

Изучаем Atmel SAM D20 Xplained Pro.

Сообщение ATrosh »

Приобрел Atmel SAM D20 Xplained Pro. Как всегда есть сложности с какой стороны начать кушать столь аппетитный предмет. Поделитесь Вашим опытом уважаемые коты!
Вложения
Atmel SAM D20 Xplained Pro.jpg
(65.28 КБ) 1022 скачивания
Реклама
Аватара пользователя
ATrosh
Открыл глаза
Сообщения: 64
Зарегистрирован: Пт ноя 18, 2011 18:43:01

Re: Изучаем Atmel SAM D20 Xplained Pro.

Сообщение ATrosh »

Спасибо Яндексу-переводчику!
Вложения
Atmel-SAMD20-Xplained-Pro перевод на русский.doc
(478 КБ) 801 скачивание
Реклама
Vov123
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

Re: Изучаем Atmel SAM D20 Xplained Pro.

Сообщение Vov123 »

Всё-же, моё личное мнение, изучение Atmel SAM 32 надо было бы начать изучать с платы Arduino Due. И дополнительных модулей готовых к ней, и примеры их использования есть в достаточном количестве. Хоть и в одноимённой среде, но если вас от неё тошнит и мозгов не занимать, то AnmelStudio 6(7) к Вашим услугам.

http://ru.aliexpress.com/item/For-Ardui ... 1ed695ab3f
Аватара пользователя
ATrosh
Открыл глаза
Сообщения: 64
Зарегистрирован: Пт ноя 18, 2011 18:43:01

Re: Изучаем Atmel SAM D20 Xplained Pro.

Сообщение ATrosh »

Почему я сделал такой выбор.
1. Это для меня совершенно новое в отличие от 8 битных, хотя писать программы нравится на ассемблере.
2. ОС 8 винда старый программатор не видит, а на этой плате встроенный программатор с выходом на внешние устройства. Стреляю двух зайцев программатор и новая плата для изучения в одном флаконе.
3. Цена 2800 р.
Дело за малым вкурить кучу примеров на С+ и Студию 7 :kill:
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
ATrosh
Открыл глаза
Сообщения: 64
Зарегистрирован: Пт ноя 18, 2011 18:43:01

Re: Изучаем Atmel SAM D20 Xplained Pro.

Сообщение ATrosh »

Первый раз попробовал запрограммировать стартовый пример для этой платы (Студия сгенерила). В принципе все просто. Все работает.

#include <asf.h>
int main (void)
{
system_init();

/* Insert application code here, after the board has been initialized. */

/* This skeleton code simply sets the LED to the state of the button. */
while (1) {
/* Is button pressed? */
if (port_pin_get_input_level(BUTTON_0_PIN) == BUTTON_0_ACTIVE) {
/* Yes, so turn LED on. */
port_pin_set_output_level(LED_0_PIN, LED_0_ACTIVE);

} else {
/* No, so turn LED off. */
port_pin_set_output_level(LED_0_PIN, !LED_0_ACTIVE);
}
}
}

Далее попробовал задержку вставить
#include <asf.h>

int main (void)
{
system_init();

/* Insert application code here, after the board has been initialized. */

/* This skeleton code simply sets the LED to the state of the button. */
while (1) {
/* Is button pressed? */
if (port_pin_get_input_level(BUTTON_0_PIN) == BUTTON_0_ACTIVE) {
/* Yes, so turn LED on. */
_delay_ms(250); // ожидание 250 мс
port_pin_set_output_level(LED_0_PIN, LED_0_ACTIVE);

} else {
/* No, so turn LED off. */
port_pin_set_output_level(LED_0_PIN, !LED_0_ACTIVE);
}
}
}
при компиляции ошибку выдает (Ошибка неявная декларация функции '_delay_ms')
видимо у функции другое наименование, а где найти все описания функций?
Реклама
Den1ss
Родился
Сообщения: 2
Зарегистрирован: Чт дек 17, 2015 17:50:25

Re: Изучаем Atmel SAM D20 Xplained Pro.

Сообщение Den1ss »

https://habrahabr.ru/company/rainbow/page2/

тут много инфы по этим камням
Реклама
Аватара пользователя
ATrosh
Открыл глаза
Сообщения: 64
Зарегистрирован: Пт ноя 18, 2011 18:43:01

Re: Изучаем Atmel SAM D20 Xplained Pro.

Сообщение ATrosh »

:facepalm:
Аватара пользователя
ATrosh
Открыл глаза
Сообщения: 64
Зарегистрирован: Пт ноя 18, 2011 18:43:01

Re: Изучаем Atmel SAM D20 Xplained Pro.

Сообщение ATrosh »

Штатная функция задержки почему то не хочет работать, решил проблему так, просто для тренировки написания на Си

#include <delay.h>
#include <asf.h>
long X=1;
long S=50000;

int main (void)

{
system_init();
port_pin_set_output_level(LED_0_PIN, LED_0_ACTIVE);

while (1)
{
if (port_pin_get_input_level(BUTTON_0_PIN) == BUTTON_0_ACTIVE) /* при нажатие кнопки частота моргания увеличивается*/
{
X=X+1;
if (X==S) port_pin_set_output_level(LED_0_PIN, LED_0_ACTIVE);
if (X==S*2) port_pin_set_output_level(LED_0_PIN, !LED_0_ACTIVE);
if (X>S*2) X=0 ;
}
else
{
X=X+1;
if (X==S) port_pin_set_output_level(LED_0_PIN, LED_0_ACTIVE);
if (X==S*5) port_pin_set_output_level(LED_0_PIN, !LED_0_ACTIVE);
if (X>S*5) X=0 ;
}
}
}
Аватара пользователя
ATrosh
Открыл глаза
Сообщения: 64
Зарегистрирован: Пт ноя 18, 2011 18:43:01

Re: Изучаем Atmel SAM D20 Xplained Pro.

Сообщение ATrosh »

Яндекс меня снова порадовал. Стал искать какую нибудь инфу по SAM D20 J в поисковике и вот что получил :shock:
Вложения
Поисковик.jpg
Правда я крут!!!
(121.76 КБ) 765 скачиваний
pcb
Опытный кот
Сообщения: 833
Зарегистрирован: Пт авг 12, 2011 09:14:27
Откуда: Млечный путь/Земля/РФ/Екатеринбург

Re: Изучаем Atmel SAM D20 Xplained Pro.

Сообщение pcb »

Очень крут, эт да :tea:

Объясни, почему атмел, а не стм?
Разработал:
-BLDC
-ФУОЗ/МПСЗ
-SMART BMS
-ECU/EDC на STM32F4(43%)+CPLD(57%)
-Моноинжектор на ATSAMD20G16
-контроллер эффектов для RGB LED ленты
-умные часы/обратный счет/секундомер
-устройство измерения емкости АКБ
Аватара пользователя
ATrosh
Открыл глаза
Сообщения: 64
Зарегистрирован: Пт ноя 18, 2011 18:43:01

Re: Изучаем Atmel SAM D20 Xplained Pro.

Сообщение ATrosh »

pcb писал(а):Очень крут, эт да :tea:

Объясни, почему атмел, а не стм?
Объясню :roll:
В то время когда решил освоить контроллеры, в интернете больше попадались Pic и Atmel.
Атмел как то больше приглянулся. Много информации, асм и Студия проблемы в освоении не вызвала.
И как говорится на переправе котов изв. КОНЕЙ не меняют.
Про стм ничего плохого сказать не могу, не работал с ними.
Аватара пользователя
ATrosh
Открыл глаза
Сообщения: 64
Зарегистрирован: Пт ноя 18, 2011 18:43:01

Re: Изучаем Atmel SAM D20 Xplained Pro.

Сообщение ATrosh »

Курю даташит, перевожу описание контроллера. Когда переведу и как водится в начале книги скажу "Спасибо моей жене,что научилась засыпать одна. Спасибо мой собаке, зато что не лаяла, и кошкам которые орали и не давали заснуть. И конечно отдельное спасибо Яндексу-переводчику который сделал всю работу" :)
alvangee
Родился
Сообщения: 1
Зарегистрирован: Чт мар 10, 2016 14:34:33

Re: Изучаем Atmel SAM D20 Xplained Pro.

Сообщение alvangee »

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

Если говорить о том, с какой стороны подойти к отладке, то самый верный способ - создавать в Студии проект с примерами (Create Example Project) на коткретную периферию или системный драйвер, качать с сайта Атмела Application Note, касающийся данной периферии/драйвера и изучать как они работают с этой периферией.

Неприятный лично мне момент в том, что все их примеры основаны на ASF, поэтому большая часть изучения SAMD20/21 это изучение самой ASF.

Мне пока удавалось обойтись без ASF, писать всё руками через регистры и манипуляции с ними. Этот путь требует для начала вникнуть в систему тактирования, которая достаточно сложна по сравнению с простыми АВРками. В принципе, при использовании ASF в тактирование тоже надо вникать, но в этом случае все клоки задействуются и частоты назначаются в отдельном файле conf_clocks.h. Если же делать всё руками, надо включать и настраивать каждый генератор через регистры.

Что касается периферии, если настраивать её ручками, надо внимательно читать в даташите Dependencies и Basic Operation. Там расписано какие модули необходимо задействовать, чтобы периферия работала, как настроить тактирование и в каком порядке её запускать.

У очень многих регистров есть пометка Read- или Write-Synchronized. Это значит, что любая соответствующая операция (чтение или запись) с регистром требует после нее проверки флага синхронизации между общим задающим генератором и генератором этой периферии. Подробнее написано в разделе Synchronization даташита. Если пользоваться ASF, все заботы по синхронизации она берет на себя. Если манипулировать регистрами, важно не забывать добавлять строчку вида

Код: Выделить всё

while(SERCOM2->USART.STATUS.reg & SERCOM_USART_STATUS_SYNCBUSY); //wait for sync
после каждой манипуляции с асинхронным регистром.

Отдельная радость - настройка пинов и мультиплексора для периферии, в это пришлось вникать долго, хотя однажды разобравшись, кажется пустяком.
Например, чтобы настроить Rx, Tx и RTS для 485-го:

Код: Выделить всё

        /* RS-485 pins*/
	PORT->Group[0].DIRSET.reg = (1 << RS485_TXD); //RS485_TXD(output) = 1
	PORT->Group[0].OUTSET.reg = (1 << RS485_TXD);

	PORT->Group[0].DIRCLR.reg = (1 << RS485_RXD); //RS485_RXD(input) = 1
	PORT->Group[0].OUTSET.reg = (1 << RS485_RXD);

	PORT->Group[0].DIRSET.reg = (1 << RS485_RTS); //RS485_RTS(output) = 0 //receive
	PORT->Group[0].OUTCLR.reg = (1 << RS485_RTS);

	/* SERCOM2 pins PMUX enable */
	PORT->Group[0].PINCFG[RS485_TXD].reg = PORT_PINCFG_PMUXEN;
	PORT->Group[0].PINCFG[RS485_RXD].reg = PORT_PINCFG_PMUXEN | PORT_PINCFG_INEN;

	PORT->Group[0].PMUX[RS485_TXD/2].reg = PORT_PMUX_PMUXE_D | PORT_PMUX_PMUXO_D;
Здесь дефайны RS485_TXD и т.п. это просто номер пина у порта A.

Конечно, искать что-то по SAMD20 в Яндексе дохлый номер. Это лучше делать в Гугле, причем не в русскоязычном сегменте интернета. Ну и заглянуть на avrfreaks.
marus-ka
Родился
Сообщения: 5
Зарегистрирован: Ср мар 12, 2014 11:18:31

Re: Изучаем Atmel SAM D20 Xplained Pro.

Сообщение marus-ka »

ATrosh писал(а):Первый раз попробовал запрограммировать стартовый пример для этой платы (Студия сгенерила). В принципе все просто. Все работает.

при компиляции ошибку выдает (Ошибка неявная декларация функции '_delay_ms')
видимо у функции другое наименование, а где найти все описания функций?
Чтобы работала библиотечная функция delay, необходимо включить модуль delay routines в ASF Explorer. При этом в asf.h нужно включить delay.h (ну или отдельно). Еще нужно в main инициализировать задержки с помощью функции delay_init();
Примерно так:

Код: Выделить всё

int main(void)
{
	system_init();
	delay_init();
...
}
Сами функции задержки: delay_s(1); delay_ms(100); и delay_cycles(100);

Вообще очень удобно, если что-то не знаете, как делать, посмотреть пример. Обычно у атмела на все есть примеры)
Аватара пользователя
ATrosh
Открыл глаза
Сообщения: 64
Зарегистрирован: Пт ноя 18, 2011 18:43:01

Re: Изучаем Atmel SAM D20 Xplained Pro.

Сообщение ATrosh »

Большое спасbбо alvangee за комментарии! Буду вникать. Конечно весь даташит переводить сразу смысла не имеет. Перевел пока главу 27. TC – Timer/Counter, в нем как-то больше ясности. Тактирование конечно следующий шаг.
Ура delay заработала спасибо marus-ka за подсказку delay_init(); в код я не включал. Видимо сказывется отсутствие опыта в Си. Вообще вот эти первые шаги самые трудные, дальше обычно легче идет.
Den1ss
Родился
Сообщения: 2
Зарегистрирован: Чт дек 17, 2015 17:50:25

Re: Изучаем Atmel SAM D20 Xplained Pro.

Сообщение Den1ss »

2800 р это вы переплатили :). Почти год длилась акция на эти отладки - продавали их по 1000 р. Акция пару недель завершилась (на сайте пока не отметили этого), но и теперь они по $26 идут, что дешевле 2800.

А почему топик в AVR? SAMD20 это же ARM, пора заканчивать с монополией STM32 :)
Аватара пользователя
ATrosh
Открыл глаза
Сообщения: 64
Зарегистрирован: Пт ноя 18, 2011 18:43:01

Re: Изучаем Atmel SAM D20 Xplained Pro.

Сообщение ATrosh »

Может 2800 и дороговато, но хотел подарок себе на новый год. И дешевле найти не мог, а может не искал толком. Так видимо с этой акции мне и перепродали :? Так если доставку прибавить то и выходит.
Аватара пользователя
ATrosh
Открыл глаза
Сообщения: 64
Зарегистрирован: Пт ноя 18, 2011 18:43:01

Re: Изучаем Atmel SAM D20 Xplained Pro.

Сообщение ATrosh »

Всем доброго времени суток!
Закончился март, можно продолжить изучение МК :roll:
Хочу поделится с тем кто как я только знакомится с данной платой.
Тоесть самый первый шаг к изучению, то что я сам хотел найти, подергать МК за лапки.
Получилась такая пошаговая инструкция.
По нажатию кнопки SW0 на плате, включать и выключать светодиоды подключенные к выводам РА02 и РА03.
Используется 7-ая Атмел Студия.
Вложения
1.png
(173.62 КБ) 407 скачиваний
Последний раз редактировалось ATrosh Чт апр 07, 2016 21:02:20, всего редактировалось 2 раза.
Аватара пользователя
ATrosh
Открыл глаза
Сообщения: 64
Зарегистрирован: Пт ноя 18, 2011 18:43:01

Re: Изучаем Atmel SAM D20 Xplained Pro.

Сообщение ATrosh »

загружает рисунки
Изображение
Изображение
Изображение
Изображение
Изображение
Здесь выбираем только один вывод РА02 так нам необходимо только сформировать заготовку под свой код.
Изображение
Изображение
Последний раз редактировалось ATrosh Чт апр 07, 2016 21:08:40, всего редактировалось 2 раза.
Аватара пользователя
ATrosh
Открыл глаза
Сообщения: 64
Зарегистрирован: Пт ноя 18, 2011 18:43:01

Re: Изучаем Atmel SAM D20 Xplained Pro.

Сообщение ATrosh »

Изображение
Изображение
Изображение
Изображение
Изображение
Изображение
если вкралась ошибка
Последний раз редактировалось ATrosh Чт апр 07, 2016 21:22:00, всего редактировалось 3 раза.
Ответить

Вернуться в «AVR»