otix7777555
1

Нужна помощь, сломал голову!!! (Atmel AT91SAM7х256)

10.09.2017, 16:43. Показов 4026. Ответов 34
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть плата обработки внешних сигналов на 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, сотни раз использовались, и их много, какую не залей, тот же эффект.
Единственная пока идея: может контроллеры бракованные??? Но мне кажется это маловероятно.
Кто-нибудь сталкивался с подобным? Прошу помощи, проект горит, заказчик топает, а мы подвисли.




<Изображение удалено>

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.09.2017, 16:43
Ответы с готовыми решениями:

Нужна помощь для старта с Atmel ARM
Братцы, помогите, пожалуйста! Имеется: 1. Достаточный опыт работы с AVR (C/C++ в IAR EWAVR) 2....

STM32F0 и RS485 (сломал голову)
Начал изучать STM32F030... Светодиодом поморгал, реле пощёлкал... Пришла очередь RS485. И тут...

Сломал голову, нужна помощь!!! Помогите пожалуйста!!!
Помогите пожалуйста с решением задачи желательно код программы текст задачи в файле ну никак у...

Z-index голову сломал
Привет всем! Я в отчаянии. Подскажите почему z-index не пашет, кто знает: HTML &lt;!DOCTYPE...

34
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 334
10.09.2017, 16:54 2
Ревизия хоть у рабочих и нерабочих чипов одинаковая?
0
otix7777555
10.09.2017, 17:03 3
Цитата Сообщение от Riftistor
Ревизия хоть у рабочих и нерабочих чипов одинаковая?
Нет. Это может иметь значение? И там и там Atmel AT91SAM7х256, но на нерабочей плате контроллеры закуплены месяц назад, на рабочей - полгода назад.
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 334
10.09.2017, 17:09 4
Цитата Сообщение от otix7777555
Нет. Это может иметь значение? И там и там Atmel AT91SAM7х256, но на нерабочей плате контроллеры закуплены месяц назад, на рабочей - полгода назад.
Вариантов то не так и много, или что-то с мк, или с платами. Если с мк, то или другая ревизия, или брак.
0
otix7777555
10.09.2017, 17:13 5
Цитата Сообщение от Riftistor
Цитата Сообщение от otix7777555
Нет. Это может иметь значение? И там и там Atmel AT91SAM7х256, но на нерабочей плате контроллеры закуплены месяц назад, на рабочей - полгода назад.
Вариантов то не так и много, или что-то с мк, или с платами. Если с мк, то или другая ревизия, или брак.

Платы из проверенной серии. МК эти используем несколько лет, никогда не обращали внимание на ревизию, разве datasheet не однозначно определяет характеристики МК и они могут меняться со cменой ревизии?
На сколько считаете вероятным брак?
0 / 0 / 0
Регистрация: 31.01.2013
Сообщений: 1,625
10.09.2017, 17:27 6
После прошивки контроллер запускается и происходит настройка портов, тут и надо колупать. Может, порт 91 нога не на выдачу, а на вход с подтяжкой. И 94 посмотреть, как конфигурируется. Похоже, производитель слегка изменил номиналы внутри чипа, не нарушив даташит, а программист с самого начала использовал чип не очень корректно.
0
otix7777555
10.09.2017, 17:39 7
Цитата Сообщение от yiv91
После прошивки контроллер запускается и происходит настройка портов, тут и надо колупать. Может, порт 91 нога не на выдачу, а на вход с подтяжкой. И 94 посмотреть, как конфигурируется. Похоже, производитель слегка изменил номиналы внутри чипа, не нарушив даташит, а программист с самого начала использовал чип не очень корректно.
Черт, похоже Вы правы! В другом форуме человек такое же сделал предположение. Однако мы не можем быстро разобраться с прошивкой, сейчас такого специалиста в штате нет. Можете посоветовать, что тут можно предпринять?
0 / 0 / 0
Регистрация: 31.01.2013
Сообщений: 1,625
10.09.2017, 18:02 8
Очевидно - соединять D+ через резистор 1.5к не с ногой контроллера, а напрямую с Vcc.

PS. А специалистов не сокращать надо после проекта, а холить и лелеять и между проектами тоже.
0
otix7777555
10.09.2017, 18:22 9
Цитата Сообщение от yiv91
Очевидно - соединять D+ через резистор 1.5к не с ногой контроллера, а напрямую с Vcc.

PS. А специалистов не сокращать надо после проекта, а холить и лелеять и между проектами тоже.
Да нет, человек сам ушел, скучно ему стало, когда творческая работа закончилась.
Сделал, как порекомендовали, теперь и прошитый и непрошитый контроллер определяются как "неизвестное устройство" в диспетчере задач. Вернул все обратно, непрошитый определяется как на моем скрине вначале темы.
0 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 1
11.09.2017, 07:04 10
Atmel - уроды! (с) - не моё
Уроды потому, что меняют или вообще снимают с производства годами работающую комплектуху.

Может, попробовать изобразить из 2-х транзисторов ключ, который будет подключать резистор к VCC? Или такие доработки недопустимы?
Или поставить буфер между ногой и резаком?
0
0 / 0 / 0
Регистрация: 06.05.2015
Сообщений: 11
11.09.2017, 14:42 11
Однако мы не можем быстро разобраться с прошивкой, сейчас такого специалиста в штате нет. Можете посоветовать, что тут можно предпринять?
Попробуйте найти и запостить код инициализации ножек. А мы попробуем помочь - там изменений должно быть на пару строк кода.
0
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
11.09.2017, 15:36 12
Цитата Сообщение от yiv91
Может, порт 91 нога не на выдачу, а на вход с подтяжкой.
Похоже, производитель слегка изменил номиналы внутри чипа, не нарушив даташит, а программист с самого начала использовал чип не очень корректно.
плюс к этому там и в еррате не всё гладко с подтяжками и токами утечек, если пин на вход сконфигурирован.
могло действительно просто очень повезти что раньше оно как-то работало на внутренней подтяжке, даже когда нога не сконфигурирована нормально на выход.
а в новой ревизии чипа это "исправили".
0
otix7777555
11.09.2017, 16:05 13
Всем спасибо за помощь! Проблема пока не решена, но хотя бы понятно куда копать.
Нашли пару МК с более старой ревизией, запаяли, все сразу заработало, т.о. понятно что дело только в новой ревизии.
Блин! Такой удар со стороны классика )) 5 лет все было нормально и вдруг на тебе! Самое главное вовремя )
otix7777555
11.09.2017, 16:15 14
А если тупо посадить питание на D+ USB вместо 91 ноги? Там наверное нужно выставить нужный уровень напряжения, но мы помереем на рабочей плате какой нужен уровень и сделаем делитель напряжения. Наверняка плата будет определяться, но вот будет ли работать? Я не уверен, что 91 нога просто задавала уровень напряжения для USB.
Программно отключать USB не нужно, как это можно было сделать через 91-ногу, режим работы такой что USB всегда должен быть подключен.
Может это сработать?
otix7777555
11.09.2017, 16:29 15
[QUOTE="orm999"][QUOTE="Цитата:[/QUOTE]
Однако мы не можем быстро разобраться с прошивкой, сейчас такого специалиста в штате нет. Можете посоветовать, что тут можно предпринять?
Попробуйте найти и запостить код инициализации ножек. А мы попробуем помочь - там изменений должно быть на пару строк кода.

Пытаюсь найти код. Открываю проект в IAR, там вверху море закладок с исходниками. Мне кажется, что ноги инициализируются в pio_it.c или нет?
Какие признаки кода инициализации ног?
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
11.09.2017, 16:39 16
Цитата Сообщение от otix7777555
Какие признаки кода инициализации ног?
запись в регистры PIO_*
0
otix7777555
11.09.2017, 17:00 17
Цитата Сообщение от _pv
Цитата Сообщение от otix7777555
Какие признаки кода инициализации ног?
запись в регистры PIO_*

Тогда видимо правильно, но найти инициализацию этой ноги не могу.
В даташит 91 - это PA7/PGMNVOTID, в коде этого нет. Или она там как-то иначе обозначается?
Я могу сбросить код на e-mail, если это удобно.
otix7777555
12.09.2017, 13:54 18
Нашел такой код. Если я правильно понял 91 нога правильно включена, на подтяжку

Нашел такой код:

//USB VBUS
#define PIN_USB_VBUS {1 << 4, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_DEFAULT}
//USB PULL_UP
#define BOARD_USB_PULLUP_EXTERNAL
#define PIN_USB_PULLUP {1 << 7, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT}

//USB
#define USB_Vbus 1<<4
#define USB_BUS_POWERED
#define AT91C_VBUS AT91C_PIO_PA4
#define AT91C_PIO_VBUS AT91C_BASE_PIOA
#define AT91C_ID_VBUS AT91C_ID_PIOA

#define USB_PULLUP 1<<7
#define AT91C_PULLUP AT91C_PIO_PA7
#define AT91C_PIO_PULLUP AT91C_BASE_PIOA
#define AT91C_ID_PULLUP AT91C_ID_PIOA

#define USB_PULLUP_ON AT91C_PIO_PULLUP->PIO_SODR = USB_PULLUP;
#define USB_PULLUP_OFF AT91C_PIO_PULLUP->PIO_CODR = USB_PULLUP;
#define Cfg_Vbus_Detect AT91C_PIO_VBUS ->PIO_ODR = USB_Vbus;\
AT91C_PIO_VBUS ->PIO_PER = USB_Vbus;\
AT91C_PIO_VBUS ->PIO_IFER = USB_Vbus;
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
12.09.2017, 14:30 19
осталось найти где и как этот PIN_USB_PULLUP используется при инициализации.
0
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 334
12.09.2017, 14:51 20
Цитата Сообщение от otix7777555
Нашел такой код. Если я правильно понял 91 нога правильно включена, на подтяжку
На подтяжку - это как раз неправильно, иначе чего бы тебе советовали 1.5К резюк напрямую на VCC цеплять. С подтяжкой будет, например, 21.5К на VCC... А напрямую не всегда работает, мк может проинициализировать модуль USB с задержкой, к тому времени комп уже выдаст ошибку.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.09.2017, 14:51
Помогаю со студенческими работами здесь

Голову уже сломал
DEL

уже голову сломал. помогите!
Условие задачи: Вычислить arctg(x) с точностью ε = 0.0001, воспользовавшись разложением в ряд: ...

Позиционирование div. Голову сломал
Всем, кто обратил внимание - привет и спасибо. Ситуация следующая: диву main присвоена ширина...

Htaccess всю голову сломал
Добрый день всем ! Вопрос такой , хочу сделать перенаправление всех страниц сайта на главную. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru