|
Проблемы с запуском SAM7S64, Не стартует RC-генератор. |
|
|
|
Mar 19 2008, 14:34
|

Местный
  
Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719

|
Цитата(richie @ Mar 19 2008, 17:24)  А что делает "пересброс питания"? Только процессор перезапускает или что-то еще? Только проц. NRST не используется. Хотя пробовал и им, не запускается. Ну это понятно, AT91C_SYSC_URSTEN по умолчанию в 0.
|
|
|
|
|
Mar 22 2008, 11:55
|

Местный
  
Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719

|
Господа! Тема очень Важна для меня и требует решения. Объясню подробнее. Девайс будет использоваться в авто. Так что температура - важная составляющая. Термокамеры нет, поэтому охлаждали фризером из баллончика(что то типа сжиженного газа). Контроль температуры ИК-термометр. Эффект незапуска наблюдается только при охлаждении АРМ7. На выходе XOUT полный 0. Заморозка кварца и другой периферии на запуск не влияет. Под дебагом(IAR+J-Link), АРМ хоть до -40ка морозь, запускается собака. Cstartup.s79, Generic CStartup for IAR No Use REMAP, 1.0 15/Jun/04, не правил. Startup.с : Код void AT91F_LowLevelInit( void) @ "ICODE"{ int i; AT91PS_PMC pPMC = AT91C_BASE_PMC; AT91C_BASE_MC->MC_FMR = ((AT91C_MC_FMCN)&(48<<16)) | AT91C_MC_FWS_1FWS; AT91C_BASE_WDTC->WDTC_WDMR = AT91C_SYSC_WDRSTEN |AT91C_SYSC_WDD | AT91C_SYSC_WDDBGHLT | AT91C_SYSC_WDIDLEHLT | 0x3FF; pPMC->PMC_MOR = (( AT91C_CKGR_OSCOUNT & (0x06 <<8) | AT91C_CKGR_MOSCEN )); while(!(pPMC->PMC_SR & AT91C_PMC_MOSCS)); pPMC->PMC_PLLR = ((AT91C_CKGR_DIV & 0x03) | (AT91C_CKGR_PLLCOUNT & (28<<8)) | (AT91C_CKGR_MUL & (23<<16)));
// Wait the startup time while(!(pPMC->PMC_SR & AT91C_PMC_LOCK)); while(!(pPMC->PMC_SR & AT91C_PMC_MCKRDY));
pPMC->PMC_MCKR = AT91C_PMC_CSS_PLL_CLK | AT91C_PMC_PRES_CLK_2; while(!(pPMC->PMC_SR & AT91C_PMC_MCKRDY)); AT91C_BASE_AIC->AIC_SVR[0] = (int) AT91F_Default_FIQ_handler; for (i=1;i < 31; i++) { AT91C_BASE_AIC->AIC_SVR[i] = (int) AT91F_Default_IRQ_handler;} AT91C_BASE_AIC->AIC_SPU = (int) AT91F_Spurious_handler; } Потом еще добавил AT91C_BASE_RSTC->RSTC_RMR = (0xA5 << 24) | AT91C_SYSC_URSTEN; Но даже после прогрева реакции на NRST нет. Пробовал комментить циклы ожидания - не помогает. Может я чего упустил?
|
|
|
|
|
Mar 24 2008, 11:09
|

Местный
  
Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719

|
Цитата(SpiritDance @ Mar 24 2008, 13:34)  Не скажите, может основной не стартует. Попробуете не переходить на основной и помигать светиком в main. Сообщите обязательно чем дело закончится. В стартапе оставил Код AT91C_BASE_RSTC->RSTC_RMR = (0xA5 << 24) | AT91C_SYSC_URSTEN; AT91C_BASE_AIC->AIC_SVR[0] = (int) AT91F_Default_FIQ_handler; for (i=1;i < 31; i++){AT91C_BASE_AIC->AIC_SVR[i] = (int) AT91F_Default_IRQ_handler;} AT91C_BASE_AIC->AIC_SPU = (int) AT91F_Spurious_handler; AT91C_BASE_WDTC->WDTC_WDMR = AT91C_SYSC_WDRSTEN | AT91C_SYSC_WDD | AT91C_SYSC_WDDBGHLT | AT91C_SYSC_WDIDLEHLT | 0x3FF; Теплый работает. Холодный нет.
|
|
|
|
|
Mar 25 2008, 10:59
|

Дух погибшего транзистора
   
Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288

|
Цитата(_dem @ Mar 25 2008, 13:49)  Есть возможность прицепить внешний генератор ? А толку-то? Данный процессор все равно с RC-цепочки стартует. А если какой ногой в самом начале дернуть, чтобы увидеть правда ли не стартует RC? Если так, то это плохо, будем надеяться что глюк связан с разводкой, так чтото слабо верится что этого никто не заметил.
--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
|
|
|
|
|
Mar 25 2008, 13:17
|
Местный
  
Группа: Свой
Сообщений: 263
Регистрация: 2-02-07
Из: CN, Ukraine
Пользователь №: 24 970

|
Цитата(SpiritDance @ Mar 25 2008, 14:59)  А толку-то? Данный процессор все равно с RC-цепочки стартует. А если какой ногой в самом начале дернуть, чтобы увидеть правда ли не стартует RC? Если так, то это плохо, будем надеяться что глюк связан с разводкой, так чтото слабо верится что этого никто не заметил. Я думаю, смотреть надо в направлении "почему в тех же условиях с JTAG стартует ?". Jtag дает свой клок по TCK, поэтому я бы попробовал запустить его 1) вообще без инициализации генератора, сделать цикл while(1) { LedON(); LedOFF(); } и посмотреть что на выходе LED 2) попробовать дать внешний клок и перейти на него ps.. Да, "Под дебагом(IAR+J-Link), АРМ хоть до -40ка морозь, запускается собака." - просто стартует с подключенным JTAG, или после прошивки из IAR ?
Сообщение отредактировал _dem - Mar 25 2008, 13:19
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|