Новый ARM Atmel Cortex-M0+ ATSAMD20
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
До завтра, парни.
Do You Like Water?.. Yes?.. Good, Then You Already Like 72% Of Me 
- Leopoldius
- Родился
- Сообщения: 10
- Зарегистрирован: Пн дек 09, 2013 01:13:56
- Откуда: Украина, Полтава
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
dosikus писал(а):Благодарствую . Жаль вердикт только завтра увижу , спать .
Зы лучше лапкой помахать и на осцилл или лог. анализатор...
Доброй ночи. Увы, нет у меня еще осцила, впрочем как и лог аналазитора дома:(
Обновлено[23:36 09/12/13]
Прогнал я код. Единственное что надо добавить:
Код: Выделить всё
...
NVIC_EnableIRQ(SysTick_IRQn);
__enable_irq;
...
Из нюансов - тактируется он от стандартного RC по умолчанию, в кайле нереализован запуск. Так и написано. Надо выкачивать ASF и оттуда юзать заголовки и файлики похоже.
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
Leopoldius писал(а):Прогнал я код. Единственное что надо добавить:Код: Выделить всё
...
NVIC_EnableIRQ(SysTick_IRQn);
__enable_irq;
...
Не знаю зачем это нужно , может у Вас Keil не той системы .
Systick инитится в CMSIS и все что нужно уже есть .
Вчитайтесь внимательно в код .
Код: Выделить всё
*/
__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
{
if ((ticks - 1) > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */
SysTick->LOAD = ticks - 1; /* set reload register */
NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1); /* set Priority for Systick Interrupt */
SysTick->VAL = 0; /* Load the SysTick Counter Value */
SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
SysTick_CTRL_TICKINT_Msk |
SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */
return (0); /* Function successful */
}
#endifХэдеры и исходники есть в Keil в соотвествующих папках.
- Leopoldius
- Родился
- Сообщения: 10
- Зарегистрирован: Пн дек 09, 2013 01:13:56
- Откуда: Украина, Полтава
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
dosikus писал(а):Хэдеры и исходники есть в Keil в соотвествующих папках.
Keil у меня 4.73
файл system_samd20.c я бы не сказал что сильно полный. Прикладываю его для ознакомления
UPD: странно - прицепилось два.
Возможно и недосмотрел, ибо время було позднеею. Сегодня на работе внятнее посмотрю.
- Вложения
-
- system_samd20.c
- (2.64 КБ) 336 скачиваний
-
- system_samd20.c
- (2.64 КБ) 422 скачивания
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
Leopoldius писал(а):Keil у меня 4.73
файл system_samd20.c я бы не сказал что сильно полный. Прикладываю его для ознакомленияъ
У меня 5 .
Сей файл и у меня такой же , только при чем здесь он ?
Инит SySTick( снова как попугай долблю) находится в CMSIS .
В KEil есть поиск определений и объявлений -пользуй контекстное меню ...
- Leopoldius
- Родился
- Сообщения: 10
- Зарегистрирован: Пн дек 09, 2013 01:13:56
- Откуда: Украина, Полтава
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
Я ж и говорю про функцию SystemInit, в которой по идее должно настраиватся тактирование и т.д. Да, с с систиком я разобрался уже. Во всем виноват Морфей
В ней ничего не реализовано. Вот про что я
В ней ничего не реализовано. Вот про что я
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
Leopoldius писал(а):В ней ничего не реализовано. Вот про что я
Согласен , но тыркаться в симуляторе - как то не спортивно.
А так - смотреть реализацию в ASF и стряпать свою по образу и подобию...
- AVKrobotics
- Родился
- Сообщения: 18
- Зарегистрирован: Пн дек 09, 2013 13:27:21
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
Спасибо за программу, сделал как написано все работает, вот видео http://www.youtube.com/watch?v=BA1OROtf ... e=youtu.be
http://youtu.be/BA1OROtfhOA
Очень даже мяу!
http://youtu.be/BA1OROtfhOA
Очень даже мяу!

Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
Поздравляю!
Предлагаю присоединиться "курить" ДШ и платку. Гуртом і батька бити легше
Предлагаю присоединиться "курить" ДШ и платку. Гуртом і батька бити легше
Do You Like Water?.. Yes?.. Good, Then You Already Like 72% Of Me 
- AVKrobotics
- Родился
- Сообщения: 18
- Зарегистрирован: Пн дек 09, 2013 13:27:21
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
У меня намечается проект. Ходячий робот на 4 ногах. Планирую 6 сервоприводов. Хотел на Arduino MEGA2560 но плата тяжелая по весу. Эта плата вполне подходит. Вот только надо сформировать 6 независимых сигналов период 20 mS импульс 1.0 1.5 2.0 mS. Думаю попробовать на этой плате. Поможете в начинаниях?
Буду очень мяу, и даже не бесплатно
Буду очень мяу, и даже не бесплатно

- Вложения
-
- Чертеж11.jpg
- Расположение серводвигателей
- (7.68 КБ) 666 скачиваний
-
- Чертеж2.jpg
- Внешний вид
- (15.83 КБ) 709 скачиваний
-
Frogfot
- Мучитель микросхем
- Сообщения: 443
- Зарегистрирован: Ср окт 19, 2011 08:48:27
- Откуда: Мать городов русских
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
Народ здарова!
Кто-то уже вкурил как заюзать PLL, т.е. DFLL48L?
2 AVKrobotics: я тока начал вкуривать чип, разбираюсь с клоками. В принципе мощи хватит ногами и софтверно подрыгать. Какие там необходимы диаграммы выходов управления сервами?
Кто-то уже вкурил как заюзать PLL, т.е. DFLL48L?
2 AVKrobotics: я тока начал вкуривать чип, разбираюсь с клоками. В принципе мощи хватит ногами и софтверно подрыгать. Какие там необходимы диаграммы выходов управления сервами?
Хорошему коту и в декабре - март 
- AVKrobotics
- Родился
- Сообщения: 18
- Зарегистрирован: Пн дек 09, 2013 13:27:21
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
Проект уже начали на плате Arduino Spider контроллер http://arduino-ua.com/prod516-Spider_kontroller_48_serv, программа для проекта написана к ATmega 1280: http://letsmakerobots.com/node/25923, я пробую перенести эту программу на нашу плату. Привожу пример Листинг1. Честно говоря не могу понять как сервы коммутируются. Если за 20 мС на серв не будет подан импульс, то серв перейдет в положение 90 грд что соответствует импульсу в 1,5 мС.
Всем мяу
Всем мяу

- Вложения
-
- Листинг1.txt
- Листинг включения 48 сервов
- (2.58 КБ) 329 скачиваний
-
Frogfot
- Мучитель микросхем
- Сообщения: 443
- Зарегистрирован: Ср окт 19, 2011 08:48:27
- Откуда: Мать городов русских
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
2 AVKrobotics: отличие SAMD20 от ATmega1280 - что ARM ноги допускают напряжение не выше 3,3-3,6В, а AVR8 - 5В, и имеют бОльшую нагрузочную способность - 20 мА тянут спокойно. По схеме сервопривриводов - http://arduino-ua.com/index.php?productID=216 - вроде обмотки подключены прямо к портам контроллера, вроде 20 мА на землю порты ARM тянут, серва нужна на 3 В.
Хорошему коту и в декабре - март 
- AVKrobotics
- Родился
- Сообщения: 18
- Зарегистрирован: Пн дек 09, 2013 13:27:21
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
Я буду ставить ULN2003 или полевики. Напрямую лучше сервами не управлять. Тем более сервы потребляют большие токи, их питание будет от преобразователя. Примерно конструкция будет такая http://www.youtube.com/watch?v=pNPbMrIyFA0
Основной вопрос это независимость управления каждым сервом. На видео видно что управление цепочечное. Ресурса Mega 1280 мало он успевает только давать команды сервам, при этом он не думает что делает,
а на нашей плате очень хороший МК. Опыт управления есть, но программы в асме. http://www.youtube.com/watch?v=kGfjNqDFSaE
Спасибо за понимание мяу.
Основной вопрос это независимость управления каждым сервом. На видео видно что управление цепочечное. Ресурса Mega 1280 мало он успевает только давать команды сервам, при этом он не думает что делает,
а на нашей плате очень хороший МК. Опыт управления есть, но программы в асме. http://www.youtube.com/watch?v=kGfjNqDFSaE
Спасибо за понимание мяу.

-
Frogfot
- Мучитель микросхем
- Сообщения: 443
- Зарегистрирован: Ср окт 19, 2011 08:48:27
- Откуда: Мать городов русских
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
AVKrobotics писал(а):Я буду ставить ULN2003 или полевики. Напрямую лучше сервами не управлять.
Ну совсем другое дело.
AVKrobotics писал(а):Ресурса Mega 1280 мало он успевает только давать команды сервам, при этом он не думает что делает... Опыт управления есть, но программы в асме.
На асме по прерываниям таймера ресурсов Mega 1280 должно хватить, если не использовать софтверные задержки по 25 мкС.
AVKrobotics писал(а):на нашей плате очень хороший МК.
Чип то хороший, остались только мелочи - разобраться с ним
Хорошему коту и в декабре - март 
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
Я злой
Не работает GCG-1 от XOSC32K хоть ты укакайся. Сделано всё step-by-step по ДШ. Написал на Atmel HotLine. Бум ждать ответа. 
Половички получше будут. Падение на переходах меньше, управлять проще. Главное не прохлопать тот момент при каком напряжении на затворе транзистор гарантированно открывается. У нас же уровень с IO МК всего 3,3 В.
Судя по Errata у DFLL48M серьёзные траблы в формате не там где нужно расположенных битовых групп, и неньшему числу этих самых бит. Как DFLL будет работать я так и не понял, там где множитель у DFLL48M всего 8 бит. Ну clock референс для DFLL48M всего 32 кГц. Теперь если перемножим 32768 кГц на 256 (2^8) то получаем печальные 8`388`608 =~ 8 MHz. Я делаю вывод что DFLL48M работать не будет. опровергните если я не прав, уважаемое сообщество.

AVKrobotics писал(а):Я буду ставить ULN2003 или полевики. Напрямую лучше сервами не управлять. Тем более сервы потребляют большие токи, их питание будет от преобразователя...
Половички получше будут. Падение на переходах меньше, управлять проще. Главное не прохлопать тот момент при каком напряжении на затворе транзистор гарантированно открывается. У нас же уровень с IO МК всего 3,3 В.
Frogfot писал(а):Кто-то уже вкурил как заюзать PLL, т.е. DFLL48L?
Судя по Errata у DFLL48M серьёзные траблы в формате не там где нужно расположенных битовых групп, и неньшему числу этих самых бит. Как DFLL будет работать я так и не понял, там где множитель у DFLL48M всего 8 бит. Ну clock референс для DFLL48M всего 32 кГц. Теперь если перемножим 32768 кГц на 256 (2^8) то получаем печальные 8`388`608 =~ 8 MHz. Я делаю вывод что DFLL48M работать не будет. опровергните если я не прав, уважаемое сообщество.
Последний раз редактировалось MIB Чт дек 12, 2013 17:59:42, всего редактировалось 1 раз.
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
MIB писал(а):Я злойНе работает GCG-1 от XOSC32K
А кварц запускается - осцилом пасмареть?
По идее чтобы его запустить - нужно поднять в "1" биты:
Bit 2 – XTALEN: Crystal Oscillator Enable
Bit 1 – ENABLE: Oscillator Enable
Последний раз редактировалось Frogfot Чт дек 12, 2013 18:18:05, всего редактировалось 2 раза.
Хорошему коту и в декабре - март 
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
Дык, писал же-ж вроде - подобие синуса чётко видно, даже while() выполняющий ожидание запуска генератора подвешивается на секунды, потом отпускает когда флаг готовности возводится. Всё гут. Frogfot, глянь по ДШ, там с инициализацией генератора всё просто до предела, ребёнок должен асилить. По errata Automatic Amplitude Control не фурыкает. Да и хрен с ним, написано - просто не использовать. Время запуска генератора установил по максимуму - 4 секунды. За это время любой генератор должен выйти на рабочий режим. Кароче, здаётся мне что с DFLL пока можно не париться, ждать когда почистят этот баг. Просто вешать ВЧ кварц на, скажем, 24 МГц и радоваться камушку без DFLL. 24 МГц на 32-х битах математики должно хватить всем что-бы потренироваться.
Пока буду ждать ответ от ATMEL по XOSC32K, если решат, можно будет спросить за DFLL48M как с её траблами быть.
Пока буду ждать ответ от ATMEL по XOSC32K, если решат, можно будет спросить за DFLL48M как с её траблами быть.
Do You Like Water?.. Yes?.. Good, Then You Already Like 72% Of Me 
Re: Новый ARM Atmel Cortex-M0+ ATSAMD20
Frogfot писал(а):По идее чтобы его запустить - нужно поднять в "1" биты:
Bit 2 – XTALEN: Crystal Oscillator Enable
Bit 1 – ENABLE: Oscillator Enable
Пожалуй распишу, что бы народу было понятно. Текущий даташитег - http://www.atmel.com/Images/Atmel-42129 ... asheet.pdf номер и ревизия документа 42129I–SAM–12/2013 Страница 133, пункт 16.6.3 - 32kHz External Crystal Oscillator (XOSC32K) Operation.
Краткий вольный перевод:
XOSC32K работает в 2-х режимах: 1) Как приёмник внешнего такта подаваемого на пин XIN32 2) Как генератор с внешним кварцем на 32.768kHz между выводами XIN32 и XOUT32. XOSC32K может работать как источник такта для generic clock generators (генераторов общего назначения), как описано в разделе “GCLK – Generic Clock Controller” на странице 79.
После подачи питания XOSC32K вырублен, и выводы XIN32/XOUT32 могут быть использованы как обычные I/O
(GPIO) линии или выводы других перифирических функций. Когда XOSC32K активный, функция линий GPIO определяется режимом работы XOSC32K. Когда XOSC32K работает в генераторном режиме, функция XIN32 и XOUT32 определяется модулем SYSCTRL, и функция GPIO определяется для обоих пинов (как генератора). Когда XOSC32K работает как приёмник внешнего такта XIN32 работает как вход. Вывод XOUT32 как и прежде работает как обычная линия GPIO.
Модуль XOSC32K может быть активирован как приёмник внешнего такта, или как генератор битовой записью (XOSC32K.ENABLE) в 32kHz
External Crystal Oscillator управляющем регистре. Для активации XOSC32K как кварцевого генератора, лог. 1 должна быть записана в XTAL Enable бит (XOSC32K.XTALEN). Если XOSC32K.XTALEN в состоянии лог. 0 XOSC32K будет работать как приёмник внешнего такта.
Генаратор может быть вырублен записью лог. 0 в XOSC32K.ENABLE в регистре управления 32kHz External Crystal Oscillator при этом сохраняя остальные биты неизменными.
Запись остальных бит настройки одновременно с XOSC32K.ENABLE могут привести к непредсказуемому результату! Генератор остаётся в рабочем состоянии во всех режимах сна, если он был включен заблаговременно. Время запуска генератора 32kHz выбирается записью в Oscillator Start-Up Time группу битов (XOSC32K.STARTUP) в регистре управления 32kHz External Crystal Oscillator. Модуль SYSCTRL маскирует выход генератора XOSC32K на протяжении цикла запуска, что бы нестабильный такт не повалил на цифровую логику. Бит PCLKSR.XOSC32KRDY активизируется как только генератор заведётся плюс пользовательская настройка указанная в user-selected startup time группе бит. Также может быть сгенерено прерывание по переходу с нулевого состояния в единичное бита PCLKSR.XOSC32KRDY конечно же если было разрешение на прерывание задаваемое в регистре INTENSET.XOSC32KRDY.
Как генератор работающий с внешним кварцем XOSC32K требует очень длинный временной промежуток для гарантированного запуска генератора, вплоть до секунд. Генератор 32kHzможет сохранять свою работоспособность несмотря на сигнал внешнего сброса за исключением сигнала сброса возникающего при подаче питания (POR). Генератор XOSC32K может выдать 2 внешних тактовых сигнала если были установлены биты XOSC32K.EN1K и/или XOSC32K.EN32K.
Премного благодарен если вы зацените мой перевод и вникните в него. С уважением.
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
MIB писал(а):Текущий даташитег - http://www.atmel.com/Images/Atmel-42129 ... asheet.pdf номер и ревизия документа 42129I–SAM–12/2013
Ура! Поздравляем компанию Atmel с Removed “Preliminary”
Хорошему коту и в декабре - март 