Например TDA7294

Форум РадиоКот :: Просмотр темы - Изучаем Atmel SAM D20 Xplained Pro.
Форум РадиоКот
https://radiokot.ru/forum/

Изучаем Atmel SAM D20 Xplained Pro.
https://radiokot.ru/forum/viewtopic.php?f=57&t=126849
Страница 1 из 2

Автор:  ATrosh [ Пт фев 05, 2016 21:00:33 ]
Заголовок сообщения:  Изучаем Atmel SAM D20 Xplained Pro.

Приобрел Atmel SAM D20 Xplained Pro. Как всегда есть сложности с какой стороны начать кушать столь аппетитный предмет. Поделитесь Вашим опытом уважаемые коты!

Вложения:
Atmel SAM D20 Xplained Pro.jpg [65.28 KiB]
Скачиваний: 1008

Автор:  ATrosh [ Сб фев 06, 2016 21:46:44 ]
Заголовок сообщения:  Re: Изучаем Atmel SAM D20 Xplained Pro.

Спасибо Яндексу-переводчику!

Вложения:
Atmel-SAMD20-Xplained-Pro перевод на русский.doc [478 KiB]
Скачиваний: 782

Автор:  Vov123 [ Вс фев 07, 2016 04:14:08 ]
Заголовок сообщения:  Re: Изучаем Atmel SAM D20 Xplained Pro.

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

http://ru.aliexpress.com/item/For-Ardui ... 1ed695ab3f

Автор:  ATrosh [ Вс фев 07, 2016 20:29:05 ]
Заголовок сообщения:  Re: Изучаем Atmel SAM D20 Xplained Pro.

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

Автор:  ATrosh [ Вс фев 07, 2016 23:15:00 ]
Заголовок сообщения:  Re: Изучаем Atmel SAM D20 Xplained Pro.

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

#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 [ Вт фев 09, 2016 20:32:26 ]
Заголовок сообщения:  Re: Изучаем Atmel SAM D20 Xplained Pro.

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

тут много инфы по этим камням

Автор:  ATrosh [ Вт фев 09, 2016 22:15:45 ]
Заголовок сообщения:  Re: Изучаем Atmel SAM D20 Xplained Pro.

:facepalm:

Автор:  ATrosh [ Сб фев 20, 2016 22:01:58 ]
Заголовок сообщения:  Re: Изучаем Atmel SAM D20 Xplained Pro.

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

#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 [ Сб фев 20, 2016 22:07:33 ]
Заголовок сообщения:  Re: Изучаем Atmel SAM D20 Xplained Pro.

Яндекс меня снова порадовал. Стал искать какую нибудь инфу по SAM D20 J в поисковике и вот что получил :shock:

Вложения:
Комментарий к файлу: Правда я крут!!!
Поисковик.jpg [121.76 KiB]
Скачиваний: 752

Автор:  pcb [ Сб фев 20, 2016 22:25:30 ]
Заголовок сообщения:  Re: Изучаем Atmel SAM D20 Xplained Pro.

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

Объясни, почему атмел, а не стм?

Автор:  ATrosh [ Вс фев 21, 2016 11:35:15 ]
Заголовок сообщения:  Re: Изучаем Atmel SAM D20 Xplained Pro.

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

Объясни, почему атмел, а не стм?

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

Автор:  ATrosh [ Пт мар 04, 2016 21:22:45 ]
Заголовок сообщения:  Re: Изучаем Atmel SAM D20 Xplained Pro.

Курю даташит, перевожу описание контроллера. Когда переведу и как водится в начале книги скажу "Спасибо моей жене,что научилась засыпать одна. Спасибо мой собаке, зато что не лаяла, и кошкам которые орали и не давали заснуть. И конечно отдельное спасибо Яндексу-переводчику который сделал всю работу" :)

Автор:  alvangee [ Чт мар 10, 2016 15:03:50 ]
Заголовок сообщения:  Re: Изучаем Atmel SAM D20 Xplained Pro.

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

Если говорить о том, с какой стороны подойти к отладке, то самый верный способ - создавать в Студии проект с примерами (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 [ Чт мар 10, 2016 15:25:17 ]
Заголовок сообщения:  Re: Изучаем Atmel SAM D20 Xplained Pro.

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 [ Чт мар 10, 2016 23:06:08 ]
Заголовок сообщения:  Re: Изучаем Atmel SAM D20 Xplained Pro.

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

Автор:  Den1ss [ Пт мар 11, 2016 08:57:33 ]
Заголовок сообщения:  Re: Изучаем Atmel SAM D20 Xplained Pro.

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

А почему топик в AVR? SAMD20 это же ARM, пора заканчивать с монополией STM32 :)

Автор:  ATrosh [ Пт мар 11, 2016 19:59:12 ]
Заголовок сообщения:  Re: Изучаем Atmel SAM D20 Xplained Pro.

Может 2800 и дороговато, но хотел подарок себе на новый год. И дешевле найти не мог, а может не искал толком. Так видимо с этой акции мне и перепродали :? Так если доставку прибавить то и выходит.

Автор:  ATrosh [ Чт апр 07, 2016 19:27:05 ]
Заголовок сообщения:  Re: Изучаем Atmel SAM D20 Xplained Pro.

Всем доброго времени суток!
Закончился март, можно продолжить изучение МК :roll:
Хочу поделится с тем кто как я только знакомится с данной платой.
Тоесть самый первый шаг к изучению, то что я сам хотел найти, подергать МК за лапки.
Получилась такая пошаговая инструкция.
По нажатию кнопки SW0 на плате, включать и выключать светодиоды подключенные к выводам РА02 и РА03.
Используется 7-ая Атмел Студия.

Вложения:
1.png [173.62 KiB]
Скачиваний: 397

Автор:  ATrosh [ Чт апр 07, 2016 19:31:56 ]
Заголовок сообщения:  Re: Изучаем Atmel SAM D20 Xplained Pro.

загружает рисунки
Изображение
Изображение
Изображение
Изображение
Изображение
Здесь выбираем только один вывод РА02 так нам необходимо только сформировать заготовку под свой код.
Изображение
Изображение

Автор:  ATrosh [ Чт апр 07, 2016 20:50:20 ]
Заголовок сообщения:  Re: Изучаем Atmel SAM D20 Xplained Pro.

Изображение
Изображение
Изображение
Изображение
Изображение
Изображение
если вкралась ошибка

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/