Загрузчик SAM R21 ждет часов бесконечно

Я работаю над проектом, и мне нужно, чтобы Arduino IDE связывался с SAM R21 XPRO, чтобы я мог программировать его как обычную плату Arduino. Я начал с загрузчика arduino для mzero, который похож на D21, и хотел изменить его в соответствии со своими потребностями, но я наткнулся на бесконечный цикл.

При запуске usb программа бесконечно ждет запуска часов.

/* Check clock after enable module, request the clock */
udd_wait_clock_ready();

Внутри этой функции программа зависает при первом

#define DFLL_READY_FLAG (SYSCTRL_PCLKSR_DFLLRDY | \
                         SYSCTRL_PCLKSR_DFLLLCKF | SYSCTRL_PCLKSR_DFLLLCKC)

/* In USB recovery mode the status is not checked */
if (!(SYSCTRL->DFLLCTRL.reg & SYSCTRL_DFLLCTRL_USBCRM)) {
    while((SYSCTRL->PCLKSR.reg & DFLL_READY_FLAG) != DFLL_READY_FLAG);
} else {
    while((SYSCTRL->PCLKSR.reg & SYSCTRL_PCLKSR_DFLLRDY) != SYSCTRL_PCLKSR_DFLLRDY);
}

Я уже некоторое время читаю таблицу данных, и единственное, что я понял, это следующее.

3 - Биты состояния DFLL в регистре PCLKSR во время режима восстановления часов USB могут быть неправильными после состояния приостановки USB.

Исправление / Обходной путь: Не контролируйте биты состояния DFLL в регистре PCLKSR во время режима восстановления часов USB.

Я попытался принять во внимание только флаг DFLLRDY, он больше не останавливается на этом, но после того, как он возвращается к основному и ожидает сообщений, USB поднимает флаг прерывания и продолжает сбрасывать плату.

Я также попытался изменить настройки часов, чтобы запустить все часы, потому что подумал, что, может быть, я забыл включить их, но безуспешно, флаги DFLLLCKF и DFLLLCKC не установлены в 1.

Спецификация R21: http://ww1.microchip.com/downloads/en/DeviceDoc/SAM-R21_Datasheet.pdf

Загрузчик D21: https://github.com/arduino/ArduinoCore-samd/tree/master/bootloaders/mzero/Bootloader_D21/src

Мой проект R21: https://github.com/BlanzeanuDoru/lucrare_licenta/tree/master/bootloader_r21/bootloader_r21/src

Несколько советов о том, что делать дальше, будут очень полезны. Благодарю.

0 ответов

Другие вопросы по тегам