Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: at91sam7s256
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
lazarev andrey
добрый день.
столкнулся со следующей проблемой.
устройство питается от внешней сети (DC потом стабилизатор на 3.3В), подключается к ПК через USB (крутится тестовая аппликация).
все прекрасно работает какое то время, не засекал точно, потому как не думаю что это так уж прям важно (может 2 часа, может 4, когда как), потом все виснет и не помогает ничего, ни сброс, ни перепрошивка, только вот тыкание паяльником от балды как то оживляет девайс.
и так вопрос?
кто сталкивался с данным эффектом?
что это может быть:
- кривые руки паяльщика (т.е. мои);
- кривая разводка (опять же моя), может быть есть какие то рекомендации, кроме тех, что есть в мануалах;
- кривая прошивка (снова я);
- неправильные номиналы емкостей

бьюсь уже несколько дней с данной проблемой, непонятно куда рыть, вроде бы как понятно что, что-то происходит по питанию, скорее всего.

прошивка взят пример атмела USB Mass storage и переправлен под наши нужды.

читаю память самбой, там fffff везде. может быть не там читаю. вот.
поможите кто можите.
_dem
Во-первых, показывайте разводку и схематику. Телепатия нынче не очень работает, активность на солнце высокая.
Во-вторых, что у вас на reset ? RC или супервизор ?
lazarev andrey
на ресет ничего нет, только подтянуто на 3.3В через резюк, у него же внутренний сброс.

файлы выложил.
_dem
Можно разводку в пдфе ?

Вообще с очень похожими проблемами сталкивался. Было грязное питание, с просадками, и проблемный резет.
Решили супервизором.
aaarrr
Резисторы на JTAG'е запаяны? ERASE и TST я бы тоже не оставлял просто так.

Но принимая во внимание "методику оживления", первым делом стоит проверить монтаж.
lazarev andrey
эти выводы пытался и так и так, не помогает. в мануале написано, что они могут висеть, потому как у него внутренние резюки на землю есть.
но с замечанием соглашусь, жаль, что не помогает.

а, и да, jtag запаян.

проблема с данной платой началась после того, как попытался прошить через USB, но загрузчик не запустился (до этого запускался), благо что так как все дело "дома", то прошиваю через JTAG.
точнее даже не тогда началась проблема, а когда устройство оставили работать на долгое время.
до этого как то все было в порядке.


но камень я уже перепаял.
_dem
Почитайте про подключение кварца. То, как он у вас разведен - это тихий ужас.
Да еще и плата красивым кольцом, по которому петлей земля сплошная... Короче, вся паразитка, которая наводится на землю, бегает по цепям генерации.
Кварц ставите вплотную к процу, после него - емкости на "земляную" ногу рядом, и только потом эту ногу подключаете к общей земле. Специально для этого есть 96-я нога.

Потом, попробуйте поставить супервизор на резет, что-то вроде TS809. Стоит оно копейки.

Теперь поподробнее. При зависании платы, она сбрасывается питанием, или так и остается в "убитом состоянии" ?



Да, от чего питается устройство и каковы в целом условия работы "в поле" ?
lazarev andrey
про кварц понял.
в том то и дело, что плата находится в "убитом состоянии" и выводится из него только некими шаманскими способами, типо тыкания паяльника в ножки а потом перепрошивкой.
т.е. даже не прошивается, после того как зависла.
хотя почитав соседнюю ветку про зависание УАРТА решил посомтреть код, нашел парочку мест, может как то влияет, как только протестирую отпишу.
_dem
Ага, а попробуйте-ка убитой плате сделать ERASE путем замыкания ножки на 3,3V.
lazarev andrey
ок, как только зависнет, ьак сразу и буду опять изголяться на ней.
только она не виснет уже больше двух часов. sad.gif
радоваться этому или нет, непонятно
aaarrr
Цитата(lazarev andrey @ Dec 15 2009, 18:23) *
радоваться этому или нет, непонятно

Радоваться не стоит, достаточно того факта, что оно висло раньше. Теперь и через восемь часов нельзя будет ничего утверждать.
Хорошее устройство должно виснуть сразу smile.gif
lazarev andrey
вот и я про тоже.
да я просто немного подправил программу, там я случайно не заметил инициализацию прерываний левых и там еще некоторые гадости.
но никак не возьму в ум как могла потереться флешка...

а, ну еще разик пропаял все (уже начинают терзать сомнения в конт. площадках) м промыл очистителем.

если бы сразу все висло бы и умирало, тогда действительно проще...
aaarrr
Цитата(lazarev andrey @ Dec 15 2009, 18:44) *
...там я случайно не заметил инициализацию прерываний левых

Кстати, насчет прерываний левых - AIC_SPU прописан?

Цитата(lazarev andrey @ Dec 15 2009, 18:44) *
но никак не возьму в ум как могла потереться флешка...

Ну, изнутри это сделать совсем нетрудно.

А проблемы с дальнейшим программированием - "паяльником потыкать надо" - вполне можно отнести к общей глючности процедуры восстановления загрузчика.
lazarev andrey
Цитата(aaarrr @ Dec 15 2009, 18:53) *
Кстати, насчет прерываний левых - AIC_SPU прописан?


Ну, изнутри это сделать совсем нетрудно.

А проблемы с дальнейшим программированием - "паяльником потыкать надо" - вполне можно отнести к общей глючности процедуры восстановления загрузчика.

нет не прописано такое прерывание.

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

ну это так история
" развели плату, заказали печать, спаял я лично одну, работает вот примерно так же как и сейчас, не понятно как, как то уже плюнув на мучения, положил вторую пустую плату рядом и с помощью фена и паяльника за пару часов перекинул все что было ну пустую плату и вуаля....все заработало, без каких либо вмешательств"

в данный момент:
- тыкание ножкт erase на 3.3В не помогает.
- ничего не прошивает камень, самба вообще не видит ядро.
- до того как присобачить ножку erase на 3.3В осцильником посмотрел, что на ней делается. там был уровень, ну примерно так 2В, точно не мерял, потому как явно какая то фигня, но в даташите написано что у нее свой внутренний резюк притягивающий на землю.


устройство питается от внешнего источника 24В, дальше DC на 5В они дальше на плате используются, потом стабилизатор на 3.3В от которого как раз и питается камень, обмен по USB земля шины USB соединена с землей устройства....вот...
aaarrr
Цитата(lazarev andrey @ Dec 15 2009, 19:14) *
нет не прописано такое прерывание.

Напрасно. Оно должно быть прописано.
_dem
Не тыкнуть ERASE на 3.3, а закоротить ERASE на 3.3, подать питание, подождать, снять питание.
После этого чип полностью стирается и должен быть виден отладчику.
lazarev andrey
Цитата(_dem @ Dec 15 2009, 19:23) *
Не тыкнуть ERASE на 3.3, а закоротить ERASE на 3.3, подать питание, подождать, снять питание.
После этого чип полностью стирается и должен быть виден отладчику.

не помогает sad.gif
aaarrr
Цитата(_dem @ Dec 15 2009, 19:23) *
Не тыкнуть ERASE на 3.3

Нет, именно "тыкнуть":
Цитата
In order to erase the Flash, the user must perform the following:
• Power-off the chip
• Power-on the chip with TST = 0
• Assert Erase during a period of more than 220 ms
• Power-off the chip
Then it is possible o return to FFPI mode and check that Flash is erased.

Иначе ничего не сотрется.
_dem
Ну как бы это и имелось в виду.
Не "тыкнуть" на включенном питании, а... и далее по тексту.

Вопрос, собственно - что происходит на линиях питания "убитой" платы ? Все хорошо ?
В том числе переходной процесс при включении питания.

Вообще сейчас имеет смысл направить все усилия на воспроизведение проблемы в лабораторных условиях, а то потом неясно будет, что именно ее решило. И со следующей платой придется доставать бубен из заначки.
aaarrr
Цитата(_dem @ Dec 15 2009, 23:35) *
Не "тыкнуть" на включенном питании, а... и далее по тексту.

Прошу извинить за возможное занудство, но далее по тексту было: "закоротить ERASE на 3.3, подать питание", что не даст нужного эффекта.
_dem
Цитата(aaarrr @ Dec 15 2009, 19:34) *
Нет, именно "тыкнуть":

Иначе ничего не сотрется.


Ага, таки попутал с самбой, похоже ) Виноват )
lazarev andrey
в общем тыкался я тыкался, натыкал что вывод TCK (53) и VddCore (54) где то закорачиваются (150 Ом между ними).
пошаманил паяльником и скальпелем, разорвал эту завязку.
камень стал стабильно прошиваться и определяться.
в данный момент как непонятно когда виснет, но передергиванием питания начинает работать, в следующий "завис" дерну NRST, посмотрим реакцию, предварительный итог монтаж, плохо промыта плата. sad.gif
aaarrr
Цитата(lazarev andrey @ Dec 16 2009, 15:05) *
...в следующий "завис" дерну NRST, посмотрим реакцию

Надеюсь, включить его в программе не забыли?
lazarev andrey
эм, нет конечно же.
сейчас посмотрю, поразбираюсь что там да как.
дело в том, что это первый девайс на этом камне, да и вообще на АРМ7, поэтому понятное дело, что косяков будет еще много, какое то время smile.gif
в любом случае спасибо за советы.
_dem
ps. Будете переразводить плату, добавьте керамики возле ног чипа на питания, на 3.3 и 1.8. И земли, земли smile.gif
lazarev andrey
кхм-кхм, а собственно зачем переразводить?
я понимаю так что надо нормально паять smile.gif
промывать тщательнее.
кондюков и так натыкано по даташиту, увеличть емкость, тоже не самый лучший вариант. другое дело что меня смущает толщина проводников. вот наверное в этом направлении надо двигаться и отделить полигон земли процессора от остальной земли, во избежание навоок и прочих гадостей.
_dem
Кхм-кхм, разводка кварца на плате - потенциальный источник огромных проблем.
Разводка земли - аналогично. Плата ну очень просит переразводки, не отказывайте.
Да, и добавьте супервизор питания, благо это всего 10-20 центов.

Ну вам надо, чтобы работающий в полуметре мобильный мог резетнуть или повесить плату ? smile.gif
aaarrr
Цитата(_dem @ Dec 17 2009, 11:10) *
Да, и добавьте супервизор питания, благо это всего 10-20 центов.

А что, к встроенному BOD'у есть какие-то претензии?
_dem
Есть, у нас в партии из 100 штук 3-4 не подымались после мусора на питании. Методом научных перепаек выяснили, что виноваты именно чипы.
Видели один раз, возможно не повезло с партией или с чем еще - "но осадок остался" sad.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.