|
AT91SAM7S64 в ресете и не выходит из него, Причём так на 6 платах, а год всё работало нормально |
|
|
|
Feb 27 2009, 20:59
|

Частый гость
 
Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515

|
Все привет! Делал больше года назад 6 плат для стендов в университете. На платах стоит по одному AT91SAM7S64. Там же разъём USB, подключение блока питания (питание и от USB и от БП: стоит диод для USB и диод на БП, выходы диодов объединяются и идут на линейник 3.3В с кондёрами), светодиоды, кнопочки и т.д. Вообщем типичная отладочная плата + клеммники + драйверы двигателей постоянного тока (A3949). Целый год всё работало. А потом в течение трёх недель по очереди начали глючить все платы. Симптомы: при включении (через БП или USB) загораются некоторые лампочки (теже, что и при ресете). При запуске консоля jlinka последний сообщает ID арма, т.е. находит его. При попытке прошить из ИАРа выскакивает сообщение: Код Fri Feb 27 23:50:06 2009: Loaded macro file: D:\Programs\IAR Systems\Embedded Workbench 5.0 Evaluation\ARM\config\flashloader\Atmel\FlashAT91SAM7Sx.mac Fri Feb 27 23:50:06 2009: DLL version: V3.92 Fri Feb 27 23:50:06 2009: Firmware: J-Link compiled Jul 30 2008 11:24:37 ARM Rev.5 Fri Feb 27 23:50:06 2009: JTAG speed is initially set to: 32 kHz Fri Feb 27 23:50:06 2009: TotalIRLen = 4, IRPrint = 0x01 Fri Feb 27 23:50:06 2009: Halting CPU core Fri Feb 27 23:50:06 2009: Using DBGRQ to halt CPU Fri Feb 27 23:50:06 2009: Resetting TRST in order to halt CPU Fri Feb 27 23:50:06 2009: Halting CPU core Fri Feb 27 23:50:06 2009: Using DBGRQ to halt CPU Fri Feb 27 23:50:06 2009: Resetting TRST in order to halt CPU Fri Feb 27 23:50:08 2009: Fatal error: Unable to halt ARM core
Session aborted! Fri Feb 27 23:50:09 2009: Failed to load flash loader: D:\Programs\IAR Systems\Embedded Workbench 5.0 Evaluation\ARM\config\flashloader\Atmel\FlashAT91SAM7Sx.out Что может быть? Неужели процы погорели? Вся схемотехника стандартная, везде всё залито полигоном. Студенты приличные, никто никуда ничего вроде не тыкал. Скоро лабы начнутся, надо что-то делать!  Да, забыл сказать, когда горели платы их подключали только по USB, т.е. никаких БП и двигателей не погключали (драйверы A3949 питаются от БП до диода на линейник). Ещё забыл сказать: все напряжения (+3.3В, +1.8В) в полном порядке (+/- 0.1В) На ножке резета высокий уровень
|
|
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 38)
|
Feb 28 2009, 13:04
|

Частый гость
 
Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515

|
aaarrrНе могу проверить - осциллографа нет  Напряжение берётся или от USB или от БП - всё одно и тоже. Конденсаторы все той ёмкости, что атмеловцы рекомендуют. KAlexПолучилось! Видимо прошлый раз плохо проводком замкнул ножку erase на +3.3В. Теперь проц прошивается один раз, а потом таже хрень и невозможность повторно прошить без eras'а. Решил сразу прошить и запустить в отладчике по Ctrl+D. Проц успешно дошёл до функции main(), далее нормально выполнился код по инициализации кварца и PLL'а. После выполнения строчки Код // Enable User Reset and set its minimal assertion to 960 us AT91C_BASE_RSTC->RSTC_RMR = AT91C_RSTC_URSTEN | (0x4<<8) | (unsigned int)(0xA5 << 24); вывалилась ошибка  Если нажать "Пропустить" то вываливается ошибка "faild to read next instruction" и так до упора пока "Отмена" не нажал. Что может быть?? Я закомментировал эту строчку инициализации reset'а и прошил ещё раз. Всё заработало, только теперь, естественно, нет реакции при нажатии на reset. Работают USB, PWM, PIO, ADC! На плате есть 4 кнопочки. Так вот одна всегда как бы нажата (0 вольт). Посмотрел, а ножка PA25, на которой кнопка висит, прозванивается с землёй  Щас посмотрю что ещё на землю упало. Что это, как вы думаете? (Может ПП с течением времени испортилась и начала коротить с полигоном?) UPD. Прозвонил все ножки на АРМе: кроме тех, что GND, на землю замыкается только PA25. Не знаю, чей это глюк (кнопки, проца или печатной платы), ибо другие платы домой не взял - не могу проверить. Во всяком случае на плате уже можно провести лабы, что уже хорошо. Хорошо бы с остальными платами так же было.... Но разобраться, что произошло, всё равно хочется. Ни у кого никаких идей нет?
|
|
|
|
|
Feb 28 2009, 13:13
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Pasha 111 @ Feb 28 2009, 16:04)  Но разобраться, что произошло, всё равно хочется. Ни у кого никаких идей нет? Я бы расставил вероятности так (в порядке убывания): 1. Убит вывод процессора 2. Сломалась кнопка 3. Глюк платы (почти невероятно)
|
|
|
|
|
Feb 28 2009, 14:31
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Pasha 111 @ Feb 28 2009, 17:18)  Хм... Посмотрел: на всех платах, где специально pull-up резистор на +3.3В не стоит, на резете 2.6-2.8В стоит и всё работает. Ошибся я малость - глюк с pull-up'ом описан в еррате. Цитата(Pasha 111 @ Feb 28 2009, 17:18)  Т.е. проблема была не с записью в регистр, а с тем, что проц сразу же после её выполнения ресетился. Но на ножку резета я специально зацепил +3.3В. Что может глючить? Надеюсь, не напрямую? Прежде чем включать сброс от пина, нужно дождаться окончания генерации сброса наружу, т.е. NRSTL в RSTC_SR должен стоять в '1'.
|
|
|
|
|
Feb 28 2009, 21:10
|

Частый гость
 
Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515

|
Изменил код так: Код while(!(AT91C_BASE_RSTC->RSTC_RSR & AT91C_RSTC_NRSTL)) {}; AT91C_BASE_RSTC->RSTC_RMR = AT91C_RSTC_URSTEN | (0x4<<8) | (unsigned int)(0xA5 << 24); Программа при выполнении зависает в цикле и не выходит. Т.е. тогда процессор не был в ресете, а просто ресетился с огромной скоростью, т.к. программа всегда доходила до записи в mode register и происходил сброс. Так, собственно, почему процессор стал себя так вести и почему весь год было всё нормально? Как исправить? Привожу кусок кода. Сначала выполняется стандартный код от атмела (асм и сишник с lowlevelinit). Потом Код int main() { Init();
............ }
void Init() { SetClock(1, 6); // <--- для кварца 16.000 MHz //SetClock(5, 26); // <--- для кварца 18.432 MHz
uint32 RSR = 0; while(!(RSR & AT91C_RSTC_NRSTL)) { RSR = AT91C_BASE_RSTC->RSTC_RSR; } AT91C_BASE_RSTC->RSTC_RMR = AT91C_RSTC_URSTEN | (0x4<<8) | (unsigned int)(0xA5 << 24);
............... }
void SetClock(uint8 div, uint8 mul) { AT91PS_PMC pPMC = AT91C_BASE_PMC; // Set MCK at 48 000 000 pPMC->PMC_PLLR = ((AT91C_CKGR_DIV & div) | (AT91C_CKGR_PLLCOUNT & (28<<8)) | (AT91C_CKGR_MUL & ((mul - 1)<<16)));
// Wait the startup time while(!(pPMC->PMC_SR & AT91C_PMC_LOCK)); while(!(pPMC->PMC_SR & AT91C_PMC_MCKRDY)); // Selection of Master Clock and Processor Clock pPMC->PMC_MCKR = AT91C_PMC_PRES_CLK_2; while(!(pPMC->PMC_SR & AT91C_PMC_MCKRDY)); // Select the PLL clock divided by 2 pPMC->PMC_MCKR |= AT91C_PMC_CSS_PLL_CLK ; while(!(pPMC->PMC_SR & AT91C_PMC_MCKRDY)); } Всё зависает на while(!(RSR & AT91C_RSTC_NRSTL)) Пробовал комментировать вызов SetClock(), чтобы только атмеловская lowlevelinit выставила частоту (пусть и не 48 МГц, т.к. у меня кварц 16 МГц) - не помогло.
|
|
|
|
|
Mar 1 2009, 12:30
|

Местный
  
Группа: Свой
Сообщений: 201
Регистрация: 6-01-05
Пользователь №: 1 830

|
Цитата(Pasha 111 @ Feb 28 2009, 15:28)  Я тоже так подумал, правда не ясно, как мог убиться вывод, который кнопкой на GND просто замыкался и был настроен в вход... Кстати, на ножке резета 2.6В. На совсем другой (но работающей) плате, где тоже SAM7S64 стоит, на резете тоже 2.6В, видимо, это нормально. Сгорел контроллер сброса в проце? о_О Вообще то выходы проца, соединенные с кнопкой, убиваются статикой на ура. Особенно в зимнее время при низких температурах и малой влажности. Чтобы этого не происходило даже специальные тактовые кнопки изобрели: с металлической оправкой пластмассового штифта кнопки и 5 закороченным на землю выводом. Если у вас тактовая кнопка с 4 выводами и вы живете в Сибири, то в январе-феврале такое событие как умирание входа проца у вас почти со 100-процентной вероятностью должно было произойти. Решение очевидное: использовать кнопки с 5 заземляющим электродом + специальная защита входа от статики: последовательный резистор на кнопку, с другой стороны стабилитрон или BAV99 c одним выводом на землю, а вторым на +питания.
|
|
|
|
|
Mar 5 2009, 23:41
|

Частый гость
 
Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515

|
DirНу в прошлом году платы успешно пережели январь, февраль, март и т.д. не понятно, почему именно сейчас возникли глюки. А вот диоды, да, я поставить не догадался  На входах АЦП, мышинально уже, поставил BAT54S (сдвоенный диод в SOT23), а вот на кнопки почему-то нет. KAlexПростите, торможу, что такое J-Flash? Принёс домой остальные платы и купил новый проц. Завтра посмотрю, одинакого ли себя ведут остальные платы, а на одной из них ещё АРМ перепаяю, посмотрю на разницу в работе с новым процом и старыми.
|
|
|
|
|
Mar 6 2009, 19:30
|

Местный
  
Группа: Свой
Сообщений: 201
Регистрация: 6-01-05
Пользователь №: 1 830

|
Цитата(Pasha 111 @ Mar 6 2009, 01:41)  DirНу в прошлом году платы успешно пережели январь, февраль, март и т.д. не понятно, почему именно сейчас возникли глюки. А вот диоды, да, я поставить не догадался  На входах АЦП, мышинально уже, поставил BAT54S (сдвоенный диод в SOT23), а вот на кнопки почему-то нет. Абисняю  В прошлом году кнопочки были новенькие, а в этом - уже замусоленные пальцами, заслюнявленные чихами и кашлями. Статический заряд через новенькие кнопочки не хочет сбегать на вход проца по поверхности кнопки, а через замусоленные делает это с удовольствием и чем ниже температура, тем меньше влажность и заряда на студентах накапливается больше. А поскольку кнопки 4-х выводные и через защитный ободок и 5 ножку заряд не стекает на землю, то он делает свое черное дело с входом проца. Тем более, как оказалось, вы его даже резистором и диодами не защитили.
|
|
|
|
|
Mar 7 2009, 11:40
|

Частый гость
 
Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515

|
DirВы прям так красноречиво всё рассказали, что я теперь даже не сомневаюсь, что причина именно в этом  Мучил вчера весь день 4 платы. Первая, та, которую взял домой изначально, отказывается нормально запускать сброс и зависает в цикле while(!(RSR & AT91C_RSTC_NRSTL)) { RSR = AT91C_BASE_RSTC->RSTC_RSR; } Теперь про остальные три. Сначала все их по очереди подключил к USB: всё тоже самое, загораются все лампочки и всё (Windows пишет, что неизвестное устройство). Подумал, что всё 1 в 1 как и с первой платой, поэтому решил сразу выпаять процессор из 2-й платы и посмотреть, что будет. Выпаял, впаял новый. Открыл проект и прошил (Ctrl+D). Всё "прошилось", т.е. всё выглядело нормально (сначала в озу переписался загрузчик, а потом произошла запись программы во флеш), но проверка не прошла, а во флеше записаны только 0xFFFFFFFF!! Причём в окне дизассемблера они везде и при проверке (сразу после загрузки во флеш, у меня галочка "verify download" стоит), тоже все байты 0xFF! Если выбрать конфигурацию проекта не "Flash Debug", а "RAM Debug" и грузить программу только в ОЗУ, то всё работает (АЦП, USB, PWM и т.д. нет глючащих PIO)! Взял 3-юю плату: всё тоже самое, что и со второй с перепаянным процом! Во флеше 0xFF после прошивки, а если грузить прогу в ОЗУ, то всё работает! С 4-й платой всё тоже самое, но после 4-х или 5-ти попыток (открывая разные проекты, в том числе и стандартный Basic Tools) каким-то невероятным образом программа прошилась-таки! Но у этой платы не работает АЦП у проца о_О Т.е. результат измерения на всех каналах - 0. Дальше начал опять мучить 2 и 3 платы, но безуспешно. Я сначала подумал, что сгорел флеш, но ведь на 2-й плате я перепаял процессор, а 4-я в конце концов прошилась. На всех платах уровни 3.3В и 1.8В в полном порядке, никакие PIO не замыкаются в выключенном состоянии на землю (ну кроме PA25 на первой плате). В чём может быть дело?? Перепайка проца, как выяснилось, не помогает Вот схема платы, если это поможет
URC220_Schematic.pdf ( 1.95 мегабайт )
Кол-во скачиваний: 553Надеялся на худшее, а всё оказалось ещё хуже. P.S. Когда я впаял новый проц на 2-ю плату и подал питание, у меня также загорелись все лампочки. Т.е. или проц моментально испортился, или что-то не так с платой или элементами на ней. Смотрел специально питание ножки VDDFLASH и пробрасывал к ней отдельным проводком питание 3.3В - не помогло. Дополнительный электролит 47 мкФ в цепь питания 3.3В тоже не помог. Вот ещё фото платы
|
|
|
|
|
Mar 7 2009, 14:48
|

Частый гость
 
Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515

|
aaarrrПробовал: замыкаю TST на 3.3В. В это время все лампочки горят, жду 10 секунд. Перезапускаю плату: все лампочки горят, USB устройство не опознано, на COM порту не отвечает. Да и кварц у меня не 18.432, а 16 МГц стоит... Сейчас решил проверить проблему, связанную с нарастанием уровней: соединил GND двух плат, подал напряжение на одну из них, а потом соединил шины +3.3В. На второй плате опять зажглись все лампочки и при прошивке записались 0xFF... Я уже даже не могу вообразить, что случилось, что не работает даже новый впаянный проц
|
|
|
|
|
Mar 7 2009, 15:36
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Pasha 111 @ Mar 7 2009, 17:48)  На второй плате опять зажглись все лампочки и при прошивке записались 0xFF... Хм, а на ERASE не оказалось случайно высокого уровня? Как раз такая картина наблюдалась бы. Запуск самбы лучше сделать так: 1. Стереть процессор при помощи ERASE, можно на включенном устройстве. 2. На выключенном устройстве замкнуть TST на VCC. 3. Включить питание, подождать 15-20 секунд (10 зачастую недостаточно). 4. Выключить питание, снять перемычку.
|
|
|
|
|
Mar 8 2009, 12:24
|

Частый гость
 
Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515

|
SpiritDance Кварц попробую проверить на этой неделе, если осциллограф найду, или в магазине новые куплю и перепаяю вместе с пусковыми кондёрами. Опорное напряжение на 1-й ножке VDDREF +3.3В (мерил прям на ноге процессора).
aaarrr Сделал так несколько раз - всё одно и тоже. Горят все лампочки и всё.
Очень странно это. Если программу залить в ОЗУ через JTAG, то лампочки гаснут только тогда, когда я их инициализирую на выход и пишу соответствующие биты в clear register. Т.е. эффект такой, будто все ножки сразу после включения настроены на выход и высокий уровень на выходе.
Ещё одну вещь заметил: четвёртая плата, которая еле-еле пришилась, во-первых, теперь всё время прошивается (хотя до этого я несколько раз и на ней и на 2-й и 3-й плате стирал прошивку через erase), а во-вторых, если её подключать к USB, то она иногда не заводится: загорается несколько лампочек (иногда все) и всё. Вытыкаю USB, заного втыкаю - всё работает, при этом лампочки один раз вспыхивают, т.к. изначально они все загораются, а потом я пишу в clear register. Питание в USB материнская плата выдаёт +4.58В. Далее идёт диод, после него уже +3.82В, а на выходе линейника +2.76, чего не хватает процу и он, видимо из-за этого, не стартует. Но если подождать пару секунд, то программа стартует, а напряжение на USB поднимается до +4.85В (было +4.58В). При подключении блока питания +12В все уровни нормальные (+3.3В) и таких багов вообще никогда нет. Что такое происходит с платами?
Плата, на которой я перепаивал проц, работает тока при записи программы в ОЗУ и все светодиоды горят до тех пор, пока не запишу в clear register. Что на плате может так влиять на проц?
|
|
|
|
|
Mar 8 2009, 12:29
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Pasha 111 @ Mar 8 2009, 15:24)  Очень странно это. Если программу залить в ОЗУ через JTAG, то лампочки гаснут только тогда, когда я их инициализирую на выход и пишу соответствующие биты в clear register. Т.е. эффект такой, будто все ножки сразу после включения настроены на выход и высокий уровень на выходе. После сброса включены pull-up'ы на PIO, а их более чем достаточно для включения светодиодов. Цитата(Pasha 111 @ Mar 8 2009, 15:24)  Что такое происходит с платами? Очень похоже на медленное нарастание питания ядра. Внутреннему источнику нужно минимум 3.0V на входе.
|
|
|
|
|
Mar 8 2009, 12:53
|

Частый гость
 
Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515

|
aaarrr Провёл эксперимент: из 10 включений платы от блока питания было 3 глюка, а после включения от USB - 8 (2 раза включилась нормально). Блок питания - 12В 1А, врят ли его не хватает, чтобы пустить 2 линейника и кондёры (правда если подключать плату от БП, а не от USB, то заряжаются ещё кондёры, которые нужны для двух драйверов двигателя - два кондёра по 100 мкФ танталовые). Кстати, могут кондёры как-то испортиться (значительно уменьшиться ESR, например), из-за чего могут быть глюки с питанием? Все детали для плат покупались разом, т.е. скорее всего из одной партии, так что что-то могло испортиться, но не до конца, и глючит теперь всё.
|
|
|
|
|
Mar 8 2009, 15:31
|

Частый гость
 
Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515

|
aaarrrОсциллографом я обязательно тыкать буду, если не разберусь в чём баг, просто я до него в лучшем случае в среду доберусь... Вот, ещё одна странность. На второй плате, где я поменял процессор и где, также как и на 3-й, не прошивается флеш (0xFF) программа работает в ОЗУ только в том случае, если я по F10 прохожу строчку в функции SetClock (см. код выше). Если я ДО строчки Код // Set MCK at 48 000 000 pPMC->PMC_PLLR = ((AT91C_CKGR_DIV & div) | (AT91C_CKGR_PLLCOUNT & (28<<8)) | (AT91C_CKGR_MUL & ((mul - 1)<<16))); нажму F5, программа вываливается в Data Abort. Если я прохожу эту строчку нажатием F10, а дальше нажимаю F5, то программа выполняется нормально. Не знаю с чем это связано, но ведь boot loader, который загружается в ОЗУ и прошивает флеш, скорее всего тоже что-то пишет в AT91C_BASE_PMC->PMC_PLLR. Тогда он неправильно работает (Data abort), вот флеш и не прошивается. Или я не туда мыслю? Почему вообще проц в дата аборт вываливается? Всё, голова уже болит, продолжу завтра...
|
|
|
|
|
Mar 8 2009, 18:55
|
Участник

Группа: Новичок
Сообщений: 47
Регистрация: 5-05-05
Пользователь №: 4 763

|
не совсем понятно...вы описываете проблемы с питанием - от источника - 2 раза из 10 зависло, от usb - 8 раз.... и при этом пытаетесь писать во флеш и смотреть - что там получается. может сначалас питанием как-то разобраться? 12 в - 1 ампер, источник вообщем-то слабосильный. в момент зарядки конлеров платы от может и не дать нужного тока. пиковый ток то у него какой? может у него выходные конденсаторы фильтра(если они вообще есть) померли, и там какая-нить пульсация и слабый пиковый ток. может поставить промежуточный буферный кондер - ну там 5000 мкф, между источником и устройством? и после него тумблер питания - на плату. Чтобы давал пиковый ток? наблюдается ли какая- то зависимость между питающим устройством и багами? мождет у вас плат много, все одинаково сбоят, а питающее устойство то одно!
|
|
|
|
|
Mar 9 2009, 02:09
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(Pasha 111 @ Mar 8 2009, 17:31)  нажму F5, программа вываливается в Data Abort. Если я прохожу эту строчку нажатием F10, а дальше нажимаю F5, то программа выполняется нормально. Не знаю с чем это связано, Одно из двух: - проблема с тактовым генератором (для проверки поменяйте кварц и PLL фильт). - источник питания не тянет! (в момент перехода на PLL резко возрастает потребляемый ток). Цитата(Pasha 111 @ Mar 8 2009, 14:24)  Плата, на которой я перепаивал проц, работает тока при записи программы в ОЗУ.... Что на плате может так влиять на проц? 1. тактовый генератор 2. ножка erase.
|
|
|
|
|
Mar 14 2009, 13:28
|

Частый гость
 
Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515

|
merk0Цитата может сначалас питанием как-то разобраться? 12 в - 1 ампер, источник вообщем-то слабосильный. в момент зарядки конлеров платы от может и не дать нужного тока. пиковый ток то у него какой? может у него выходные конденсаторы фильтра(если они вообще есть) померли, и там какая-нить пульсация и слабый пиковый ток. может поставить промежуточный буферный кондер - ну там 5000 мкф, между источником и устройством? и после него тумблер питания - на плату. Чтобы давал пиковый ток? наблюдается ли какая- то зависимость между питающим устройством и багами? мождет у вас плат много, все одинаково сбоят, а питающее устойство то одно! С питанием и платами разобрался. Я добрался до осциллографа и, во-первых, посмотрел на уровень от БП - пульсаций почти нет (шум миливольтовый идёт). Во-вторых, я сделал как вы предложили: взял конденсатор на 3300 мкф 50 вольт, поставил на шину 3.3В. Включил плату. Соедининил землю с другой платой, а потом тумблером на её шину 3.3В. Разницы нет никакой. Цитата не совсем понятно...вы описываете проблемы с питанием - от источника - 2 раза из 10 зависло, от usb - 8 раз.... и при этом пытаетесь писать во флеш и смотреть - что там получается. И с этим разобрался. Это одна такая плата была - четвёртая - у неё выход стабилизатора 1.8В почемуто 2.2 вольта. Так что тут всё что угодно может быть. У других плат 1.8В, как и должно быть. aaarrrЦитата Отладчик, кстати, какой? Уж не вигглер ли? MT-Link defunctЦитата - проблема с тактовым генератором (для проверки поменяйте кварц и PLL фильт). - источник питания не тянет! (в момент перехода на PLL резко возрастает потребляемый ток). Импульс даёт конденсатор на 3300 мкф. А вот кварц действительно не работает! Смотрел осциллографом на второй плате, которая при прошивке пишет 0xFF и работает прога только в ОЗУ. У неё что-то синусообразное идёт, но это никак не нормальная частота. Синус как бы бежит куда-то, т.е. на экране осциллографа (аналоговый) несколько наложенных друг на друга синусоид разного периода о_О (частоты мегагерцовые). Поменял кварц - всё равно не работает. Принёс домой пятую плату из шести (шестая - рабочая). У неё тоже был циклический сброс как и у первой. Стёр через erase, залил новую прошивку с отключённым user reset'ом и всё заработало. Но у этой платы все каналы АЦП выдают 1023!! Т.е. все платы ведут себя совершенно по-разному и сломались в одно время спустя год. Общее у них (те, что удалось прошить) - не работает user reset (при его влючении на этой строчке кода сразу же происходит сброс и так в цикле). У двух заведённых плат из трёх не работают АЦП (на одной 0, а на другой 1023). Что тут может быть? Я уже всё перепробовал, кажется, что проще спаять заного 5 плат  Подскажите, что ещё можно сделать? Сам пойду прочту "AT91SAM7S Microcontroller Series Schematic Check List", может там что увижу, что не так у меня... Да, кварц на трёх платах работает нормально (по USB всё нормально в комп передаётся, например). Забыл сказать, что пин erase на второй плате, которая не прошивается, я на GND запаял, всё равно не прошивается.
|
|
|
|
|
Mar 14 2009, 17:42
|

Частый гость
 
Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515

|
Ужас! Сейчас на второй плате, где флеш не прошивалась и где я процессор менял, мерил уровни на ножках, так вот на соседних соединённых ножках 58 и 59 были разные уровни. На 58-й ножке почему-то 1.6 вольта! Я всё ещё раз пропаял как следует и проц прошился (58-я ножка как раз VDDFLASH).  Всё бы ничего, но я паял первый раз глядя через увеличительное стекло и видел, что ножка пропаялась. Ну да фиг с ним, главное, что проц теперь прошился  Но USB устройство всё равно не определялось и кварц не работал. Чисто случайно заметил, что когда пальцем касаюсь проца, то все лампочки гаснут и программа запускается. Методом тыка выяснил, что если держа металлическую отвёртку в любом месте коснуться шины +1.8В, то программа в прце запускается! Вообщем пропаял я заного все ножки поцессора, еонденсаторы на +1.8В, PLL фильтра и всё заработало! Плата работает, USB устройство находится, PWM, ADC, PIO - всё работает (проц то новый). Вообщем сейчас пойду на третьей плате попробую заного все ножки пропаять и попробовать прошить ещё раз. Есть мысль положить вылеченную плату в спирт, чтобы отмыть флюс. Стоит это делать? В качестве флюса использую СКФ - канифоль в спирту. Теперь полностью работают 2 платы из шести
|
|
|
|
|
Mar 14 2009, 17:54
|

Частый гость
 
Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515

|
Цитата которая при легком нагреве растворяла дорожки на плате Ну у меня ничего не растворялось вроде  всегда её использовал. Выглядит как прозрачная жёлтая жижкость. Пахнет спиртом, когда попадает на руку и высыхает, рука делается липкой и пахнет смолой, так что тут, вроде, всё в порядке  Наверное надо за студентами внимательнее смотреть, а то они одни самостоятельно всё делают  Видимо прийдётся на остальных платах процессоры перепаять.
|
|
|
|
|
Mar 14 2009, 20:55
|
Группа: Новичок
Сообщений: 1
Регистрация: 14-03-09
Пользователь №: 46 101

|
Цитата(Pasha 111 @ Mar 14 2009, 22:48)  Спасибо! Отпишусь о результатах, как процы заменю  Павел! Ты герой. Покажу ББ, все зачеты твои.
|
|
|
|
|
Mar 22 2009, 13:36
|
Участник

Группа: Участник
Сообщений: 42
Регистрация: 27-01-09
Пользователь №: 44 027

|
Буду очень благодарен, в пределах разумного, если кто-нибудь вышлет rdikeygen на home_leonid@mail.ru. Спасибо большое.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|