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

 
 
> Нужна помощь, сломал голову! (Atmel AT91SAM7х256), после прошивки контроллера, компьютер не видит плату
alex7577
сообщение Sep 11 2017, 12:21
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 9-02-15
Пользователь №: 85 030



Есть плата обработки внешних сигналов на ATMEL AT91SAM7х256

Плата проверена годами, выпустили сотни штук и никогда не было такой проблемы, как сейчас.
Проблема в том, что до прошивки контроллера, плата при подключении к компу по USB определяется в диспетчере устройств.


После прошивки, не определяется, потому что на контакте D+ USB-разъема напряжение слишко мало, 1.7в, а нужно хотя бы 2.4в. До прошивки напряжение присутствует, поэтому и нормально определяется.

Требуемое напряжение на D+USB задается ножкой 91 через резистор 1.5к (см. схему). Если резистор отпаять, то на ножке 91 присутствует 3.3в, как и должно быть. Если припаять резистор обратно, то напряжение падает на ножке 91 до 2.3в, а на D+USB до 2.2в и это при отключенном кабеле USB, т.е. без нагрузки. Если подключить компьютер (через кабель USB), то на D+USB падает до 1.7в и соответственно плата не видна в диспетчере устройств. Если обнулить прошивку (3.3в на ножку 92), все восстанавливается, плата определяется.
Все элементы заменял, проверял, прозванивал, ошибки нет. Запаял 4 такие платы, у всех одни и те же симптомы. При этом старая рабочая плата прекрасно работает, у нее напряжение на на D+USB 3.3в без подключения кабеля и 2.4в при подключении.
Получается, что после прошивки падает входное сопротивление на ножке 94 и просаживается напряжение на ножке 91. Но как такое может быть в зависимости от наличия прошивки?
Прошивки не менялись лет 5, сотни раз использовались, и их много, какую не залей, тот же эффект.
Питание контроллера не просаживается, стабильно 3.3в
Единственная пока идея: может контроллеры бракованные??? Но мне кажется это маловероятно.
Кто-нибудь сталкивался с подобным? Прошу помощи, проект горит, заказчик топает, а мы подвисли.





Go to the top of the page
 
+Quote Post
5 страниц V  « < 2 3 4 5 >  
Start new topic
Ответов (45 - 59)
alex7577
сообщение Sep 14 2017, 11:54
Сообщение #46


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 9-02-15
Пользователь №: 85 030



Цитата(0men @ Sep 14 2017, 14:34) *
ээээ.. зачем там цикл while(1) то?? у вас там нужка РА7 дергается в 0-1 постоянно.

короче, нужно понять, переводится ножка РА7 на выход или нет.
Напишите в самом начала мейна следующее:

AT91C_BASE_PMC->PMC_PCER = (1<<AT91C_ID_PIOA);
AT91C_BASE_PIOA->PIO_PER = AT91C_PIO_PA7;
AT91C_BASE_PIOA->PIO_OER = AT91C_PIO_PA7;
AT91C_BASE_PIOA->PIO_SODR = AT91C_PIO_PA7;
for(;;);

И измерьте напряжение на самой ножке РА7 и на D+


Сделал. Ничего не изменилось: РА7 - 2.3в, D+ - 2.2в при отключенном кабеле USB. После подключения кабеля, на D+ падает до 1.7в и плата не определяется.
Посмотрите код, так надо было?


Go to the top of the page
 
+Quote Post
0men
сообщение Sep 14 2017, 12:12
Сообщение #47


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

Группа: Участник
Сообщений: 84
Регистрация: 7-05-05
Пользователь №: 4 819



Цитата(alex7577 @ Sep 14 2017, 14:54) *
Сделал. Ничего не изменилось: РА7 - 2.3в, D+ - 2.2в при отключенном кабеле USB. После подключения кабеля, на D+ падает до 1.7в и плата не определяется.
Посмотрите код, так надо было?


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

кстати, все таки важно, какой чип указан: 256 или 512. В функции LowLevelInit

#if defined(at91sam7x512)
AT91C_BASE_EFC0->EFC_FMR = AT91C_MC_FWS_1FWS;
AT91C_BASE_EFC1->EFC_FMR = AT91C_MC_FWS_1FWS;
#elif defined(at91sam7x128) || defined(at91sam7x256)
AT91C_BASE_MC->MC_FMR = AT91C_MC_FWS_1FWS;
Go to the top of the page
 
+Quote Post
alex7577
сообщение Sep 14 2017, 12:12
Сообщение #48


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 9-02-15
Пользователь №: 85 030



Цитата(0men @ Sep 14 2017, 14:59) *
да, код правильный, но результат полная ерунда.. Ножка не переводится на выход, что абсолютно непонятно. А сделайте плис тоже самое на рабочей плате


Сделал. Держит напряжение нормально, 3.3в на D+ при отключенном USB и 2.9 при подключенном. Определяется как неизвестное устройство, но это понятно, из-за изменения в коде.
Go to the top of the page
 
+Quote Post
0men
сообщение Sep 14 2017, 12:20
Сообщение #49


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

Группа: Участник
Сообщений: 84
Регистрация: 7-05-05
Пользователь №: 4 819



Цитата(alex7577 @ Sep 14 2017, 15:12) *
Сделал. Держит напряжение нормально, 3.3в на D+ при отключенном USB и 2.9 при подключенном. Определяется как неизвестное устройство, но это понятно, из-за изменения в коде.


у
AT91C_BASE_EFC0
AT91C_BASE_EFC1
AT91C_BASE_MC

абсолютно разные базовые адреса. Выбирая 512 в яре и прошивая прошивку в 256 вы не правильно инициализируете работу флэш памяти

Go to the top of the page
 
+Quote Post
alex7577
сообщение Sep 14 2017, 12:25
Сообщение #50


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 9-02-15
Пользователь №: 85 030



Цитата(0men @ Sep 14 2017, 15:20) *
у
AT91C_BASE_EFC0
AT91C_BASE_EFC1
AT91C_BASE_MC

абсолютно разные базовые адреса. Выбирая 512 в яре и прошивая прошивку в 256 вы не правильно инициализируете работу флэш памяти


Мы паяли разные: 128, 256, 512 и всегда они работали и одной и той же прошивкой. Вроде разработчик что-то предусмотрел в коде, чтобы можно было ставить любые модификации.
Сейчас и рабочие и нерабочие платы с вариантом 256, но вот старые работают, а новые нет.
Go to the top of the page
 
+Quote Post
0men
сообщение Sep 14 2017, 12:42
Сообщение #51


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

Группа: Участник
Сообщений: 84
Регистрация: 7-05-05
Пользователь №: 4 819



Цитата(alex7577 @ Sep 14 2017, 15:25) *
Мы паяли разные: 128, 256, 512 и всегда они работали и одной и той же прошивкой. Вроде разработчик что-то предусмотрел в коде, чтобы можно было ставить любые модификации.
Сейчас и рабочие и нерабочие платы с вариантом 256, но вот старые работают, а новые нет.


не упрямьтесь, а попробуйте )) В последних ревизиях атмел очень серьезно ухудшил характеристики флеш памяти, этот код отвечает за время доступа к ней. Ваш разработчик ничего не предусмотрел в этом плане

Сообщение отредактировал 0men - Sep 14 2017, 12:42
Go to the top of the page
 
+Quote Post
alex7577
сообщение Sep 14 2017, 13:47
Сообщение #52


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 9-02-15
Пользователь №: 85 030



Цитата(0men @ Sep 14 2017, 15:42) *
не упрямьтесь, а попробуйте )) В последних ревизиях атмел очень серьезно ухудшил характеристики флеш памяти, этот код отвечает за время доступа к ней. Ваш разработчик ничего не предусмотрел в этом плане

Да я готов попробовать, подскажите, что именно нужно сделать? что-то не могу найти подходящие настройки в IAR
Go to the top of the page
 
+Quote Post
0men
сообщение Sep 14 2017, 14:05
Сообщение #53


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

Группа: Участник
Сообщений: 84
Регистрация: 7-05-05
Пользователь №: 4 819



Цитата(alex7577 @ Sep 14 2017, 16:47) *
Да я готов попробовать, подскажите, что именно нужно сделать? что-то не могу найти подходящие настройки в IAR


мышкой ткнитесь в EIM-v3-Debug

потом - Project->Options-General options-Device

и там меняете Atmel AT91SAM7X512 на Atmel AT91SAM7X256

потом все перекомпилируйте

И еще нужно исправить в настройках линкера:

Project->Options-Linker-Config-Linker configuration file

изменить на 256

и еще ))

Project->Options-С/С++ Compiler->Preprocessor

изменить AT91SAM7X512 на Atmel AT91SAM7X256

Сообщение отредактировал 0men - Sep 14 2017, 14:08
Go to the top of the page
 
+Quote Post
alex7577
сообщение Sep 14 2017, 14:09
Сообщение #54


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 9-02-15
Пользователь №: 85 030



Цитата(0men @ Sep 14 2017, 17:05) *
мышкой ткнитесь в EIM-v3-Debug

потом - Project->Options-General options-Device

и там меняете Atmel AT91SAM7X512 на Atmel AT91SAM7X256

потом все перекомпилируйте

И еще нужно исправить в настройках линкера:

Project->Options-Linker-Config-Linker configuration file

изменить на 256

и еще ))

Project->Options-С/С++ Compiler->Preprocessor

изменить AT91SAM7X512 на Atmel AT91SAM7X256



Сделал. Все тоже самое. Но это дефолтная прошивка. Если нужно внести изменения в код, которые вы рекомендовали, то какие именно?
Go to the top of the page
 
+Quote Post
0men
сообщение Sep 14 2017, 14:10
Сообщение #55


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

Группа: Участник
Сообщений: 84
Регистрация: 7-05-05
Пользователь №: 4 819



Цитата(alex7577 @ Sep 14 2017, 17:09) *
Сделал. Все тоже самое. Но это дефолтная прошивка. Если нужно внести изменения в код, которые вы рекомендовали, то какие именно?


во всех 3х местах изменили на AT91SAM7X256?



вот это в начале мейна вставьте и проверьте напряжение на D+

AT91C_BASE_PMC->PMC_PCER = (1<<AT91C_ID_PIOA);
AT91C_BASE_PIOA->PIO_PER = AT91C_PIO_PA7;
AT91C_BASE_PIOA->PIO_OER = AT91C_PIO_PA7;
AT91C_BASE_PIOA->PIO_SODR = AT91C_PIO_PA7;
for(;;);



Сообщение отредактировал 0men - Sep 14 2017, 14:11
Go to the top of the page
 
+Quote Post
alex7577
сообщение Sep 14 2017, 14:29
Сообщение #56


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 9-02-15
Пользователь №: 85 030



Цитата(0men @ Sep 14 2017, 17:10) *
во всех 3х местах изменили на AT91SAM7X256?



вот это в начале мейна вставьте и проверьте напряжение на D+

AT91C_BASE_PMC->PMC_PCER = (1<<AT91C_ID_PIOA);
AT91C_BASE_PIOA->PIO_PER = AT91C_PIO_PA7;
AT91C_BASE_PIOA->PIO_OER = AT91C_PIO_PA7;
AT91C_BASE_PIOA->PIO_SODR = AT91C_PIO_PA7;
for(;;);


Все сделал как написали, в 3-х местах и код. Тоже самое (
В любом случае огромное спасибо за время и терпение, если получится, то с меня прочитается sm.gif
Надеюсь на ваш опыт.
Если вы в Москве, то я могу подвести все рабочую и нерабочую платы, исходники у вас есть.
Go to the top of the page
 
+Quote Post
0men
сообщение Sep 14 2017, 14:35
Сообщение #57


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

Группа: Участник
Сообщений: 84
Регистрация: 7-05-05
Пользователь №: 4 819



Цитата(alex7577 @ Sep 14 2017, 17:29) *
Все сделал как написали, в 3-х местах и код. Тоже самое (
В любом случае огромное спасибо за время и терпение, если получится, то с меня прочитается sm.gif
Надеюсь на ваш опыт.
Если вы в Москве, то я могу подвести все рабочую и нерабочую платы, исходники у вас есть.


я Питере sad.gif
пока идеи иссякли ((
А процессор вообще работает? Другие ноги управляются?
Go to the top of the page
 
+Quote Post
alex7577
сообщение Sep 14 2017, 14:39
Сообщение #58


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 9-02-15
Пользователь №: 85 030



Цитата(0men @ Sep 14 2017, 17:35) *
я Питере sad.gif
пока идеи иссякли ((
А процессор вообще работает? Другие ноги управляются?



Могу отправить DHL ) Если это вообще удобно для вас.
А как понять управляются ли другие ноги? Мы результаты работы платы можем видеть только в программе на PC, а USB не работает.
Go to the top of the page
 
+Quote Post
0men
сообщение Sep 14 2017, 14:46
Сообщение #59


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

Группа: Участник
Сообщений: 84
Регистрация: 7-05-05
Пользователь №: 4 819



Цитата(alex7577 @ Sep 14 2017, 17:39) *
Могу отправить DHL ) Если это вообще удобно для вас.
А как понять управляются ли другие ноги? Мы результаты работы платы можем видеть только в программе на PC, а USB не работает.


Давайте так, если до понедельника ничего не решится, то я вам напишу, куда отправить sm.gif
У вас в программе есть управление светодиодами, на плате они есть? Моргают?

Сообщение отредактировал 0men - Sep 14 2017, 14:46
Go to the top of the page
 
+Quote Post
alex7577
сообщение Sep 14 2017, 14:52
Сообщение #60


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 9-02-15
Пользователь №: 85 030



Цитата(0men @ Sep 14 2017, 17:46) *
Давайте так, если до понедельника ничего не решится, то я вам напишу, куда отправить sm.gif
У вас в программе есть управление светодиодами, на плате они есть? Моргают?


Ок!
Раньше были светодиоды, но как только опытные образцы заработали стабильно от них отказались.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 22:58
Рейтинг@Mail.ru


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