Easyelectronics.ru

Электроника для всех
Текущее время: 19 июн 2018, 03:42

Часовой пояс: UTC + 5 часов



    • JLCPCB - Платы прототипов всего за 2$ c бесплатной доставкой (при первом заказе)
    • 10 PCBs за $2 для 2 слоев, $15 для 4 слойной, $74 для 6 слойной платы.
    • Крупнейший китайский производитель прототипных плат. 290000+ клиентов & 8000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин радиодеталей.

Начать новую тему Ответить на тему  [ Сообщений: 36 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Нужна помощь, сломал голову!!! (Atmel AT91SAM7х256)
СообщениеДобавлено: 11 сен 2017, 17:30 
Только пришел

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


Вложения:
20170910_124650.jpg
20170910_124650.jpg [ 43.36 Кб | Просмотров: 1337 ]
20170911_124644.jpg
20170911_124644.jpg [ 34.32 Кб | Просмотров: 1337 ]
IMG_2750_.jpg
IMG_2750_.jpg [ 125.22 Кб | Просмотров: 1337 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь, сломал голову!!! (Atmel AT91SAM7х256)
СообщениеДобавлено: 11 сен 2017, 17:41 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 538
Ревизия хоть у рабочих и нерабочих чипов одинаковая?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь, сломал голову!!! (Atmel AT91SAM7х256)
СообщениеДобавлено: 11 сен 2017, 17:50 
Только пришел

Зарегистрирован: 11 сен 2017, 17:24
Сообщения: 19
Reflector писал(а):
Ревизия хоть у рабочих и нерабочих чипов одинаковая?

Нет. Это может иметь значение? И там и там Atmel AT91SAM7х256, но на нерабочей плате контроллеры закуплены месяц назад, на рабочей - полгода назад.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь, сломал голову!!! (Atmel AT91SAM7х256)
СообщениеДобавлено: 11 сен 2017, 17:56 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 538
alex7777555 писал(а):
Нет. Это может иметь значение? И там и там Atmel AT91SAM7х256, но на нерабочей плате контроллеры закуплены месяц назад, на рабочей - полгода назад.

Вариантов то не так и много, или что-то с мк, или с платами. Если с мк, то или другая ревизия, или брак.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь, сломал голову!!! (Atmel AT91SAM7х256)
СообщениеДобавлено: 11 сен 2017, 18:00 
Только пришел

Зарегистрирован: 11 сен 2017, 17:24
Сообщения: 19
Reflector писал(а):
alex7777555 писал(а):
Нет. Это может иметь значение? И там и там Atmel AT91SAM7х256, но на нерабочей плате контроллеры закуплены месяц назад, на рабочей - полгода назад.

Вариантов то не так и много, или что-то с мк, или с платами. Если с мк, то или другая ревизия, или брак.


Платы из проверенной серии. МК эти используем несколько лет, никогда не обращали внимание на ревизию, разве datasheet не однозначно определяет характеристики МК и они могут меняться со cменой ревизии?
На сколько считаете вероятным брак?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь, сломал голову!!! (Atmel AT91SAM7х256)
СообщениеДобавлено: 11 сен 2017, 18:14 
Старожил
Аватара пользователя

Зарегистрирован: 05 фев 2013, 00:58
Сообщения: 2871
Откуда: Тольятти
После прошивки контроллер запускается и происходит настройка портов, тут и надо колупать. Может, порт 91 нога не на выдачу, а на вход с подтяжкой. И 94 посмотреть, как конфигурируется. Похоже, производитель слегка изменил номиналы внутри чипа, не нарушив даташит, а программист с самого начала использовал чип не очень корректно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь, сломал голову!!! (Atmel AT91SAM7х256)
СообщениеДобавлено: 11 сен 2017, 18:26 
Только пришел

Зарегистрирован: 11 сен 2017, 17:24
Сообщения: 19
iev91 писал(а):
После прошивки контроллер запускается и происходит настройка портов, тут и надо колупать. Может, порт 91 нога не на выдачу, а на вход с подтяжкой. И 94 посмотреть, как конфигурируется. Похоже, производитель слегка изменил номиналы внутри чипа, не нарушив даташит, а программист с самого начала использовал чип не очень корректно.


Черт, похоже Вы правы! В другом форуме человек такое же сделал предположение. Однако мы не можем быстро разобраться с прошивкой, сейчас такого специалиста в штате нет. Можете посоветовать, что тут можно предпринять?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь, сломал голову!!! (Atmel AT91SAM7х256)
СообщениеДобавлено: 11 сен 2017, 18:49 
Старожил
Аватара пользователя

Зарегистрирован: 05 фев 2013, 00:58
Сообщения: 2871
Откуда: Тольятти
Очевидно - соединять D+ через резистор 1.5к не с ногой контроллера, а напрямую с Vcc.

PS. А специалистов не сокращать надо после проекта, а холить и лелеять и между проектами тоже.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь, сломал голову!!! (Atmel AT91SAM7х256)
СообщениеДобавлено: 11 сен 2017, 19:09 
Только пришел

Зарегистрирован: 11 сен 2017, 17:24
Сообщения: 19
iev91 писал(а):
Очевидно - соединять D+ через резистор 1.5к не с ногой контроллера, а напрямую с Vcc.

PS. А специалистов не сокращать надо после проекта, а холить и лелеять и между проектами тоже.


Да нет, человек сам ушел, скучно ему стало, когда творческая работа закончилась.
Сделал, как порекомендовали, теперь и прошитый и непрошитый контроллер определяются как "неизвестное устройство" в диспетчере задач. Вернул все обратно, непрошитый определяется как на моем скрине вначале темы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь, сломал голову!!! (Atmel AT91SAM7х256)
СообщениеДобавлено: 12 сен 2017, 07:51 
Старожил

Зарегистрирован: 28 янв 2012, 21:27
Сообщения: 292
Откуда: Питер
Atmel - уроды! (с) - не моё
Уроды потому, что меняют или вообще снимают с производства годами работающую комплектуху.

Может, попробовать изобразить из 2-х транзисторов ключ, который будет подключать резистор к VCC? Или такие доработки недопустимы?
Или поставить буфер между ногой и резаком?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь, сломал голову!!! (Atmel AT91SAM7х256)
СообщениеДобавлено: 12 сен 2017, 15:29 
Старожил

Зарегистрирован: 07 авг 2014, 17:15
Сообщения: 352
Откуда: дальнее надмосковье
Цитата:
Однако мы не можем быстро разобраться с прошивкой, сейчас такого специалиста в штате нет. Можете посоветовать, что тут можно предпринять?


Попробуйте найти и запостить код инициализации ножек. А мы попробуем помочь - там изменений должно быть на пару строк кода.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь, сломал голову!!! (Atmel AT91SAM7х256)
СообщениеДобавлено: 12 сен 2017, 16:23 
Старожил

Зарегистрирован: 10 июн 2011, 23:01
Сообщения: 2908
iev91 писал(а):
Может, порт 91 нога не на выдачу, а на вход с подтяжкой.
Похоже, производитель слегка изменил номиналы внутри чипа, не нарушив даташит, а программист с самого начала использовал чип не очень корректно.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь, сломал голову!!! (Atmel AT91SAM7х256)
СообщениеДобавлено: 12 сен 2017, 16:52 
Только пришел

Зарегистрирован: 11 сен 2017, 17:24
Сообщения: 19
Всем спасибо за помощь! Проблема пока не решена, но хотя бы понятно куда копать.
Нашли пару МК с более старой ревизией, запаяли, все сразу заработало, т.о. понятно что дело только в новой ревизии.
Блин! Такой удар со стороны классика )) 5 лет все было нормально и вдруг на тебе! Самое главное вовремя )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь, сломал голову!!! (Atmel AT91SAM7х256)
СообщениеДобавлено: 12 сен 2017, 17:02 
Только пришел

Зарегистрирован: 11 сен 2017, 17:24
Сообщения: 19
А если тупо посадить питание на D+ USB вместо 91 ноги? Там наверное нужно выставить нужный уровень напряжения, но мы помереем на рабочей плате какой нужен уровень и сделаем делитель напряжения. Наверняка плата будет определяться, но вот будет ли работать? Я не уверен, что 91 нога просто задавала уровень напряжения для USB.
Программно отключать USB не нужно, как это можно было сделать через 91-ногу, режим работы такой что USB всегда должен быть подключен.
Может это сработать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь, сломал голову!!! (Atmel AT91SAM7х256)
СообщениеДобавлено: 12 сен 2017, 17:16 
Только пришел

Зарегистрирован: 11 сен 2017, 17:24
Сообщения: 19
arm999 писал(а):
Цитата:
Однако мы не можем быстро разобраться с прошивкой, сейчас такого специалиста в штате нет. Можете посоветовать, что тут можно предпринять?


Попробуйте найти и запостить код инициализации ножек. А мы попробуем помочь - там изменений должно быть на пару строк кода.


Пытаюсь найти код. Открываю проект в IAR, там вверху море закладок с исходниками. Мне кажется, что ноги инициализируются в pio_it.c или нет?
Какие признаки кода инициализации ног?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь, сломал голову!!! (Atmel AT91SAM7х256)
СообщениеДобавлено: 12 сен 2017, 17:26 
Старожил

Зарегистрирован: 10 июн 2011, 23:01
Сообщения: 2908
alex7777555 писал(а):
Какие признаки кода инициализации ног?

запись в регистры PIO_*


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь, сломал голову!!! (Atmel AT91SAM7х256)
СообщениеДобавлено: 12 сен 2017, 17:47 
Только пришел

Зарегистрирован: 11 сен 2017, 17:24
Сообщения: 19
_pv писал(а):
alex7777555 писал(а):
Какие признаки кода инициализации ног?

запись в регистры PIO_*


Тогда видимо правильно, но найти инициализацию этой ноги не могу.
В даташит 91 - это PA7/PGMNVALID, в коде этого нет. Или она там как-то иначе обозначается?
Я могу сбросить код на e-mail, если это удобно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь, сломал голову!!! (Atmel AT91SAM7х256)
СообщениеДобавлено: 13 сен 2017, 14:41 
Только пришел

Зарегистрирован: 11 сен 2017, 17:24
Сообщения: 19
Нашел такой код. Если я правильно понял 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;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь, сломал голову!!! (Atmel AT91SAM7х256)
СообщениеДобавлено: 13 сен 2017, 15:17 
Старожил

Зарегистрирован: 10 июн 2011, 23:01
Сообщения: 2908
осталось найти где и как этот PIN_USB_PULLUP используется при инициализации.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь, сломал голову!!! (Atmel AT91SAM7х256)
СообщениеДобавлено: 13 сен 2017, 15:38 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 538
alex7777555 писал(а):
Нашел такой код. Если я правильно понял 91 нога правильно включена, на подтяжку

На подтяжку - это как раз неправильно, иначе чего бы тебе советовали 1.5К резюк напрямую на VCC цеплять. С подтяжкой будет, например, 21.5К на VCC... А напрямую не всегда работает, мк может проинициализировать модуль USB с задержкой, к тому времени комп уже выдаст ошибку.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь, сломал голову!!! (Atmel AT91SAM7х256)
СообщениеДобавлено: 13 сен 2017, 16:53 
Только пришел

Зарегистрирован: 11 сен 2017, 17:24
Сообщения: 19
Reflector писал(а):
alex7777555 писал(а):
Нашел такой код. Если я правильно понял 91 нога правильно включена, на подтяжку

На подтяжку - это как раз неправильно, иначе чего бы тебе советовали 1.5К резюк напрямую на VCC цеплять. С подтяжкой будет, например, 21.5К на VCC... А напрямую не всегда работает, мк может проинициализировать модуль USB с задержкой, к тому времени комп уже выдаст ошибку.



main()
{
PIO_Configure(pins, PIO_LISTSIZE(pins));
AT91C_BASE_PIOA->PIO_PER = AT91C_PIO_PA7;
AT91C_BASE_PIOA->PIO_OER = AT91C_PIO_PA7;
USB_PULLUP_OFF;
wait(100000);
USB_PULLUP_ON;
//RSTC_ExtReset();
RSTC_SetExtResetLength(127);
RSTC_SetUserResetEnable(1);
RSTC_SetUserResetInterruptEnable(1);


Я так понимаю, что да, есть задержка на 100000.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь, сломал голову!!! (Atmel AT91SAM7х256)
СообщениеДобавлено: 13 сен 2017, 17:13 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 538
Скачал доки на чип, по идее тут все проинициализированно правильно, я сначала подумал что сама 91 нога сконфигурированна в режиме подтяжки... Можно попробовать с этой паузой поиграться, от убрать совсем до увеличить в несколько раз. Если убрать, то может заработает с резюком на Vcc...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь, сломал голову!!! (Atmel AT91SAM7х256)
СообщениеДобавлено: 13 сен 2017, 17:49 
Старожил

Зарегистрирован: 10 июн 2011, 23:01
Сообщения: 2908
Reflector писал(а):
Скачал доки на чип, по идее тут все проинициализированно правильно


Цитата:
Если резистор отпаять, то на ножке 91 присутствует 3.3в, как и должно быть. Если припаять резистор обратно, то напряжение падает на ножке 91 до 2.3в

на выходе, нагруженном аж полутора килоомами падает целый 1 вольт. то есть выходное сопротивление порта стало 3кОм, это если D+ в нуле.
а если учесть что вниз D+ хост в этот момент вроде как только 15кОмами тянуть должен. то выходное сопротивление получается уже 50кОм, что соответствует просто внутренней подтяжке, но никак не ноге сконфигурированной на выход.

сделайте просто
Код:
//PIO_Configure(pins, PIO_LISTSIZE(pins));
AT91C_BASE_PIOA->PIO_PER = AT91C_PIO_PA7;
AT91C_BASE_PIOA->PIO_OER = AT91C_PIO_PA7;
while(1){
  AT91C_BASE_PIOA->PIO_SODR = AT91C_PIO_PA7;
  wait(1000000);
  AT91C_BASE_PIOA->PIO_CODR = AT91C_PIO_PA7;
  wait(1000000);
}

хотя там надо посмотреть в PIO_Configure не надо ли ещё какое-нибудь тактирование на PIO в целом подать чтобы он заработал.

и посмотрите что будет на выходе при разных нагрузках. на обоих ревизиях чипа.
может просто МК палёные.
ещё можно посмотреть что там на D+ происходит, может надо USB как-то сначала инициализировать, что без инициализации он что-нибудь нехорошее на D+, D- делает.
но даже если МК сдурел и зажал сигнальные линии усб на землю, на выходе 91 не может так напряжение просесть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь, сломал голову!!! (Atmel AT91SAM7х256)
СообщениеДобавлено: 13 сен 2017, 18:08 
Только пришел

Зарегистрирован: 11 сен 2017, 17:24
Сообщения: 19
_pv писал(а):
Reflector писал(а):
Скачал доки на чип, по идее тут все проинициализированно правильно


сделайте просто
Код:
//PIO_Configure(pins, PIO_LISTSIZE(pins));
AT91C_BASE_PIOA->PIO_PER = AT91C_PIO_PA7;
AT91C_BASE_PIOA->PIO_OER = AT91C_PIO_PA7;
while(1){
  AT91C_BASE_PIOA->PIO_SODR = AT91C_PIO_PA7;
  wait(1000000);
  AT91C_BASE_PIOA->PIO_CODR = AT91C_PIO_PA7;
  wait(1000000);
}

хотя там надо посмотреть в PIO_Configure не надо ли ещё какое-нибудь тактирование на PIO в целом подать чтобы он заработал.

и посмотрите что будет на выходе при разных нагрузках. на обоих ревизиях чипа.
может просто МК палёные.
ещё можно посмотреть что там на D+ происходит, может надо USB как-то сначала инициализировать, что без инициализации он что-нибудь нехорошее на D+, D- делает.
но даже если МК сдурел и зажал сигнальные линии усб на землю, на выходе 91 не может так напряжение просесть.


Сделал. Ничего не изменилось, так же 2.2в, при отключенном usb.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь, сломал голову!!! (Atmel AT91SAM7х256)
СообщениеДобавлено: 14 сен 2017, 15:43 
Только пришел

Зарегистрирован: 11 сен 2017, 17:24
Сообщения: 19
Раскопали в хламе старые паянные МК. Запаяли вместо новых на эти же платы, все работает, блин!
Но три нам к сожалению мало, а хлам закончился.
Проблема по-прежнему актуальна.
Готов выставить хороший коньяк или иное вознаграждение по Вашему выбору за конструктивную помощь )


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 36 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB