На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
    > А чем закончилась эпопея с HID USB на ATMega 8? (+) , я пытаюсь это всё понять...
      Всем привет и с наступившим Новым Годом!
      Вопрос у меня ужасно ламерский и даже не вопрос, а просьба. Попался мне на глаза проект mJoy - HID девайс на ATMega 8. Пытаюсь я с ним разобраться, и возникают вот какие вопросы:
      1. Есть ли какие-то наработки или русская докума на класс HID, особенно про составление дескрипторов устройства?
      2. Как мне пояснили на форуме iXBT, штатная прошивка не поддерживает состояние отключения питания (STANDBY). Сколько проглядываю доки по USB, никак не найду его описание: что посылается и как его реализовать. если можно - ткните пальцем.
      3. И, как я понимаю из кода, девайс данные только отдаёт, а приём там тоже не написан.
      У кого-то есть по этим вопросам наработки, коими можно поделиться?
      Та прошивка, которую я изучаю - в аттаче.

      Ещё, извините за ламерский пост, но параллелльно я разбираюсь и в ассемблере атмеги, где я ни в зуб ногой. Основной задачей всего этого является погаматься со схемой, и собрать конструкцию, которая хотя бы светодиоды зажигает по команде с компа.
      Сообщение отредактировано: Creedence_Sergey -

      Прикреплённый файлПрикреплённый файлmyusbtest.rar (11.85 Кбайт, скачиваний: 245)
        Вы бы сначала взяли бы что попроще - получите навык программирования AVR вообще, а потом бросайтесь реализовывать хитрожопистые протоколы.
        Рекомендую начать с протокола попроще - например, что-то вроде SPI - реализуется через LPT (дёрганьем ножками записью в порт) или через COM (управляя сигналами модемных линий через WinAPI). Добавьте контрольную сумму, придумайте протокол обмена пакетами с повторными отсылками недошедших пакетов, динамическую адресацию устройств на шине, и т.д. Короче, перед Вами - море удовольствия.

        А потом поймёте, что для целей обмена информации со своим собственным девайсом USB - вовсе не наилучшее решение.

        Добавлено
        Кстати, вместо АТмеги8 грамотные пацаны юзают АТмегу88. Уже давно.
          У меня ещё вопросы, уже по HID:
          1. Как связаны номер конечной точки и Report Descriptor - откуда известно, через какие конечные точки проводить Out, а через какие - In?
          2. Допустимо ли создание двух конечных точек с одинаковым адресом:
          EP1 - Addr 1, Input
          EP2 - Addr 1, Output

          3. Помогите разобраться с NRZ и NRZI - не могу понять, как закодировать число, скажем 1 и 2:
          1 = 0000 0001 = 0000 0010 = 1111 1101
          2 = 0000 0010 = 0000 0100 = 1111 1011
          Так или нет?

          Пока всё. В общем, мне надо разобраться, как реагировать в коде на OUT-пакеты - то ли ещё одну EP заводить, то ли как-то править существующую.
            Цитата Creedence_Sergey @
            1. Как связаны номер конечной точки и Report Descriptor - откуда известно, через какие конечные точки проводить Out, а через какие - In?

            Report Descriptor выдаётся непосредственно перед дескриптором конечной точки к которой он относится.
            Цитата Creedence_Sergey @
            2. Допустимо ли создание двух конечных точек с одинаковым адресом:
            EP1 - Addr 1, Input
            EP2 - Addr 1, Output

            Да, по спецификации USB это возможно.
            Более того - многие устройства так и делают.
              Спасибо. Мне не попалось этого в моих PDF-никах.
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0276 ]   [ 16 queries used ]   [ Generated: 19.04.24, 08:31 GMT ]