Tutoriales

PIC + USB para principiantes - Página 1

Creando la aplicación bajo Visual C# 2008

- Crear un nuevo proyecto
- Seleccionar Windows Forms Application
- Guardar el proyecto nuevo
- Copiar los archivos mpusbapi.dll y PicUSBAPI.cs a la carpeta del proyecto
- En el explorador de soluciones dar click derecho y elegir Agregar, Elemento Existente
- Agregar los archivos mpusbapi.dll y PicUSBAPI.cs
- En el código de la ventana principal (Form1.cs) copiar el nombre que viene en namespace
- Abrir el archivo PicUSBAPI.cs y en namespace reemplazar el nombre con el copiado. Esto vincula los archivos .cs en el mismo proyecto.
- El código de la librería mpusbapi.dll contiene apuntadores que a c# no le gusta compilar. Permitir la compilación del código unsafe, ir a Proyecto, Propiedades, Generar, Permitir código no seguro. Debes activar esta opción en modo Debug y Release si piensas compilar el programa para que corra sin tener Visual C# instalado (modo release).

Para enviar datos al PIC deberás usar el método:
private void SendPacket(byte* SendData, DWORD SendLength)

Para recibir datos desde el PIC deberá usarse el método:
private void ReceivePacket(byte* ReceiveData, DWORD *ReceiveLength)

En el archivo PicUSBAPI.cs el compañero J1M de Hobbypic implementó ejemplos de datos que se envían y reciben hacia el PIC. Dales una checada y verás que es fácil implementar tus propios métodos. Es recomendable que los implementes en la misma clase PicUSBAPI.

Cuando el PIC es conectado a la PC se reporta con Windows con varios datos, pero sobresalen dos, el Vendor ID y el Product ID. El VID y PID de nuestro PIC contendrá los datos 04D8h y 0011h respectivamente, según se ve en el archivo PicUSBAPI.cs. Es recomendable no cambiar el Vendor ID ya que Microchip permite el uso de este ID de forma gratuita. Si se utiliza un VID diferente, hay que registrarlo en www.usb.org y pedir permiso para emplearlo. El PID puede ser modificado sin problema alguno. Ambas modificaciones han de hacerse en la variable vid_pid_norm del archivo.

Posteriormente en el código de la ventana principal (Form1.cs) hay que instanciar un objeto de la clase PicUSBAPI para poder hacer los envíos y recepciones hacia el PIC. La instancia se hace de forma sencilla:

//Instancia un objeto de la clase PicUSBAPI
PicUSBAPI usbapi = new PicUSBAPI();


Para llamar métodos de la clase PicUSBAPI solo los aplicas sobre el objeto creado:

//Ordena al PIC que ponga su puerto B a 0x00
usbapi.Puerto(0x00);