реклама на сайте
подробности

 
 
> Проблема с внешним кварцем ATSAM4SD32C, Не заводлится от внешнего кварца.
Грендайзер
сообщение Feb 18 2015, 07:49
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



Всем доброго времени суток. Пытаю отладочную плату SAM4S-EK2 на базе контроллера ATSAM4SD32C. Пытаюсь заставить микросхему тактироваться от внешнего кварца 12МГц. Делаю всё как указано в даташите. Сначала перевожу процессор на тактирование от низкочастотного внутреннего генератора:
PMC -> PMC_MCKR = PMC_MCKR_CSS_SLOW_CLK;
Тут всё работает, процессор действительно начинает медленно работать. Далее запускаю кварцевй генератор:
PMC -> CKGR_MOR = CKGR_MOR_MOSCRCEN | CKGR_MOR_MOSCRCF_12_MHz| CKGR_MOR_MOSCXTEN | CKGR_MOR_MOSCXTST_Msk | CKGR_MOR_KEY_PASSWD;
При этом если разбить данную строчку на 2, т.е.:
PMC -> CKGR_MOR = CKGR_MOR_MOSCRCEN | CKGR_MOR_MOSCRCF_12_MHz| CKGR_MOR_KEY_PASSWD;
PMC -> CKGR_MOR = CKGR_MOR_MOSCXTEN | CKGR_MOR_MOSCXTST_Msk | CKGR_MOR_KEY_PASSWD;
то выскакивает ошибка о которой скажу ниже.
И так, кварцевый генератор запускается (смотрю осциллографом на резонаторе, есть генерация).
Далее жду некоторое время:
for(int i = 0; i < 10000; i++)
{}
Далее ставлю кварцевый генератор, как основной и переключаюсь с низкочастотного генератора на кварцевый:
PMC -> CKGR_MOR = CKGR_MOR_MOSCSEL | CKGR_MOR_KEY_PASSWD;
PMC -> PMC_MCKR = PMC_MCKR_CSS_MAIN_CLK;
Компилю... Всё норм... но после прошивки ничего не происходит, а при повторной попытке прошить выскакивает ошибка, как на картинке. Единственный способ перепрошить - притянуть ногу ERASE к 0 и затем передёрнуть питание. Есть подозрения на программатор Atmel-ICE. 3 дня уже убил, всё перепробовал.

Сообщение отредактировал Грендайзер - Feb 18 2015, 07:51
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Грендайзер
сообщение Feb 18 2015, 09:11
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



DmitryM, большое спасибо, вроде заработало! cheers.gif 3 дня блин... blink.gif
Не могли бы Вы ещё несколько вопросо просветить:
1) По коду:
PMC->PMC_MCKR = (PMC->PMC_MCKR & ~(uint32_t)PMC_MCKR_CSS_Msk) |PMC_MCKR_CSS_MAIN_CLK;
можно прокомментировать эту строку?
2) Из-за чего происходила ошибка?
3) И последний, как отработать прерывания в данной микросхеме? Т.е. в AVR я помню когда писал на ассемблере, задавал вектор прерываний, тем самым указывая процессору, какую подпрограмму надо выполнять если произошло именно это прерывание, когда писал на C использовал ф-ции из ToolChein'а но помню с этими ф-циями были какие то проблемы. Вот и сейчас использовать ф-ции которые Atmel предлагает - опять гадать в чём проблема. Тем более недавно пытался такой пользоваться, так выскочела та же ошибка...
Go to the top of the page
 
+Quote Post
DmitryM
сообщение Feb 18 2015, 11:07
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840



Цитата(Грендайзер @ Feb 18 2015, 12:11) *
Не могли бы Вы ещё несколько вопросо просветить:
1) По коду:
PMC->PMC_MCKR = (PMC->PMC_MCKR & ~(uint32_t)PMC_MCKR_CSS_Msk) |PMC_MCKR_CSS_MAIN_CLK;

Обратите внимание, что MCKR Read/Write. Т.е. очистка поля CSS и задание CSS_MAIn_CLOCK без изменения остальных полей.
Цитата
2) Из-за чего происходила ошибка?

Возможно, переключение на нестабилизированный генератор. Разбираться надо подробнее.
Цитата
3) И последний, как отработать прерывания в данной микросхеме? Т.е. в AVR я помню когда писал на ассемблере...

Примерно как в AVR.
Например, прерывание от USART0.

void USART0_Handler( void )
{
...
}

Дополнительная настройка:

NVIC_SetPriority(USART0_IRQn, 6);
NVIC_EnableIRQ(USART0_IRQn);
USART0->US_IER = US_IER_RXRDY;

Весь перечень доступных ХХХ_Handler для данного кристала описан в startup_sam4s.c
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 16:20
Рейтинг@Mail.ru


Страница сгенерированна за 0.01368 секунд с 7
ELECTRONIX ©2004-2016