Новый ARM Atmel Cortex-M0+ ATSAMD20
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
Тю-у-у, я и не увидел. Ннну неплохо. За 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
Ну теперь можно уже всеръёз начинать курить даташит - все баги, надеюсь, уже выловили и расписАли в Errata 
Хорошему коту и в декабре - март 
-
Frogfot
- Мучитель микросхем
- Сообщения: 443
- Зарегистрирован: Ср окт 19, 2011 08:48:27
- Откуда: Мать городов русских
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
http://www.atmel.com/ru/ru/products/mic ... =documents - обновились аппноты по чипу.
Хорошему коту и в декабре - март 
-
Frogfot
- Мучитель микросхем
- Сообщения: 443
- Зарегистрирован: Ср окт 19, 2011 08:48:27
- Откуда: Мать городов русских
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
Сделал мигалку на 4 светика - 1 на борде и 3 на плате дисплея.
# 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; }
}
}
}
Спойлер
# 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
На демоборде с ATSAMD20 запустил SysTick с прерыванием, в правый коннектор воткнута плата с OLED.
LED0 - мигает в основном цикле, LED1 - в прерывании от SysTick.
Прикрепляю main, кому надо - могу выслать проект под Студию 6 - архив 1,8 Метра.
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
Всем привет. 4 светодиода это хорошо, а можно 12 каналов управления Servo. Я собрал на ATMEGA328 робота, 9 каналов Servo, мне не хватает ресурса МК, а именно таймеров и скорости. Вот мое детище:
http://youtu.be/5tixGWxduIE
http://youtu.be/5tixGWxduIE
- balmer
- Это не хвост, это антенна
- Сообщения: 1433
- Зарегистрирован: Вс дек 02, 2012 03:13:48
- Откуда: Калининград
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
В STM32 есть много таймеров с ШИМ (до десятка). Обычно даже есть 2 таймера, которые могут хардварно "Combined 3-phase PWM mode".
-
Frogfot
- Мучитель микросхем
- Сообщения: 443
- Зарегистрирован: Ср окт 19, 2011 08:48:27
- Откуда: Мать городов русских
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
В SAMD20 6 или 8 16-битных таймеров, сам таймер я проинил и запустил по прерыванию, если надо - выложу тексты (нужно подправить тексты для читабельности и убрать лишний мусор).
Хорошему коту и в декабре - март 
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
Насколько помню у 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
AVKrobotics писал(а): можно 12 каналов управления Servo. Я собрал на ATMEGA328 робота, 9 каналов Servo, мне не хватает ресурса МК, а именно таймеров и скорости.
Насчёт скорости согласен на 100%, меги маловато будет, а насчёт таймеров - думаю, можно обойтись 2-3 таймерами, просто сделать очередь задержек, и отрабатывать по очереди - где можно почитать подробно по управлению сервомашинками?
AVKrobotics писал(а): Вот мое детище: http://youtu.be/5tixGWxduIE
Робот уже подаёт признаки жизни
Хорошему коту и в декабре - март 
-
Frogfot
- Мучитель микросхем
- Сообщения: 443
- Зарегистрирован: Ср окт 19, 2011 08:48:27
- Откуда: Мать городов русских
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
Вторая часть Марлезонского балета, пардон, развитие 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.
А также мелконигие 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
Atmel расширяет линейку микроконтроллеров на базе ядра ARM Corterx-M0+ тремя новыми сериями устройств - http://www.rtcs.ru/news_detail.asp?id=2085
Хорошему коту и в декабре - март 
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
Всем привет!
Рада, что нашла обсуждение 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). Выдает две ошибки подряд:


Признаю, что могла что-то выбрать неправильно в настройках проекта ( хотя старалась туда не лазить).
Как это лечить? Где взять недостающий файл?
Рада, что нашла обсуждение 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
2 marus-ka: я пока с IARом не работал, со Студией 6.1 (больше) и Keil 4/5 (меньше) уже разобрался, SAMD20-Xplained-Pro програмится и шьётся нормально.
Могу сбросить демопроект под Студию.
Могу сбросить демопроект под Студию.
Хорошему коту и в декабре - март 
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
Frogfot писал(а):
Могу сбросить демопроект под Студию.
Спасибо, но, наверное, не надо пока, по крайней мере. Проекты примеры есть в студии, пока с ними разбираюсь.
-
Frogfot
- Мучитель микросхем
- Сообщения: 443
- Зарегистрирован: Ср окт 19, 2011 08:48:27
- Откуда: Мать городов русских
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
2 marus-ka: под Студией железо работает, программится?
Хорошему коту и в декабре - март 
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
Frogfot писал(а):2 marus-ka: под Студией железо работает, программится?
Да, под студией все ок. Даже код примера переделала, чтобы светодиод мигал, как мне нравится
-
Frogfot
- Мучитель микросхем
- Сообщения: 443
- Зарегистрирован: Ср окт 19, 2011 08:48:27
- Откуда: Мать городов русских
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
AVKrobotics писал(а):12 каналов управления Servo. Я собрал на ATMEGA328 робота, 9 каналов Servo, мне не хватает ресурса МК, а именно таймеров и скорости.
Ну SAMD21 в помощь - на чип по 3 усовершенствованных таймера для управления - по 8 ШИМов на каждый - т.е. 24 канала суммарно.
Также ERRATA поменьше будет чем в SAMD20.
Хорошему коту и в декабре - март 
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
Добрый день, уважаемые курильщики 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 и от него уже тактировать ядро
?
Заранее благодарен
Скажите плиз, кто в итоге раскочегарил камень до 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
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 МГц, сколько реально - я не проверял.
Хорошему коту и в декабре - март 