Приобрел Atmel SAM D20 Xplained Pro. Как всегда есть сложности с какой стороны начать кушать столь аппетитный предмет. Поделитесь Вашим опытом уважаемые коты!
Всё-же, моё личное мнение, изучение Atmel SAM 32 надо было бы начать изучать с платы Arduino Due. И дополнительных модулей готовых к ней, и примеры их использования есть в достаточном количестве. Хоть и в одноимённой среде, но если вас от неё тошнит и мозгов не занимать, то AnmelStudio 6(7) к Вашим услугам.
Почему я сделал такой выбор. 1. Это для меня совершенно новое в отличие от 8 битных, хотя писать программы нравится на ассемблере. 2. ОС 8 винда старый программатор не видит, а на этой плате встроенный программатор с выходом на внешние устройства. Стреляю двух зайцев программатор и новая плата для изучения в одном флаконе. 3. Цена 2800 р. Дело за малым вкурить кучу примеров на С+ и Студию 7
Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.
Первый раз попробовал запрограммировать стартовый пример для этой платы (Студия сгенерила). В принципе все просто. Все работает.
#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') видимо у функции другое наименование, а где найти все описания функций?
_________________ Разработал: -BLDC -ФУОЗ/МПСЗ -SMART BMS -ECU/EDC на STM32F4(43%)+CPLD(57%) -Моноинжектор на ATSAMD20G16 -контроллер эффектов для RGB LED ленты -умные часы/обратный счет/секундомер -устройство измерения емкости АКБ
Объясню В то время когда решил освоить контроллеры, в интернете больше попадались Pic и Atmel. Атмел как то больше приглянулся. Много информации, асм и Студия проблемы в освоении не вызвала. И как говорится на переправе котов изв. КОНЕЙ не меняют. Про стм ничего плохого сказать не могу, не работал с ними.
Курю даташит, перевожу описание контроллера. Когда переведу и как водится в начале книги скажу "Спасибо моей жене,что научилась засыпать одна. Спасибо мой собаке, зато что не лаяла, и кошкам которые орали и не давали заснуть. И конечно отдельное спасибо Яндексу-переводчику который сделал всю работу"
Заголовок сообщения: Re: Изучаем Atmel SAM D20 Xplained Pro.
Добавлено: Чт мар 10, 2016 15:03:50
Родился
Зарегистрирован: Чт мар 10, 2016 14:34:33 Сообщений: 1
Рейтинг сообщения:0
Прочитал тему, так и не понял в чём именно вопрос. Также не понял зачем переводить даташит, его надо просто брать и читать именно тот раздел, который нужен в данный момент.
Если говорить о том, с какой стороны подойти к отладке, то самый верный способ - создавать в Студии проект с примерами (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-го:
Здесь дефайны RS485_TXD и т.п. это просто номер пина у порта A.
Конечно, искать что-то по SAMD20 в Яндексе дохлый номер. Это лучше делать в Гугле, причем не в русскоязычном сегменте интернета. Ну и заглянуть на avrfreaks.
Заголовок сообщения: Re: Изучаем Atmel SAM D20 Xplained Pro.
Добавлено: Чт мар 10, 2016 15:25:17
Родился
Зарегистрирован: Ср мар 12, 2014 11:18:31 Сообщений: 5
Рейтинг сообщения:0
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);
Вообще очень удобно, если что-то не знаете, как делать, посмотреть пример. Обычно у атмела на все есть примеры)
Большое спасbбо alvangee за комментарии! Буду вникать. Конечно весь даташит переводить сразу смысла не имеет. Перевел пока главу 27. TC – Timer/Counter, в нем как-то больше ясности. Тактирование конечно следующий шаг. Ура delay заработала спасибо marus-ka за подсказку delay_init(); в код я не включал. Видимо сказывется отсутствие опыта в Си. Вообще вот эти первые шаги самые трудные, дальше обычно легче идет.
2800 р это вы переплатили . Почти год длилась акция на эти отладки - продавали их по 1000 р. Акция пару недель завершилась (на сайте пока не отметили этого), но и теперь они по $26 идут, что дешевле 2800.
А почему топик в AVR? SAMD20 это же ARM, пора заканчивать с монополией STM32
Может 2800 и дороговато, но хотел подарок себе на новый год. И дешевле найти не мог, а может не искал толком. Так видимо с этой акции мне и перепродали Так если доставку прибавить то и выходит.
Всем доброго времени суток! Закончился март, можно продолжить изучение МК Хочу поделится с тем кто как я только знакомится с данной платой. Тоесть самый первый шаг к изучению, то что я сам хотел найти, подергать МК за лапки. Получилась такая пошаговая инструкция. По нажатию кнопки SW0 на плате, включать и выключать светодиоды подключенные к выводам РА02 и РА03. Используется 7-ая Атмел Студия.
Сейчас этот форум просматривают: Google [Bot] и гости: 6
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения