Форум РадиоКот 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. Как всегда есть сложности с какой стороны начать кушать столь аппетитный предмет. Поделитесь Вашим опытом уважаемые коты!
|
Автор: | ATrosh [ Сб фев 06, 2016 21:46:44 ] | ||
Заголовок сообщения: | Re: Изучаем Atmel SAM D20 Xplained Pro. | ||
Спасибо Яндексу-переводчику!
|
Автор: | 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 ![]() |
Автор: | 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. |
![]() |
Автор: | 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 в поисковике и вот что получил ![]()
|
Автор: | pcb [ Сб фев 20, 2016 22:25:30 ] |
Заголовок сообщения: | Re: Изучаем Atmel SAM D20 Xplained Pro. |
Очень крут, эт да ![]() Объясни, почему атмел, а не стм? |
Автор: | ATrosh [ Вс фев 21, 2016 11:35:15 ] |
Заголовок сообщения: | Re: Изучаем Atmel SAM D20 Xplained Pro. |
pcb писал(а): Очень крут, эт да ![]() Объясни, почему атмел, а не стм? Объясню ![]() В то время когда решил освоить контроллеры, в интернете больше попадались 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 р это вы переплатили ![]() А почему топик в 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. | ||
Всем доброго времени суток! Закончился март, можно продолжить изучение МК ![]() Хочу поделится с тем кто как я только знакомится с данной платой. Тоесть самый первый шаг к изучению, то что я сам хотел найти, подергать МК за лапки. Получилась такая пошаговая инструкция. По нажатию кнопки SW0 на плате, включать и выключать светодиоды подключенные к выводам РА02 и РА03. Используется 7-ая Атмел Студия.
|
Автор: | 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/ |