Перейти к содержанию
    

asmon

Участник
  • Постов

    15
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные asmon


  1. Да, интересно. Ведь у HI-TECH hex как правило меньше, оптимальней, плюс синтаксис немного отличается (я про #pragma). Очень надеюсь что гибрида между ними не будет, просто самплы портируют на HI-TECH и впредь все дружно на него перейдут :smile3009:

  2. Думаю тут не в компиляторе проблема. Если 18-й пик, то нужно LATD использовать. Если 16-й, я бы ввёл дополнительную переменную, можно всё красиво в виде структуры с соответствующими полями сделать, менял сначала нужный бит в этой переменной и записывал её в порт. Точно помню, что так делал с PORTA. Он тоже "не запоминает" биты.

  3. :help: Люди добрые помогите пожалуйста с реализацией usb hid устройства в hi-tech picc-18.

     

    Есть другие Си - компиляторы с готовыми примерами. Вот например "фирменный" Майкрочиповский или простенький примерчик mikroC. Всё зависит от задачи. Ну а писать код самому - довольно хлопотное занятие. Для этого нужно обязательно прочитать и разобрать хотябы USB in Nutshell. Есть книга Агурова по ЮСБ - я бы не рекомендовал тратить на неё своё время, но решайте сами.

    Мне в своё время помогли разобраться вот эти примеры.

  4. А кто может обьяснить назначение директивы хайтека #pragma inline func_name ? :07:

    По логике С++ функци с этой директивой должны быть подобны макросам.

    И тогда обсуждаемая проблема отпадёт сама собой (и вырастет код :) ). Но как - то непонятно эта директива описана в даташите и в своё время я с ней не разобрался... :wassat:

  5. If testing Full or Low-speed devices, an intervening Hi-Speed USB Hub is required.

    Если тестировать FS или HS устройства, необходим прожежуточный хаб с поддержкой HS режима. Купил четырёхпортовый хаб Viewcon (Китай, блин) за 45 гривен, всё заработало. Прога USBCV13 теперь видит и вышеупомянутый хаб, и девайс на пике. :08:

    Спасибо всем, тема закрыта. :beer:

  6. Да, на англицком, правда, но написано. :a14: И ещё очень много чего написано, собраться с силами прочитать не могу :07: Стыдно :wub:

    Правильно ли я понимаю, что флешки ведь хай спид, то есть поддерживают USB 2.0 и именно поэтому USBCV13 их видит ? И как быть с внешним USB-хабом 2.0, где бы его раздобыть или чем заменить ?

  7. Да, пожалуй, для 16 пиков лучше хайтека сишных компиляторов не найти. Вот 18 и выше - это другое дело. Тут, как говорится, есть варианты.

    Итак OPTION_REG,INTCON,STATUS и прочие регистры асм увидит, но вначале каждого нужно ставить нижний пробел, например:

     

    #asm

    bcf _STATUS, 0

    #endasm

     

    То же самое нужно делать и для объявленных вами глобальных переменных. Например:

     

    char i;

    #asm

    movlw 0x0D

    movwf _i

    #endasm

     

    Вот с локальными переменными - проблема. Лучше с этим не заморачиваться, хотя, если очень очень нужно - всегда можно посмотреть асмовский листинг.

     

    И ещё один совсем маленький ньюанс - вставки типа asm("bcf _STATUS, 0") и

    #asm

    bcf _STATUS, 0

    #endasm

    отличаются, это важно в циклах. Почитайте даташит.

  8. Ну конфигурация - то правильная. Иначе б устройство не работоло. А оно работает на ура, в этом то и прикол весь. Ну а насчёт багов c HID - устройствами, если это так, то разработчикам usb.org большой привет :twak: . Кому не лень, протестируйте ваши USB - устройства. Может обнаружится закономерность какая - то.

  9. После успешной разработки USB HID - устройства на дешёвом чипе 18F2550, мне пришла в голову вполне нормальная мысль - прверить этот девайс на совместимость со всеми стандартами шины. Естественно на usb.org лежит соответсвующая програмка USBCV13, в которой есть ряд важных тестов, их должны поддерживать все USB - совместмые устрйства.

    Так вот проблема заключается в том, что описанная программка (USBCV13) не видит подсоединённое устройство на 18F2550. Вместе с тем я пробовал тестировать так несколько флешек - и всех их USBCV13 уверенно распознаёт и тестирует. Проблема на лицо как говорится. :smile3046:

     

    Схема устройства - стандартная: питание от шины, на ноге VUSB конденсатор 470 нФ, кварц 20 МГц. Да - самое главное, устройсво стабильно работает, причём на разных компьютерах с Win98 иWinXP.

     

    Естественно я попробовал поменять прошивку на так сказать фирменную - взял готовый пример с Microchip MCHPFSUSB v2.1. Устройство - мышь заработало, курсор начал круговое движение. А вот вышеупомянутая USBCV13 всё - равно упорно не видит устройство на шине. Такой - же трюк я проделал и с примером mikroC - компилятора. Эффект ноль. Ещё пробовал другой кабель -глухо. USBCV13 запускаю на иWinXP sp2 - как там в описании и написано.

     

    В принципе, это больше похоже на дело принципа. Может нужно поставить резисторы по 20 Ом на D+ и D- для согласования волнового сопротивления ? Или может встроенные в 18F2550 модули слишком дешёвые, такое ощущение что просто модуль не успевает подхватить SETUP - транзакцю, либо вообще чушь - программа USBCV13 после RESET на шине шлёт запросы не по нулевому адресу :07: .

     

    Если кто сталкивался с подобной прблемой - подскажите.

×
×
  • Создать...