Стандартные команды COM-порта для микросхем Atmel CDC - PullRequest
1 голос
/ 19 ноября 2011

Я пытаюсь использовать AT90USB162 Чип Atmel в качестве класса устройств связи (CDC) для связи некоторых внешних датчиков с некоторыми приложениями Windows.

На сайте Atmel Замечания по применению для этого чипа Я нашел примечание к приложению AVR296: AVRUSBRF01 Руководство пользователя USB RF Dongle , в котором описан способ использования этого чип как CDC (для RF целей, но здесь это не проблема). И это примечание к приложению поставляется с заархивированными файлами AVR296.zip , которые содержат файл .a90 для записи микросхемы и файл .inf для использования в качестве драйвера Windows.

Итак, я записал свой чип с файлом AVRUSBRF01-AT90USB162-usbdevice_cdc_rf-2_0_1.a90 и установил драйвер at90usbxxx_cdc.inf на свою Windows. И, наконец, Windows успешно распознала COM-порт, и теперь я пытаюсь связаться с чипом через механизм CDC.

Тогда есть ли стандартный список команд для использования с микросхемами Atmel, работающими как CDC?

Я хочу сделать что-то похожее на C ++, в Windows, для резидентного приложения, которое обращается к микрочипу, подключенному через USB, для чтения определенного состояния вывода, например:

ComPort1->WriteStr("read?\n");
Response : String;
ComPort1->ReadStr(Response, 50);

1 Ответ

0 голосов
/ 22 ноября 2011

Поскольку никто не ответил, я также спросил на других форумах и опубликую здесь ответ о знании сообщества SO.

Сначала ответ - нет.Однако ...

С avrfreaks , благодаря @glitch:

Код CDC - только половина уравнения AVR.Все, что делает код cdc, это эмулирует устройство cdc, поэтому код вашего ПК может взаимодействовать с устройством, как если бы он был подключен через последовательный порт.Теперь вам нужно написать свой собственный код на AVR, который связан с кодом CDC, который реализует любой протокол, который вы хотите, и любую функциональность, которую вы хотите.Код CDC не делает ничего из этого.[Вы также должны написать на ПК.в качестве альтернативы вы можете использовать стандартное приложение терминала, если протокол, который вы реализуете, основан на ascii]

и благодаря @ dakk64:

Здесь - этопример интерфейса, управляемого меню, реализованного как протопоток, но вы можете просто поместить его в свой основной цикл.

Я не буду публиковать здесь весь этот код, потому что есть 874 LOC, но вы можетеидите туда и посмотрите.

Так что не все так просто, нет списка по умолчанию (как, например, старые коды модема AT), но, зная, что это начало.

...