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

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

Сообщение ATrosh »

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

Сообщение ATrosh »

Вот примерно это я хотел найти в интернете.
Когда начинаешь немного вникать кажется ни так все сложно, и вроде как все логично и удобно.
Удобно пример нужный на сайте открыть, свои имена выводам присвоить и прочее. Вот только некому доходчиво объяснить и показать что и как.
Наворочено много. Разгребать и разгребать. :kill:
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 64
Зарегистрирован: Пт ноя 18, 2011 18:43:01

Сообщение ATrosh »

Захотелось поморгать светодиодами с помощью задержки.
Что интересно, если вставлять в прошлый проект "delay" при помощи ASF Wisard, Студия начинает ругаться ( бла-бла не можем гарантировать корректную работу), что действительно и происходит.
Изображение
Сделал ход конем.
1. Зашел на стартовый сайт, сгенерировал проект с функцией delay
Изображение
Изображение
Изображение
Открыл глаза
Аватара пользователя
Сообщения: 64
Зарегистрирован: Пт ноя 18, 2011 18:43:01

Сообщение ATrosh »

2. Открыл в Студии и перебросил нужный код в старый проект.
Изображение
Изображение
Изображение
Все работает!
Реклама
Эиком - электронные компоненты и радиодетали
Открыл глаза
Аватара пользователя
Сообщения: 64
Зарегистрирован: Пт ноя 18, 2011 18:43:01

Сообщение ATrosh »

Программирование на С в отличии от asm мне напоминает большую управленческую контору, где много вывесок, всякой информации, что бы что то сделать нужно одних найти, с другими согласовать и прочая суета, связи всякие нужные завести. Зато когда освоился, тут можно и развернуться!
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 64
Зарегистрирован: Пт ноя 18, 2011 18:43:01

Сообщение ATrosh »

Третий день пытаюсь реализовать ШИМ. Сгенерил пример в ASF и на этом все застопорилось. Понимаю что по идее все элементарно, пару тройку строк и готово, но видимо атмеловские разработчики так запарлись, что доделывать толковый пример не стали. Мол не маленькие сами разберутся. Нашел описание ASF на английском может что прояснит.
Вложения
atmel-42139-asf-manual-sam-d20_application-note_at03665.pdf
(3.79 МБ) 493 скачивания
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 64
Зарегистрирован: Пт ноя 18, 2011 18:43:01

Сообщение ATrosh »

Продолжение. Проявились в работе с программой AtmelStudio7 два косяка.
Делюсь бесценным опытом, потому как поначалу такие косяки выносят мозг капитально.
Первый не особо страшный.
Захотелось мне организовать передачу данных через USART на ПК. для этого установил Visual Studio 2015 бесплатную версию.
После установки AtmelStudio7 перестала работать как положено. Решилась задача переустановкой AtmelStudio7 на другой диск.
Второй конкретный косяк(более корректного слова подобрать не могу) :oops:
Перед закачкой кода AtmelStudio7 предложила обновить EDBG sam d20 Xplained Pro на более свежую версию 3.0
Я с дуру нажал Ок и при обновлении AtmelStudio7 вылетела, а плата осталась в режиме прошивки и моргала двумя диодами одновременно. После этого AtmelStudio7 никак плату не определяла. Что делать? :dont_know:
Написал на форум Atmel :write: И получил ответ. http://community.atmel.com/forum/atmel- ... nt-1883941.
В кратце. В папках программы AtmelStudio7 есть файлы которые необходимо собрать в одну. Затем в командной строке набрать волшебное слово и о чудо! Свершилось!Плата засветилась одним зеленным огоньком и все работает как прежде.
Вложения
2016-05-16_15-12-53.png
(6.33 КБ) 499 скачиваний
2016-05-16_17-24-07.png
(12.23 КБ) 353 скачивания
Открыл глаза
Аватара пользователя
Сообщения: 64
Зарегистрирован: Пт ноя 18, 2011 18:43:01

Сообщение ATrosh »

Доброго времени всем!
Поэкспериментировав с ASF функциями захотелось просто поморгать ножками как на старой доброй Тиньке.
Вот что получилось.
У SAMD20 как всем известно пины делятся на две группы Group[0] и Group[1] и у каждого по 32 битному регистру.
Если необходимо зажечь светодиод на ножке РА04 необходимо в файл main.c ввести три строки

#include "sam.h"
unsigned long Pin_Grup=16; // вывод РА04

int main(void)
{
SystemInit();

PORT->Group[0].DIR.reg = Pin_Grup ; //вкл напр на выход

PORT->Group[0].OUT.reg=Pin_Grup ; // включает 3,29 вольт


}

а значение переменной определить в соответствии с таблицей.
Вложения
2016-06-22_22-30-40.png
(23.75 КБ) 485 скачиваний
Открыл глаза
Аватара пользователя
Сообщения: 64
Зарегистрирован: Пт ноя 18, 2011 18:43:01

Сообщение ATrosh »

После дня ВДВ так приятно посидеть в тишине и покурить даташит!
Давно нужно было разобраться с тактированием. И вот что получилось.

#include "sam.h"
unsigned long Count;
int main(void)
{
SystemInit();
// GCLK->CTRL.reg=1; // cброс . равнозначно GCLK->GENCTRL.reg=66072; // OSC8M 8MHz
GCLK->GENCTRL.reg=66304; // OSCULP32K 32KHz экономия энергии

//GCLK->GENCTRL.reg=66072; // OSC8M 8MHz
//GCLK->GENCTRL.reg=67328; // DFLL48M 48MHz

//GCLK->GENDIV.reg=512; // запись в делитель 2
GCLK->GENDIV.reg=1024; // запись в делитель 4

PORT->Group[0].DIR.reg = 48 ; // установка на выход РА04, PA05

while(Count<10000)
{
Count++ ;
PORT->Group[0].OUT.reg=16 ; // включает PA04
}
// при OSCULP32K 32KHz
// переключение на PA05 через прим 3 сек без деления
// переключение на PA05 через 6 сек с делением на 2
// переключение на PA05 через 12 сек с делением на 4

PORT->Group[0].OUT.reg= 32; // включает PA05

}

Далее для удобства расчета значении регистров таблицы Excel.
Вложения
Регисры.rar
(298.44 КБ) 207 скачиваний
Открыл глаза
Аватара пользователя
Сообщения: 64
Зарегистрирован: Пт ноя 18, 2011 18:43:01

Сообщение ATrosh »

В выше приведенном примере использование GCLK->GENCTRL.reg=67328; // DFLL48M 48MHz и GCLK->GENCTRL.reg=66560; // OSC32K
не дает результата, возможно необходимо выполнить дополнительные настройки типа синхронизации.
Мучитель микросхем
Сообщения: 443
Зарегистрирован: Ср окт 19, 2011 08:48:27
Откуда: Мать городов русских

Сообщение Frogfot »

Приятно что помаленьку SAMD2x идёт в массы. Давненько заводил ветку для изучения мелкокортексов М0 от Атмел - https://www.radiokot.ru/forum/viewtopic ... 59&t=97708 да потом у меня демоборда сгорела на работе вместе с компом, и на этом всё закончилось. Сейчас мне подогнали новую борду тоже на SAMD20, можно возобновить юзание.
Хорошему коту и в декабре - март :)
Ответить

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