Question

I'm trying to use an AT90USB162 Atmel chip as a Communication Device Class (CDC) for communicating some external sensors to some Windows applications.

In Atmel Application Notes site for this chip I found the application note AVR296: AVRUSBRF01 USB RF Dongle user's guide, which described a way to use this chip as CDC (for RF purposes, but this is not the concern here). And this application note comes with the zipped files AVR296.zip which contains the .a90 file to burn the chip and the .inf file to use as a Windows driver.

So I have burned my chip with the AVRUSBRF01-AT90USB162-usbdevice_cdc_rf-2_0_1.a90 file provided and installed the at90usbxxx_cdc.inf driver on my Windows. And finally Windows recognized the COM port successfuly, and now I'm trying to communicate with the chip through the CDC mechanism.

Then, is there a standard command list for using with Atmel's microchips working as CDCs?

What I want to do is something like in C++, in Windows, for an resident application accessing the microchip connected by USB for reading a specific pin state, for example:

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

Solution

As no one answered, I asked also in other forums and will post the response here for the knoledge of the SO community.

At first, the answer is no. However...

From avrfreaks, thanks to @glitch:

The cdc code is only half the AVR equation. All the cdc code does is emulate a cdc device, so your pc code can interact with the device as if it was connected via a serial port. You now need to write your own code,on the AVR, that links with the cdc code, that implements whatever protocol you want, and whatever functionality you want. The cdc code does none of this. [you also need to write the pc side. alternatively you can use a standard terminal app, if the protocol you implement is ascii based]

and thanks to @dakk64:

Here is an example of a menu driven interface, implemented as a protothread but you could just put it in your main loop.

I shall not post this entire code here due that there are 874 LOCs, but you can go there and take a look.

So it's not so simple, there is no default list (as for example, the old AT modem codes), but knowing this it's a start.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top