Вы находитесь на странице: 1из 7

IES Los Viveros Dpto. Electrnica.

Luis Modesto Gonzlez Lucas

PROYECTO: INTERFACE USB CON PIC 18F4550


Especificaciones.
Dispone de 8 entradas digitales, 8 salidas digitales, 8 entradas analgicas(entre 0 y 5 voltios 10
bits ) y 2 salidas analgicas(entre 0 y 5 voltios).

Attributos

Attribute Type

Attribute Value

Family Name

PIC18

Device Core

PIC

Data Bus Width

8Bit

Function

Microcontroller

RAM Size

2kB

Program Memory Size

32kB

Program Memory Type

Flash

Interface Type

I2C/SPI/USART/USB

Instruction Set Architecture

RISC

Maximum Speed

48MHz

Supplier Package

PDIP

Pin Count

40

Product Height

3.81mm

Product Length

52.26mm

Product Width

13.84mm

Minimum Operating Temperature

-40C

Mounting

Through Hole

Number of Programmable I/Os

35

Number of Timers

On-Chip ADC

13-chx10-bit

Maximum Clock Rate

48MHz

Maximum Expanded Memory Size

2MB

Maximum Operating Temperature

85C

Typical Operating Supply Voltage

5V

Minimum Operating Supply Voltage

4.2V

SPI

I2C

IES Los Viveros

Sevilla

Dpto. Electrnica.

IES Los Viveros Dpto. Electrnica.

Luis Modesto Gonzlez Lucas

Maximum Operating Supply Voltage

5.5V

USB

USART

Esquema de partida

Ejemplo de PCB
Es una idea para el diseo, la placa no corresponde exactamente al esquema mostrado.

IES Los Viveros

Sevilla

Dpto. Electrnica.

IES Los Viveros Dpto. Electrnica.

Luis Modesto Gonzlez Lucas

INSTALACIN DEL DRIVER


El primer paso ser instalar el driver que proporciona el fabricante, Microchip. El dispositivo se
instala como un elemento USB, y no como un puerto serie.

FIRMWARE EN EL PIC

Tambin debemos cargar el PIC con el firmware adecuado al programa que usaremos en C++.
En nuestro caso, usaremos la versin modificada por Jos Luis Ruprez, y que se encuentra en
la pgina de la asignatura.

IES Los Viveros

Sevilla

Dpto. Electrnica.

IES Los Viveros Dpto. Electrnica.

Luis Modesto Gonzlez Lucas

La carga se realizar con un programador externo, y el software de programacin WINPIC800

CODIGO EN VISUAL C++


Microchip facilita una librera para el acceso al microcontrolador, la librera viene en una dll, de
nombre mpusbapi.dll. Al igual que en otros caso, ser necesario un fichero de cabeceras, que
contenga la declaracin de las funciones, mpusbapi.h, y adems tambin usaremos una API
desarrollada por el autor del firmware para simplificar el acceso al micro.
La API se encarga de agrupar las funciones necesarias y resumirlas. Por lo tanto, en el
directorio principal, tendremos que colocar los ficheros:

mpusbapi.h
mpusbapi.h
TAD_API.cpp

FUNCIONES EN LA API

IES Los Viveros

Sevilla

Dpto. Electrnica.

IES Los Viveros Dpto. Electrnica.

Luis Modesto Gonzlez Lucas

VOID AbrirTAD(VOID): Abre el dispositivo USB y muestra un mensaje de error


si no est conectado.

VOID CerrarTAD(VOID): Cierra el dispositivo USB

VOID SalidasDigitalesByteTAD(DWORD valor): Enva un valor a las 8 salidas


digitales

VOID SalidasDigitalesBitTAD(DWORD numero_bit,DWORD valor_bit): Activa un


bit de una salida digital.

DWORD EntradasDigitalesByteTAD(VOID) : Obtiene el valor de las entradas


digitales

DWORD EntradasDigitalesBitTAD(DWORD numero_bit) : Obtiene el valor de un


bit de la entrada digital.

VOID SalidasAnalogicasTAD(DWORD numero_salida,DWORD valor_salida). En va


un valor a la salida analgica. Hay 8 salidas y los valores varan entre 0
y 1023.

DWORD EntradasAnalogicasTAD(DWORD numero_entrada)


instantneo de la entrada analgica (0-1023):

Obtiene

el

valor

EVENTOS ASOCIADOS.
En este caso, la lectura de la tarjeta la haremos mediante un timer, y cada vez que dispare un
tic, procederemos a la lectura/escritura de los puertos que nos interesen. Por qjmplo,
podemos poner un tiempo de 100mS, con lo que tomaramos 10 muestras por segundo.

OPERATIVA
La operativa ser:
-

Abrir dispositivo
Realizar operaciones de lectura/escritura
Cerrar dispositivo

CODIGO
Tendremos que introducir las llamadas a los ficheros incluidos en el fichero principal del
proyecto, el que tiene extensin cpp y la funcin main.
Incluimos las llamadas:
#include <Windows.h>
#include "mpusbapi.h"
IES Los Viveros

Sevilla

Dpto. Electrnica.

IES Los Viveros Dpto. Electrnica.

Luis Modesto Gonzlez Lucas

#include "TAD_API.cpp"

Nos quedar:

En el formulario principal, incluimos la apertura del puerto, en el constructor, y el cierre, en el


destructor:
//TODO: Add the constructor code here
//
AbrirTAD();
CerrarTAD();

Nos quedar:

IES Los Viveros

Sevilla

Dpto. Electrnica.

IES Los Viveros Dpto. Electrnica.

Luis Modesto Gonzlez Lucas

En el evento principal, simplemente, leeremos el valor del puerto deseado y lo mostraremos


private:
: System::Void button1_Click(System::Object^
System::EventArgs^ e) {

sender,

+EntradasAnalogicasTAD(1);
label1->Text=" "+EntradasAnalogicasTAD(1);
}

El autor del firmware, nos facilita una aplicacin para comprobar el funcionamiento

IES Los Viveros

Sevilla

Dpto. Electrnica.

Вам также может понравиться