ATmega32 + V-USB (он же бывш. USB-AVR) проблема

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Аватара пользователя
Maxxon
Открыл глаза
Сообщения: 43
Зарегистрирован: Пт апр 09, 2010 12:54:00
Откуда: Санкт-Петербург

ATmega32 + V-USB (он же бывш. USB-AVR) проблема

Сообщение Maxxon »

Добрый день!

Занялся подключением ATmega32 к USB, бьюсь уже несколько дней, пока не удается сделать рабочую базу, при подключении к USB получаю от винды что-то вроде "Не удается опознать девайс". libusb для винды установлен, утилитка просмотра устройств, мое устройство в упор не видит.

Схема подключения - with-zener.png
В моем случае используется ATMega32 16PU, внешний кварц на 16 МГц. Выход D+ USB порта через резистор подключен к 16 ноге меги, выход D- - к 17 ноге (согласно рекомендации, D+ идет на INT0, D- на любую ногу того же порта (я взял соседнюю, с INT1)).
Номиналы дискретных элементов - один-в-один, как на схеме. Контроллер точно рабочий, пробовал поморгать светодиодами, вывести текст на ЖКИ итп, все ок. Фьюзы:
CKSEL3..1 - 111
CKSEL0 - 1
CKOPT - 1
SUT1..0 - 10
Т.е., согласно даташиту, Crystal Oscillator, fast rising power.

Пробую загрузить firmware из примера custom-class (посветить светодиодом через команду от хоста) из пакета V-USB. В usbconfig.h определил:

#define USB_CFG_IOPORTNAME D
#define USB_CFG_DMINUS_BIT 3
#define USB_CFG_DPLUS_BIT 2

(согласно распиновке меги32, (INT0) PD2 (16 нога), (INT1) PD3 (17 нога))

Перекомпилил, указав в Makefile (make hex):
DEVICE = atmega32
F_CPU = 16000000
, прошил через PonyProg.

Результат... Собственно, нет результата, хост не видит моего девайса.

Если кто-нибудь сталкивался с подобным, подскажите, пожалуйста куда мне копать. Возможно, надо еще какие-то махинации с фьюзами (watchdog включить или еще чего) или вешать D- на INT1 неправильно итп.

К слову, пробовал другие схемы, с диодами и интегральным стабилизатором, все та же фигня, но схема со стабилитронами надежнее для меня, так как, насколько я понимаю, моя мега работает нестабильно на напряжении меньше 4.5 вольт, поэтому надежнее питать напрямую от USB ее.

На других контроллерах пока не проверял, есть в наличии tiny2313, mega8515 и еще какая-то древность. Возможно, попробую к тини прикрутить сегодня-завтра.

Заранее спасибо за ответы!
Вложения
with-zener.png
(13.11 КБ) 1106 скачиваний
Реклама
Аватара пользователя
md5sum
Вымогатель припоя
Сообщения: 672
Зарегистрирован: Вт окт 27, 2009 22:39:19
Откуда: Москва

Re: ATmega32 + V-USB (он же бывш. USB-AVR) проблема

Сообщение md5sum »

Попробуй убрать стабилитроны - должно (может) работать и без них.
Было похожее, без стабилитронов работало, с ними - нет.
Выяснилось, что стабилитроны нужны самые маломощные. Поставил на максимальный ток 5ма и все работает.
— Не говорите мне что делать и я не скажу куда Вам идти...
Реклама
Аватара пользователя
Danko
Сверлит текстолит когтями
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай
Контактная информация:

Re: ATmega32 + V-USB (он же бывш. USB-AVR) проблема

Сообщение Danko »

Грабли могут быть как програмными так и аппаратными.

Фузы нужно выставлять для работы от кварца. Спящую собаку не трогайте.

Я для себя брал примеры с переводом от Микросина http://microsin.ru/Download.cnt/avr/avr-usb-russian.rar

Все заработало сразу, завелось с полуоборота.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Аватара пользователя
neonix
Электрический кот
Сообщения: 1040
Зарегистрирован: Чт фев 19, 2009 17:46:34
Контактная информация:

Re: ATmega32 + V-USB (он же бывш. USB-AVR) проблема

Сообщение neonix »

Кондеры на кварце какого номинала ? У меня раз была проблема ни в какую нехотела работать 48 мега с USB , убрал кондеры все завелось сразу.
Where technology meets enjoyment.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Maxxon
Открыл глаза
Сообщения: 43
Зарегистрирован: Пт апр 09, 2010 12:54:00
Откуда: Санкт-Петербург

Re: ATmega32 + V-USB (он же бывш. USB-AVR) проблема

Сообщение Maxxon »

to md5sum: Временно убрал стабилитроны. На шине +5В, девайс вообще не определяется. Причина - нужны уровни 3-3.3 вольт. Так что если стабилитроны убирать, то через подтяжку в 1.5 КОм должно идти 3.3 вольт, следовательно, гасить диодами. А я от этого ушел, так что придется их оставить. Стабилитроны у меня SMDшные, BZX84c, вроде до ста миллиампер. Я бы попробовал меньшие, но, боюсь сейчас негде их взять, да и разницу не совсем понимаю... Вернул стабилитроны обратно.

to neonix: Кондеры SMD, 22pf. Сдул их. Разницы не ощутил. Поскольку до этого контроллер работал со светодиодами на той же печатке без изменений, кажется, дело не в них. Да и нужны они собственно говоря, чтобы кварц работал четко. Вернул обратно.

to Danko: да, тоже их смотрел. Это тот же пакет, но с комментами на русском. Именно оттуда пример и не заводится на моей меге :(.
Фьюзы - на внешний кварц, как и писал, тут все верно. Собака спит. Начинаю думать что проблема программная. Попробую все-таки сперва к тини прикрутить...

Запустил BusHound, говорит девайс, мол, вижу, однако "the device has no USB endpoints", а по коду они выставлены.
Реклама
Аватара пользователя
demson
IT KT
Сообщения: 1309
Зарегистрирован: Пн авг 25, 2008 08:49:33
Контактная информация:

Re: ATmega32 + V-USB (он же бывш. USB-AVR) проблема

Сообщение demson »

Danko писал(а):Я для себя брал примеры с переводом от Микросина http://microsin.ru/Download.cnt/avr/avr-usb-russian.rar
целый день возились с этим пакетом потом просто перешли на v-usb с офф сайта и все заработало :)

в там в конфигах фигурирует еще частота
#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
/* Clock rate of the AVR in MHz. Legal values are 12000, 15000, 16000, 16500
для 16 МГц надо
#define USB_CFG_CLOCK_KHZ 16000
в спорах рождается ИСТИНА [AND] flud.
Реклама
Аватара пользователя
neonix
Электрический кот
Сообщения: 1040
Зарегистрирован: Чт фев 19, 2009 17:46:34
Контактная информация:

Re: ATmega32 + V-USB (он же бывш. USB-AVR) проблема

Сообщение neonix »

Maxxon по поводу кондеров у меня была другая проблема - частота кварца с кондерами была выше чем надо, и задержки получались меньше чем нужно. Я бы вам предложил попробовать поставить кварц на 12 мгц и подправить любой пример под вашу мегу.
Where technology meets enjoyment.
Аватара пользователя
Maxxon
Открыл глаза
Сообщения: 43
Зарегистрирован: Пт апр 09, 2010 12:54:00
Откуда: Санкт-Петербург

Re: ATmega32 + V-USB (он же бывш. USB-AVR) проблема

Сообщение Maxxon »

О, насчет клока это идея, обязательно попробую, спасибо! Возьму оригинальный пакет. У меня осталось дефолтное значение, полагал что возьмет из Makefile как аргумент и подставит... Попробую задать явно.
12 МГц тоже попробую, все-таки пакет девелопили изначально на эту частоту.
Спасибо за ответы, отпишусь как и чего по результату. К сожалению, моя мега ушла каким-то макаром в лок, программатор ее видит, но лок биты каким-то образом запрограммировались. На одном буржуйском сайте видел сообщение, что такое иногда бывает, когда сигнальные шины ISP замкнуть случайно, а у меня как раз кот по девайсу и столу потоптался (я серьезно) :)
Так что теперь волей неволей придется паять параллельный программатор или реаниматор (даже склоняюсь к последнему, благо валяется мега8515 под рукой). Так что новости будут к концу недели.
Аватара пользователя
Maxxon
Открыл глаза
Сообщения: 43
Зарегистрирован: Пт апр 09, 2010 12:54:00
Откуда: Санкт-Петербург

Re: ATmega32 + V-USB (он же бывш. USB-AVR) проблема

Сообщение Maxxon »

Сбросил свою мегу32 с помощью РЕАНИМАТОР ДЛЯ AVR - респектище автору!

Странное дело: данные пишутся, читаются, стираются итд, однако при программировании фьюзов, они программируются, но лок биты программируются тоже. Поскольку на печатке-макетке у меня сейчас черт-те знает что, есть подозрение что я немного подпалил контроллер или он глючный. Вряд ли РЕАНИМАТОР подпалил его. Думаю, переразведу печатку с учетом всех изменений и, если контроллер продолжит себя так вести, прикуплю новый.

А проблему я все-таки победил. Причем, весьма просто - пересадил ногу D- на 15ую ногу контроллера (TXD), сделал соотв. изменения в конфигурации и, как написал demson, захаркодил клок на 16000. Пакет - оригинальный V-USB

Пример с HID мышью работает замечательно, пример LEDControl - девайс определяется, однако винды не могут найти драйвер (libusb32 4 win установлен), соответственно, программа хоста не работает. Кто-нибудь знает какой драйвер ему надо скормить? Libusb - из EXI/MSI установщика, inf/sys/cat файлов там не наблюдается...
Si-Soft
Родился
Сообщения: 8
Зарегистрирован: Пт мар 12, 2010 11:44:19
Откуда: Красноярск

Re: ATmega32 + V-USB (он же бывш. USB-AVR) проблема

Сообщение Si-Soft »

Я драйвер устанавливал libusb-win32-filter-bin-0.1.12.1.exe из пакета http://microsin.ru/Download.cnt/avr/avr-usb-russian.rar.
Прочитайте статью http://microsin.ru/content/view/613/44/#comment-191, там все подробно описано. Я тоже ATmega32 использую, без буквы L и нормально на 3.3V работает.
Простую мышь сделал на переменных резисторах.
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: ATmega32 + V-USB (он же бывш. USB-AVR) проблема

Сообщение Satyr »

Сколько пользовал V-USB - в половине случаев были какие нибудь плавающие глюки в лучшем случае.
Да и девайс получается Low speed и официально только с контрол эндпойнтом и с адскими проблемами с прерываниями -))

Вам делать нечего ? полно контроллеров с нормальным USB контроллером за смехотворную доплату. 1-2 бутылки средненького пива -))
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: ATmega32 + V-USB (он же бывш. USB-AVR) проблема

Сообщение Мурик »

Есть относительно нормально работающая библиотека Virtual-USB
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»