Новый ARM Atmel Cortex-M0+ ATSAMD20

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
MIB
Первый раз сказал Мяу!
Сообщения: 30
Зарегистрирован: Вт окт 16, 2012 21:27:35

Re: Новый ARM Atmel Cortex-M0+ ATSAMD20

Сообщение MIB »

Тю-у-у, я и не увидел. Ннну неплохо. За 2... 3 месяца сделали первый полный релиз ДШ.
Do You Like Water?.. Yes?.. Good, Then You Already Like 72% Of Me :-)
Frogfot
Мучитель микросхем
Сообщения: 443
Зарегистрирован: Ср окт 19, 2011 08:48:27
Откуда: Мать городов русских

Re: Новый ARM Atmel Cortex-M0+ ATSAMD20

Сообщение Frogfot »

Ну теперь можно уже всеръёз начинать курить даташит - все баги, надеюсь, уже выловили и расписАли в Errata :)
Хорошему коту и в декабре - март :)
Frogfot
Мучитель микросхем
Сообщения: 443
Зарегистрирован: Ср окт 19, 2011 08:48:27
Откуда: Мать городов русских

Re: Новый ARM Atmel Cortex-M0+ ATSAMD20

Сообщение Frogfot »

http://www.atmel.com/ru/ru/products/mic ... =documents - обновились аппноты по чипу.
Хорошему коту и в декабре - март :)
Frogfot
Мучитель микросхем
Сообщения: 443
Зарегистрирован: Ср окт 19, 2011 08:48:27
Откуда: Мать городов русских

Re: Новый ARM Atmel Cortex-M0+ ATSAMD20

Сообщение Frogfot »

Сделал мигалку на 4 светика - 1 на борде и 3 на плате дисплея.

Спойлер# define LED_Main PORT_PA14
# define LED_Ext_1 PORT_PA13
# define LED_Ext_2 PORT_PA12
# define LED_Ext_3 PORT_PA15

#include <asf.h>
#include "samd20.h"
#include "own_defs.c" // own defines for peripheral registers

int main (void)
{
bool bit_led = 0;
unsigned long temp = 0x00000000;

REG_SYSCTRL_OSC8M = OSC8M_FRANGE_11_15MHz_bg|OSC8M_PRESC_8MHz_bg|OSC8M_ENABLE_bm;

REG_PORT_DIRSET0 = LED_Main|LED_Ext_1|LED_Ext_2|LED_Ext_3;

// This skeleton code simply sets the LED to the state of the button.
while (1) {
temp++;
if (temp == 200000)
{
temp=0;
bit_led = !bit_led;

//port_pin_set_output_level ();
if (bit_led == 1) { REG_PORT_OUTSET0 = LED_Main|LED_Ext_1|LED_Ext_2|LED_Ext_3; }

else { REG_PORT_OUTCLR0 = LED_Main|LED_Ext_1|LED_Ext_2|LED_Ext_3; }
}

}
}
Хорошему коту и в декабре - март :)
Frogfot
Мучитель микросхем
Сообщения: 443
Зарегистрирован: Ср окт 19, 2011 08:48:27
Откуда: Мать городов русских

Re: Новый ARM Atmel Cortex-M0+ ATSAMD20

Сообщение Frogfot »

На демоборде с ATSAMD20 запустил SysTick с прерыванием, в правый коннектор воткнута плата с OLED.

LED0 - мигает в основном цикле, LED1 - в прерывании от SysTick.

Прикрепляю main, кому надо - могу выслать проект под Студию 6 - архив 1,8 Метра.
Вложения
main.c
(2.33 КБ) 618 скачиваний
Хорошему коту и в декабре - март :)
Аватара пользователя
AVKrobotics
Родился
Сообщения: 18
Зарегистрирован: Пн дек 09, 2013 13:27:21

Re: Новый ARM Atmel Cortex-M0+ ATSAMD20

Сообщение AVKrobotics »

Всем привет. 4 светодиода это хорошо, а можно 12 каналов управления Servo. Я собрал на ATMEGA328 робота, 9 каналов Servo, мне не хватает ресурса МК, а именно таймеров и скорости. Вот мое детище:
http://youtu.be/5tixGWxduIE :roll:
Аватара пользователя
balmer
Это не хвост, это антенна
Сообщения: 1433
Зарегистрирован: Вс дек 02, 2012 03:13:48
Откуда: Калининград

Re: Новый ARM Atmel Cortex-M0+ ATSAMD20

Сообщение balmer »

В STM32 есть много таймеров с ШИМ (до десятка). Обычно даже есть 2 таймера, которые могут хардварно "Combined 3-phase PWM mode".
Frogfot
Мучитель микросхем
Сообщения: 443
Зарегистрирован: Ср окт 19, 2011 08:48:27
Откуда: Мать городов русских

Re: Новый ARM Atmel Cortex-M0+ ATSAMD20

Сообщение Frogfot »

В SAMD20 6 или 8 16-битных таймеров, сам таймер я проинил и запустил по прерыванию, если надо - выложу тексты (нужно подправить тексты для читабельности и убрать лишний мусор).
Хорошему коту и в декабре - март :)
Аватара пользователя
MIB
Первый раз сказал Мяу!
Сообщения: 30
Зарегистрирован: Вт окт 16, 2012 21:27:35

Re: Новый ARM Atmel Cortex-M0+ ATSAMD20

Сообщение MIB »

Насколько помню у SAM3, SAM4 9 таймеров максимум. До 8-ми каналов ШИМ. А у семейства AT32UC3L до 35-ти 8-ми битных ШИМ-каналов (знаю потому что знакомые применяют в LED панельках, делают развёртку 1:4 или 1:8).
Do You Like Water?.. Yes?.. Good, Then You Already Like 72% Of Me :-)
Frogfot
Мучитель микросхем
Сообщения: 443
Зарегистрирован: Ср окт 19, 2011 08:48:27
Откуда: Мать городов русских

Re: Новый ARM Atmel Cortex-M0+ ATSAMD20

Сообщение Frogfot »

AVKrobotics писал(а): можно 12 каналов управления Servo. Я собрал на ATMEGA328 робота, 9 каналов Servo, мне не хватает ресурса МК, а именно таймеров и скорости.

Насчёт скорости согласен на 100%, меги маловато будет, а насчёт таймеров - думаю, можно обойтись 2-3 таймерами, просто сделать очередь задержек, и отрабатывать по очереди - где можно почитать подробно по управлению сервомашинками?

AVKrobotics писал(а): Вот мое детище: http://youtu.be/5tixGWxduIE :roll:

Робот уже подаёт признаки жизни :)
Хорошему коту и в декабре - март :)
Frogfot
Мучитель микросхем
Сообщения: 443
Зарегистрирован: Ср окт 19, 2011 08:48:27
Откуда: Мать городов русских

Re: Новый ARM Atmel Cortex-M0+ ATSAMD20

Сообщение Frogfot »

Вторая часть Марлезонского балета, пардон, развитие ATSAMD20 - ATSAMD21 - с USB, DMA, I2S, усовершенствованные таймеры - http://www.atmel.com/Images/Atmel-42181 ... asheet.pdf

А также мелконигие ARM M0+ (SO14/20) - SAMD10/11 с теми же плюшками - http://www.atmel.com/ru/ru/products/mic ... sam-d.aspx.
Хорошему коту и в декабре - март :)
Frogfot
Мучитель микросхем
Сообщения: 443
Зарегистрирован: Ср окт 19, 2011 08:48:27
Откуда: Мать городов русских

Re: Новый ARM Atmel Cortex-M0+ ATSAMD20

Сообщение Frogfot »

Atmel расширяет линейку микроконтроллеров на базе ядра ARM Corterx-M0+ тремя новыми сериями устройств - http://www.rtcs.ru/news_detail.asp?id=2085
Хорошему коту и в декабре - март :)
marus-ka
Родился
Сообщения: 5
Зарегистрирован: Ср мар 12, 2014 11:18:31

Re: Новый ARM Atmel Cortex-M0+ ATSAMD20

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

Всем привет!
Рада, что нашла обсуждение samd20, сама только начала его изучать и уже есть проблемы)
Вообще это мой первый 32-разрядный МК, поэтому еще сложнее.
Хочу прикрутить standalone asf к iar arm 6.50. Запускаю проект пример (led_toggle), компилится с варнингами (Warning[Pa050]: non-native end of line sequence detected (this diagnostic is only issued once) C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.5\asf-standalone-archive-3.15.0.87\xdk-asf-3.15.0\sam0\drivers\system\system.c 1 ), но это меня мало смущает, разберусь со временем)
Но, что меня действительно смущает - это то, что проект не шьется в мк ( использую отладочную плату samd20 xplained pro). Выдает две ошибки подряд:
Изображение
Изображение

Признаю, что могла что-то выбрать неправильно в настройках проекта ( хотя старалась туда не лазить).
Как это лечить? Где взять недостающий файл?
Frogfot
Мучитель микросхем
Сообщения: 443
Зарегистрирован: Ср окт 19, 2011 08:48:27
Откуда: Мать городов русских

Re: Новый ARM Atmel Cortex-M0+ ATSAMD20

Сообщение Frogfot »

2 marus-ka: я пока с IARом не работал, со Студией 6.1 (больше) и Keil 4/5 (меньше) уже разобрался, SAMD20-Xplained-Pro програмится и шьётся нормально.

Могу сбросить демопроект под Студию.
Хорошему коту и в декабре - март :)
marus-ka
Родился
Сообщения: 5
Зарегистрирован: Ср мар 12, 2014 11:18:31

Re: Новый ARM Atmel Cortex-M0+ ATSAMD20

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

Frogfot писал(а):
Могу сбросить демопроект под Студию.


Спасибо, но, наверное, не надо пока, по крайней мере. Проекты примеры есть в студии, пока с ними разбираюсь.
Frogfot
Мучитель микросхем
Сообщения: 443
Зарегистрирован: Ср окт 19, 2011 08:48:27
Откуда: Мать городов русских

Re: Новый ARM Atmel Cortex-M0+ ATSAMD20

Сообщение Frogfot »

2 marus-ka: под Студией железо работает, программится?
Хорошему коту и в декабре - март :)
marus-ka
Родился
Сообщения: 5
Зарегистрирован: Ср мар 12, 2014 11:18:31

Re: Новый ARM Atmel Cortex-M0+ ATSAMD20

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

Frogfot писал(а):2 marus-ka: под Студией железо работает, программится?

Да, под студией все ок. Даже код примера переделала, чтобы светодиод мигал, как мне нравится :wink: , зашилось и все работает.
Frogfot
Мучитель микросхем
Сообщения: 443
Зарегистрирован: Ср окт 19, 2011 08:48:27
Откуда: Мать городов русских

Re: Новый ARM Atmel Cortex-M0+ ATSAMD20

Сообщение Frogfot »

AVKrobotics писал(а):12 каналов управления Servo. Я собрал на ATMEGA328 робота, 9 каналов Servo, мне не хватает ресурса МК, а именно таймеров и скорости.

Ну SAMD21 в помощь - на чип по 3 усовершенствованных таймера для управления - по 8 ШИМов на каждый - т.е. 24 канала суммарно.

Также ERRATA поменьше будет чем в SAMD20.
Хорошему коту и в декабре - март :)
Аватара пользователя
vasich61
Родился
Сообщения: 3
Зарегистрирован: Чт мар 27, 2014 14:36:39

Re: Новый ARM Atmel Cortex-M0+ ATSAMD20

Сообщение vasich61 »

Добрый день, уважаемые курильщики SAMD20 Xplained Pro!

Скажите плиз, кто в итоге раскочегарил камень до 48Мгц от DFLL? Очень хотелось бы посмотреть пример. На основе ASF или в регистрах в рукопашную - не принципиально, главное какова последовательность действий. ASFовский пример Source Clock Driver не работает, отладчик слетает, а времени на разобрать все по полочкам оч мало(

Хотелось бы разобраться с логикой конфигурации генераторов. Правильно я понимаю, что чтобы заработал DFLL, нужно:

1. Настроить внутренний RC-генератор на 8МГц
2. Затактировать от него Generic Clock Generator 1 (например)
3. Завести с него сигнал на 0-й мультиплексор, как источник DFLL
4. Завести сигнал с DFLL на Generic Clock Generator 0 и от него уже тактировать ядро

?

Заранее благодарен
Frogfot
Мучитель микросхем
Сообщения: 443
Зарегистрирован: Ср окт 19, 2011 08:48:27
Откуда: Мать городов русских

Re: Новый ARM Atmel Cortex-M0+ ATSAMD20

Сообщение Frogfot »

vasich61 писал(а):Добрый день, уважаемые курильщики SAMD20 Xplained Pro!

Скажите плиз, кто в итоге раскочегарил камень до 48Мгц от DFLL? Очень хотелось бы посмотреть пример. На основе ASF или в регистрах в рукопашную - не принципиально, главное какова последовательность действий. ASFовский пример Source Clock Driver не работает, отладчик слетает, а времени на разобрать все по полочкам оч мало(

Тут таких умных нету :(

В Атмеловской аппноте - http://www.atmel.com/ru/ru/Images/Atmel ... T03821.pdf - вроде запустили DFLL от 32 кГц генератора, но я пока не вкуривал.

vasich61 писал(а):Хотелось бы разобраться с логикой конфигурации генераторов. Правильно я понимаю, что чтобы заработал DFLL, нужно:

1. Настроить внутренний RC-генератор на 8МГц
2. Затактировать от него Generic Clock Generator 1 (например)
3. Завести с него сигнал на 0-й мультиплексор, как источник DFLL
4. Завести сигнал с DFLL на Generic Clock Generator 0 и от него уже тактировать ядро

RC генератор я инил так:

REG_SYSCTRL_OSC8M = OSC8M_FRANGE_11_15MHz_bg|OSC8M_PRESC_8MHz_bg|OSC8M_ENABLE_bm

правда - не на 8 МГц, а на 11-15 МГц, сколько реально - я не проверял.
Хорошему коту и в декабре - март :)
Ответить

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