Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Полный сброс SAM7
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
KAlex
Железка подключена к компу по usb.
Иногда возникает необходимость рестарта.
если даю команду:
AT91C_BASE_RSTC->RSTC_RCR = AT91C_SYSC_PROCRST | AT91C_SYSC_PERRST | (0xA5 << 24);
комп пишет "устройство не определено"
Если же сбрасываться по собаке, все ок.
Почему? В чем разница?
aaarrr
А pull-up на USB как управляется?
KAlex
PA19.
При начале инитдевайс в 0. Инит достаточно долгий, около 5 сек. Затем в 1.
Инит проходит, что через WDT, что програмно. 100%.
_dem
Есть ньюанс smile.gif
Код
void Reset( void )
{

    // perfoming MCU reset using RESET controller
    AT91C_BASE_RSTC->RSTC_RCR = (0xA5000000) | (AT91C_RSTC_PROCRST) | (AT91C_RSTC_EXTRST) |(AT91C_RSTC_PERRST); // Reset CPU;PERIPHERAL;NRST
    
    // waiting for reset complete
    while (AT91C_BASE_RSTC->RSTC_RSR && AT91C_RSTC_SRCMP) {};
    
    void (*resetVector)(void) = 0x000000;
    resetVector();
}


Последнее - resetVector() - контрольная перестраховка smile.gif
aaarrr
Цитата(_dem @ May 15 2008, 15:44) *
Последнее - resetVector() - контрольная перестраховка smile.gif

Да здесь сплошь перестраховки. Достаточно сделать так:
Код
    while(0x01)
        AT91C_BASE_RSTC->RSTC_RCR = (0xa5UL << 0x18) | AT91C_RSTC_PROCRST | AT91C_RSTC_PERRST;
_dem
Можно.
Для меня в свое время было откровением, что просто дать команду сброса недостаточно. Надо еще дождаться, пока ты сам себя сбросишь smile.gif

Для меня важно то, что после многих итераций вышеприведенный код нормально (тьфу-тьфу-тьфу) работает на всех наших проектах с SAM7 (S/X).
aaarrr
Цитата(_dem @ May 15 2008, 16:01) *
Для меня в свое время было откровением, что просто дать команду сброса недостаточно. Надо еще дождаться, пока ты сам себя сбросишь smile.gif

Ну, дождаться можно и просто ничего не делая smile.gif

2 KAlex: а что будет, если после неудачного сброса шнурок USB передернуть?
К сожалению, сейчас нет под рукой платы с управлением USB pull-up.
KAlex
Цитата(aaarrr @ May 15 2008, 15:05) *
а что будет, если после неудачного сброса шнурок USB передернуть?

Если передернуть, то устройство определяется.
Сделал сброс с ожиданием, пока полет нормальный.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.