реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> AT91SAM7S64 в ресете и не выходит из него, Причём так на 6 платах, а год всё работало нормально
Pasha 111
сообщение Mar 7 2009, 11:40
Сообщение #16


Частый гость
**

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



Dir
Вы прям так красноречиво всё рассказали, что я теперь даже не сомневаюсь, что причина именно в этом smile.gif

Мучил вчера весь день 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 на первой плате).

В чём может быть дело?? Перепайка проца, как выяснилось, не помогает crying.gif
Вот схема платы, если это поможет
Прикрепленный файл  URC220_Schematic.pdf ( 1.95 мегабайт ) Кол-во скачиваний: 553

Надеялся на худшее, а всё оказалось ещё хуже.

P.S. Когда я впаял новый проц на 2-ю плату и подал питание, у меня также загорелись все лампочки. Т.е. или проц моментально испортился, или что-то не так с платой или элементами на ней.

Смотрел специально питание ножки VDDFLASH и пробрасывал к ней отдельным проводком питание 3.3В - не помогло. Дополнительный электролит 47 мкФ в цепь питания 3.3В тоже не помог.

Вот ещё фото платы
Прикрепленное изображение
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 7 2009, 11:53
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



А через SAM-BA программировать не пробовали?
Go to the top of the page
 
+Quote Post
Pasha 111
сообщение Mar 7 2009, 14:48
Сообщение #18


Частый гость
**

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



aaarrr
Пробовал: замыкаю TST на 3.3В. В это время все лампочки горят, жду 10 секунд. Перезапускаю плату: все лампочки горят, USB устройство не опознано, на COM порту не отвечает. Да и кварц у меня не 18.432, а 16 МГц стоит...

Сейчас решил проверить проблему, связанную с нарастанием уровней: соединил GND двух плат, подал напряжение на одну из них, а потом соединил шины +3.3В. На второй плате опять зажглись все лампочки и при прошивке записались 0xFF...

Я уже даже не могу вообразить, что случилось, что не работает даже новый впаянный проц 01.gif
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Mar 7 2009, 14:55
Сообщение #19


Дух погибшего транзистора
****

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



А может у Вас кварцы сдохли на морозе и влажности?

По поводу АЦП - опорник?

Хуже всего если это сдохли переходные отверстия. Каких только чудесных глюков только не проявляется в подобных случаях.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 7 2009, 15:36
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 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. Выключить питание, снять перемычку.
Go to the top of the page
 
+Quote Post
Pasha 111
сообщение Mar 8 2009, 12:24
Сообщение #21


Частый гость
**

Группа: Свой
Сообщений: 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. Что на плате может так влиять на проц?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 8 2009, 12:29
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 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 на входе.
Go to the top of the page
 
+Quote Post
Pasha 111
сообщение Mar 8 2009, 12:53
Сообщение #23


Частый гость
**

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



aaarrr
Провёл эксперимент: из 10 включений платы от блока питания было 3 глюка, а после включения от USB - 8 (2 раза включилась нормально). Блок питания - 12В 1А, врят ли его не хватает, чтобы пустить 2 линейника и кондёры (правда если подключать плату от БП, а не от USB, то заряжаются ещё кондёры, которые нужны для двух драйверов двигателя - два кондёра по 100 мкФ танталовые). Кстати, могут кондёры как-то испортиться (значительно уменьшиться ESR, например), из-за чего могут быть глюки с питанием? Все детали для плат покупались разом, т.е. скорее всего из одной партии, так что что-то могло испортиться, но не до конца, и глючит теперь всё.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 8 2009, 13:20
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Да Вы осциллографом посмотрите питание 1.8V в момент включения. Если нарастание медленнее 6V/ms, то процессор имеет полное право не запуститься.
Go to the top of the page
 
+Quote Post
Pasha 111
сообщение Mar 8 2009, 15:31
Сообщение #25


Частый гость
**

Группа: Свой
Сообщений: 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), вот флеш и не прошивается. Или я не туда мыслю? Почему вообще проц в дата аборт вываливается?

Всё, голова уже болит, продолжу завтра... wacko.gif
Go to the top of the page
 
+Quote Post
merk0
сообщение Mar 8 2009, 18:55
Сообщение #26


Участник
*

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



не совсем понятно...вы описываете проблемы с питанием - от источника - 2 раза из 10 зависло, от usb - 8 раз.... и при этом пытаетесь писать во флеш и смотреть - что там получается.
может сначалас питанием как-то разобраться?
12 в - 1 ампер, источник вообщем-то слабосильный. в момент зарядки конлеров платы от может и не дать нужного тока. пиковый ток то у него какой? может у него выходные конденсаторы фильтра(если они вообще есть) померли, и там какая-нить пульсация и слабый пиковый ток.
может поставить промежуточный буферный кондер - ну там 5000 мкф, между источником и устройством? и после него тумблер питания - на плату. Чтобы давал пиковый ток?
наблюдается ли какая- то зависимость между питающим устройством и багами? мождет у вас плат много, все одинаково сбоят, а питающее устойство то одно!
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 8 2009, 23:36
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Pasha 111 @ Mar 8 2009, 18:31) *
Или я не туда мыслю? Почему вообще проц в дата аборт вываливается?

Не туда. С питанием надо сначала разобраться, как уже правильно посоветовали выше. Отладчик, кстати, какой? Уж не вигглер ли?
Go to the top of the page
 
+Quote Post
defunct
сообщение Mar 9 2009, 02:09
Сообщение #28


кекс
******

Группа: Свой
Сообщений: 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.
Go to the top of the page
 
+Quote Post
Pasha 111
сообщение Mar 14 2009, 13:28
Сообщение #29


Частый гость
**

Группа: Свой
Сообщений: 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 плат crying.gif
Подскажите, что ещё можно сделать? Сам пойду прочту "AT91SAM7S Microcontroller Series Schematic Check List", может там что увижу, что не так у меня...

Да, кварц на трёх платах работает нормально (по USB всё нормально в комп передаётся, например).

Забыл сказать, что пин erase на второй плате, которая не прошивается, я на GND запаял, всё равно не прошивается.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 14 2009, 14:38
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Сглазили их, не иначе smile.gif

ИМХО, такое обилие разных проблем должно навести на мысли о косяках в использованных инструментах (паяльник с фазой на жале) или матералах (флюс, например, медь медленно уничтожает). А платы, похоже, лучше выбросить sad.gif
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 04:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.0149 секунд с 7
ELECTRONIX ©2004-2016