@damewigit
Любознательный

Включение светодиода по USB?

Пытаюсь повторить проделанное в этой статье. Микроконтроллер у меня ATTINY45-20PU.

jjhaZxxNPmY.jpgСперва попробовал собрать hex из исходников в статье, ругалось что некоторые переменные должны быть константами, собрал, прошил контроллер, подключаю - "Устройство USB не опознано", и уходит в цикл включений - отключений (судя по звукам). В исходниках пришлось добавить
#define F_CPU 1650000
иначе не компилилось, а также
#define USB_CFG_CLOCK_KHZ 16500.
Компилировал в AtmelStudio.
Потом решил залить hex файл из архива в статье, подключаю - вообще признаков жизни не подает.
На выводах VCC и GND контроллера 3,5 В, это нормально? Попробовал также после инициализации направления порта добавить включение ножки на которой светодиод
sbi(LED_PORT_DDR,LED_BIT);			/* делаем ножку, куда подключен LED, выходом */
sbi(LED_PORT_OUTPUT,LED_BIT);

работает, светодиод включается когда подаешь питание.

Подскажите куда копать?
  • Вопрос задан
  • 981 просмотр
Пригласить эксперта
Ответы на вопрос 2
Neuroware
@Neuroware
Программист в свободное от работы время
судя по тому что автор свою статью закрыл видимо с ней не все пучком было, сейчас не зная того что вы делали невозможно ничем помочь. В частности совершенно не ясно как вы посылаете сигналы к устройству. Для коня в вакууме можно подобрать диоды на меньшу\большу мощьность, иногда помогает решать проблему "устройство не определено".
Ответ написан
svd71
@svd71
Статью почитать не могу, по причине отсиствия картинок. Но смотря на бредбоард вероятно вижу возможную причину. Не все USB одинаково полезны. Для таких устройств нужно показывать USB, что устройство имеет версию 1.1. Это делается подтяжкой сигнала D- резистором на питание, чтоб при включении устройства проходило такое распознавание. Кроме того по этой же причине могут не распознаваться сигналы устройства на некоторых прортах USB даже одного компьютера. Это вообще отдельная тема дискусии, как правильно сопрягать контроллер с USB. с точки зрения схематики. Обычно на это я трачу кучу времени для каждого моего устройства.

Во вторых обычно такие схемы строятся на библиотеке v-usb. У них ограничение простое: выше 16МГц частоту лучше не использовать - очень быстро для данного класса устройств. самое оптимальное - это 12МГц.

В костантах тоже бардак. F_CPU обычно задается в Герцах. То есть значение 16500 - это уже не правильно. Иногда даже приписываут к константе единицы измерения, чтоб компилятор с ума не сходил от количества нулей: #define F_CPU 12000000UL.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы