Простое usb устройство на attiny2313

Обсуждаем контроллеры компании Atmel.
Ответить
Родился
Сообщения: 8
Зарегистрирован: Сб мар 19, 2016 20:09:54

Сообщение Vladimir69 »

Здравствуйте уважаемые форумчане, нужна помощь. Решил собрать самое простое usb устройство на контроллере attiny2313A, главная цель, научиться управлять светодиодом через usb. Сразу скажу, что познания ограничены рамками интернет статей. За основу взял вот эту обучалку http://openrobo.ru/control/usb. В общем все шло нормально. Прошивать научился, фьюз биты настроил. Но фот когда дошел до шага(компьютер должен увидеть ваше устройство) застрял.
1. Вот схема устройства
Изображение

2.Может это поможет, но в поисках проблемы делал следующее:
2.1 Если подключить данное устройство без прошивки, то система (windows7) говорит "Не удалось распознать устройство" и в списке устройств мое детище висит как Unknown device
2.2 Прошиваю в контроллер все как в инструкции.При подключении устройства, система никак не реагирует.
2.3 Подумал, что криво прошиваю. Добавил в тело функции main() циклическое мигание диода раз в секунду. Подключаю к компу, светодиод мигает, система никак не видит устройства. Я так понял, что функция main() по крайней мере работает. Странность в том, что светодиод мигает очень часто, точно не раз в секунду и тускло очень. Предположил, что дело в питании, ток чтоли не постоянный, хотя тестер говорит что на usb ровно 5v. Подключил устройство с прошивкой для usb+мигание светодиода в функции main() к постоянному источнику (батарейки), светодиод мигает как надо, ярко и четко раз в секунду. Подключил к компу, но запитал от постоянного тока, никакой реакции.

В общем у меня даже не получилось, чтобы система увидела имя моего устройства. А оно прописывается в файле usbconfig.h
Методом тыка и редактирования кода ничего не получилось, проделал и проверил несколько раз, проверил сборку.

Подскажите пожалуйста, в чем может быть дело, или предложите другую статейку, желательно для уровня новичка. Уж очень хочеться продвинуться в этом направлении.
Реклама
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

Покажите фузы.
Покажите плату.
Добавьте конденсаторы по питанию. Электролит 10-1000 мкФ и керамика 0.01 - 1 мкФ.
Попробуйте поменять кварц, убрать/заменить конденсаторы.
Что за компонент висит на PB0?
Проверьте подключение линий к USB. Лучше всего прозвонить прямо на вилке. Вдруг перепутали D+ и D-, или там просто обрыв. Также можно проверить работают ли ограничители напряжения на линиях данных. Я один раз случайно вместо стабилитрона диод запаял.
Реклама
Родился
Сообщения: 8
Зарегистрирован: Сб мар 19, 2016 20:09:54

Сообщение Vladimir69 »

Изображение

Значения фьюзов E:FF, H:DB, L:EF

Питание сделал по этой схеме
Изображение

На PB0 обычный светодиод

USB прозвонил, вроде все ок

И я ввел немного в заблуждение, если прошить все как для usb, то устройство видит, но не распознает. Правда опять таки если питание от постоянного источника 5v. Попробую еще от usb запитать. Потому-что по текущей схеме, питание 3,7 v. При прошивке на программаторе у меня стоит 5v. Вроде разницы не должно быть, написано же, что контроллер работает от 3-5V.
Изображение

Вы правы, я ставил обычные диоды, а как можно проверить работу ограничителей напряжения и какие стабилитроны туда ставить?
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

Подать на выводы контроллера лог.1, чтобы на них оказалось 5 В. Тогда на линиях данных должно появиться 3.3 - 3.6 В. Соответственно и стабилитроны надо ставить маломощные на 3.3 - 3.6 В.
С фузами вроде все нормально.
УГО светодиода выглядит иначе, к тому же ему нужен ограничительный резистор. А то что висит на PB0 больше похоже на источник постоянного напряжения.
Ну и, кстати, порядок проводов на USB-вилке | VCC | D- | D+ | GND | , у вас на схеме D+ и D- поменяли местами. Поэтому и говорю перепроверить прямо на вилке.
Ну и что с тактовой частотой, похожа она на 12 МГц? Можно увеличить время выхода тактового генератора в активный режим: lfuse=0xFF. Вряд ли это поможет, но и не помешает.
Можете все-таки показать плату самого устройства а не питания.
Реклама
Эиком - электронные компоненты и радиодетали
Родился
Сообщения: 8
Зарегистрирован: Сб мар 19, 2016 20:09:54

Сообщение Vladimir69 »

1.1 Спасибо, действительно есть проблемы с выходами. На линии D+ и D- у меня идет 5v. Поставлю стабилитроны на 3,6 и посмотрю как заработает.

1.2 Получается PD4 нужно на D+?

1.3 Тактовую частоту не могу проверить, т.к. имею только тестер. Я так понял, что с ней все нормально, т.к. в прошивке стоит прерывание светодиода 500мс, и он мигает как раз раз в секунду.
PORTB |= 1;
_delay_ms(500);
PORTB &= ~1;
_delay_ms(500);

1.5 А само устройство собрано на монтажке, 1й рисунок. Извиняюсь если не правильно понял просьбы, показать плату самого устройства.

Спасибо большое за наводки, у меня уже есть куда копать) Разберусь с напряжением на D+ и D- сразу отпишусь. Я правильно понял, что на контроллере на этих выходах должно быть 5v (непосредственно на ногах PD2-4). А резисторами 68Ом и стабилитронами, его нужно понизить до 3,6 на линии выходов usb порта?
Реклама
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

На схеме нарисовано, наверное, правильно (тут надо код смотреть что куда назначено), но нелогично нарисован USB-разъем. Поэтому будьте внимательны. Цветную маркировку я не помню, ди м предпочитаю не полагаться на нее. Поэтому еще раз говорю - прорверяйте прямо на разъеме.
Если диод моргает правдоподобно, будем считать что тактирование в норме.
Если я правильно понял что у вас разведено на макетке, вы не туда поставили резисторы. Они должны идти от выводов контроллера, а не от разъема. Это обычная схема линейного стабилизатора напряжения. Со стороны компьютера 3.3-3.6 В гарантируется, а вот обеспечить ее со стороны контроллера - ваша задача.
Длина проводов с высокочастотным сигналом великовата. Это линии данных USB и, особенно, кварц. Вот кварц обязательно поставьте как можно ближе к камню. И фильтрующий конденсатор тоже. В том числе керамику 0.1 мкФ.
Реклама
Родился
Сообщения: 8
Зарегистрирован: Сб мар 19, 2016 20:09:54

Сообщение Vladimir69 »

Я понял, исправлю все недочеты, проверю правильность usb, надеюсь заработает, спасибо за помощь, напишу результат!
Модератор
Аватара пользователя
Сообщения: 19077
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

COKPOWEHEU писал(а):вы не туда поставили резисторы. Они должны идти от выводов контроллера, а не от разъема. Это обычная схема линейного стабилизатора напряжения. Со стороны компьютера 3.3-3.6 В гарантируется
со стороны компьютера тоже должны быть резисторы, иначе в стабилитроны пойдет не контролируемый ток.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

Ни в одной схеме vusb не видел такого. Даже 60-омные резисторы считаются великоватыми для usb (рекомендуется 20 Ом), а вы хотите поставить суммарно аж 80 Ом. Ну и стабилитроны обычно рассчитаны на немного большее напряжение, чем нормальное на линиях данных usb.
Родился
Сообщения: 8
Зарегистрирован: Сб мар 19, 2016 20:09:54

Сообщение Vladimir69 »

Спасибо COKPOWEHEU! ПК распознал устройство. Поставил стабилитроны на 3,6v. Буду продолжать изучение :music:
Родился
Сообщения: 1
Зарегистрирован: Пт июн 03, 2016 19:04:25

Сообщение AZinX »

Vladimir69, только стабилитроны поставил? Но ведь диод зенера это и есть стабилитрон. Можешь показать, как в итоге выглядела у тебя схема?

У меня просто та же проблема.

Или кто другой, помогите пожалуйста.

Заранее спасибо! :)
Родился
Сообщения: 6
Зарегистрирован: Сб авг 20, 2016 16:52:49

Сообщение EAlexK »

Добрый день.
Такая же проблема возникла и у меня, но МК марки ATmega 328P-PU.

Vladimir69, какие по мощности стоят у Вас стабилитроны.
На просторах интернета говорят, что можно поставить 0,25Вт. Другие - что этого мало,необходимо 0,5Вт.
У меня стоят 3V6 на 0,5Вт.

Не пойму принцип действия конденсаторов, подключенных к резонатору. Они у меня 20 пФ. Видел рекомендации, что необходимо 22пФ.
Но в режиме прошивки, при фьюзах настроенных на внешний резонатор и резонаторе 12МГц, Atmega328p-pu стартует и без них.
Родился
Сообщения: 6
Зарегистрирован: Сб авг 20, 2016 16:52:49

Сообщение EAlexK »

Добрый день.
Попробовал сделать этот же проект, но на Attiny2313V-10PU.
Результат тот же. Устройство не опознано. Вместо резонатора, поставил генератор.

Посмотрите,что я мог неправильно собрать.
Вложения
Attiny.jpg
(249.09 КБ) 820 скачиваний
Родился
Сообщения: 6
Зарегистрирован: Сб авг 20, 2016 16:52:49

Сообщение EAlexK »

Отключил делитель и все заработало.
Родился
Сообщения: 4
Зарегистрирован: Вс ноя 22, 2015 14:04:28

Сообщение mputnick »

Была та же проблема. Собирал эту схему, микроконтроллер Attiny2313.

Компьютер смог опознать устройство, после того как подключил pull-up резистор на 1.5 кОм не к 5 В, как на схеме, а к 3.6 В.

Цитата из USB in a NutShell:

As we have discussed, USB uses a differential transmission pair for data. This is encoded using NRZI and is bit stuffed to ensure adequate transitions in the data stream. On low and full speed devices, a differential ‘1’ is transmitted by pulling D+ over 2.8V with a 15K ohm resistor pulled to ground and D- under 0.3V with a 1.5K ohm resistor pulled to 3.6V. A differential ‘0’ on the other hand is a D- greater than 2.8V and a D+ less than 0.3V with the same appropriate pull down/up resistors.
Ответить

Вернуться в «AVR»