???
Математика на уровне МГУ

Показано с 226 по 226 из 226

Тема: USB контроллер на Микрочипе

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    USB контроллер на Микрочипе

    По просьбе многих, открываю новый тред отпочковавшийся от
    http://www.sukhoi.ru/forum/showthrea...&page=32&pp=25
    ----------------------------------------------------------------
    Я тут практически закончил разработку USB контроллера для самодельщиков. Штука эта будет такая:

    Модель 1:
    http://www.lbodnar.dsl.pipex.com/joystick/
    8 аналоговых входов по 10бит разрешения каждый
    12 кнопок либо независимых, либо матрицей 6x6
    (вариант 10 аналоговых 10битных входов + 10 кнопок или 5x5 матрица, но Win не видит больше 8 осей на одном джойстике, поэтому он будет виден под Виндами как два джойстика)


    Модель 2:
    6 квадратурных декодеров, два из которых с оцифровкой до скорости 150кГц (для кодеров типа 2000линий на оборот) с разрешением 20бит
    8 цифровых кнопок

    Модель 3:
    100 кнопок в конфигурации матрицей 10x10.

    Общие для всех трех:
    Чип с 28 ножками в обычном DIP корпусе (Microchip PIC18F2550)
    Все что нужно для подключения: 4MHz кварц, два конденсатора и USB разъем (или сразу кабель)
    Питание от USB порта
    Full-speed USB (12Mbit), частота обновления всех каналов - 1000 раз в секунду (период 1мсек)
    Драйверы не нужны (стандартное устройство в Win/Mac/Linux)

    Я не хочу делать плату контроллера потому что цены подкрадываются со спины: плата, кварц, сборка, упаковка, тестирование, etc.

    Цена чипа: $15.

    Где-то в середине года у меня будет просто ОДНА модель - чип, которых можно переключать в любую конфигурацию из интерфейсной программки под Win/Mac/Linux.

    Честно говоря, я cтолько времени потерял с мышиными декодерами... это просто убийство времени, а результат - 30 импульсов на оборот. Самое мерзкое, что они теряют импульсы из-за фиговых сенсоров. Для мыши это не имеет значения, а в кодере после прогона 1000 импулсов в одну сторону обратно возвращаются только, например, 996, поэтому центровка джойстика постоянно дрейфует в процессе.

    И тут я открыл глаза! Есть готовые декодеры типа http://www.encoder.com/model755a-shaft.html с разрешением 2000 импульсов на оборот (до 10000 если очень нужно) это уже что-то т.к. 2000 импульсов дают разрешение в 8000 позиций на оборот (считаем-то фронты). Аналоговые потенциометры отдыхают! Купить их можно на eBay за $20-30. Проблема в том, что если человек крутанет этот декодер (или все-таки энкодер?) с приличной скоростью, импулсы посыпятся с такой частотой, что даже хороший контроллер, если он еще хоть чем-то занят просто их не успевает обработать и все работа - насмарку, центровка опять съезжает. В ATMega16 нет USB контроллера, поэтому MJoy использует аппаратную работу с USB - разбирает его по битам и собирает обратно. Это занимает безумное количество времени и делает применение крутых кодеров невозможным. Собственно поэтому я и ввязался в то, что у меня получилось в итоге.

    Идея такая - продавать самодельную плату типа MJoy16 людям, которые потом все равно все выходные с паяльниками сидят глупо. Поэтому я убиваю время над мудрым софтом внутри (USB - это не RS232!), а все остальное любой самодельщик может сделать буквально за 15минут и потратить на это $2-3. Вот такая вот идея.

    Уффф, пальцы отваливаются!

    P.S. Кстати, если все-же хочется сделать квадратурных кодер самому, то лучше раскурочить старый струйных принтер. Там часто используется осевой кодер на ~500 линий/оборот и линейный - такая прозрачная полоска с тоненькими линиями (720dpi?). Сенсоры (обычно Agilent) как бы обхватывают их и выдают уже хороший квадратурных сигнал TTL уровня. У них 4 ножки и им только нужно +5v для питания и все.
    Крайний раз редактировалось lbodnar; 01.03.2006 в 20:23.

Ваши права

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