Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AT91SAM3U4E
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
*rust*
От ATMELа есть пример Getting Started Project. Загружаю его в проц. все работает как надо. Далее, удаляю весь код, оставляя только подключения заголовочных файлов и это:


Код
int main(void)
{
    // DBGU output configuration
    TRACE_CONFIGURE(DBGU_STANDARD, 115200, BOARD_MCK);
    
     while(1)
      {
      printf("-- %s\n\r", BOARD_NAME);
      }
}


загружаю в проц. и привет, он не стартует, смотрю под отладкой программа крутится в
Код
WEAK void HardFault_Handler(void)
{
    while(1);
}

это из exception.h

в логе дебагера вижу
Цитата
Bus fault: Imprecise data bus error!


Из внешних проявлений, не вижу генерации на кварце.

Иногда запускается иногда нет, может постоять "подумать" потом запуститься.
В чем может сидеть проблема?

*rust*
Уж не знаю как отреагирует народ, но у АРМов от Атмела есть проблема судите сами:

Дабы исключить всякие разногласия и провести чистый эксперимент я перепаял нормально работающий процессор на борде на тот который удалось купить. Зашил, запустил, поведение точно такое же как я описывал постом выше. Прежний проц. работал нормально!!!
Бордовский проц. от середины 2009 года, с пометкой ES, купленный проц. имеет дату выпуска конец января 2011 года, без пометок. Errara есть только на процы с пометкой ES и ES4

Вот так-то!!!

Буду писать в Атмел, посмотрим что ответят.
aaarrr
Проверьте правильность настройки PLL (особенно по нижней границе входной частоты - 8MHz) и EEFC_FMR (он должен инициализироваться кодом, находящимся в RAM).
Использование атмеловского примера никак не гарантирует правильность этих настроек.

P.S. Errata есть и на процессоры ревизии "A", находится в хвосте даташита.
*rust*
Цитата
P.S. Errata есть и на процессоры ревизии "A", находится в хвосте даташита.


У меня этот документ Errata on SAM3U Engineering Sample Devices датируется 9августа 2010г, ничего для ревизии AU я не нашел.

Цитата
Проверьте правильность настройки PLL (особенно по нижней границе входной частоты - 8MHz) и EEFC_FMR (он должен инициализироваться кодом, находящимся в RAM).


Борд один и тот же, процессоры разные. На одном работает на другом нет. Я не могу утверждать, но мне кажется, что-то не так с процессором.
Атмег
Цитата(aaarrr @ Apr 8 2011, 11:47) *
Использование атмеловского примера никак не гарантирует правильность этих настроек.


В качестве иллюстрации: год назад здесь пытался выяснить причины неадекватного поведения sam9263. Попытки локализации ошибки ни к чему не приводили. Причина была в конфигурации sdram из атмеловского стартапа.
aaarrr
Цитата(*rust* @ Apr 8 2011, 13:26) *
У меня этот документ Errata on SAM3U Engineering Sample Devices датируется 9августа 2010г, ничего для ревизии AU я не нашел.

Еще раз: errata на процессоры ревизии "A", находится в хвосте даташита (раздел 47 doc6430.pdf).

Цитата(*rust* @ Apr 8 2011, 13:26) *
Борд один и тот же, процессоры разные. На одном работает на другом нет. Я не могу утверждать, но мне кажется, что-то не так с процессором.

Я тоже ничего не могу утверждать, но мне кажется, что что-то не так с вашей программой.
*rust*
Код
Еще раз: errata на процессоры ревизии "A", находится в хвосте даташита (раздел 47 doc6430.pdf).


есть такое, я не обратил внимание.

ATMEL ответил, что разница между этими процессорами есть и нужно ее учитывать, согласно errata документации. Если честно, мне не очень нравиться тот факт, что процессоры разных ревизий, так сильно отличаются. Я понимаю, когда какая-то мелочь может не работать или работать не совсем по документации, но глюк при запуске это уж слишком. ИМХО..
Genadi Zawidowski
В процессе запуска выяснил, что в скопрированном один-в-один куске инициализации PLL десятки секунд ждём переключения на SLOW CLOCK:
Код
#if 0

    if ((SUPC->SUPC_SR & SUPC_SR_OSCSEL) != SUPC_SR_OSCSEL_CRYST)
    {
        SUPC->SUPC_CR = SUPC_CR_XTALSEL_CRYSTAL_SEL | ((uint32_t) 0xA5 << 24);
        //timeout = 0;
        while (!(SUPC->SUPC_SR & SUPC_SR_OSCSEL_CRYST) )
        ;
    }
#endif


Закомментарил, стало запускаться мгновенно. Кроме того, заработал RESET (в этом процессоре разрешённый сразу). До того как этот кусок закомментровал, запуск ускорялся от подачи сигнала на вход RXD USART0... WATCHDOG я запрещал до перенастройки PLL. В оригинальном примере, кажется, всё это под наблюдением собаки делается.
Атмег
*rust*, проверьте, не такая ли ситуация и в вашем случае? сцылка
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.