Translate

jueves, 11 de diciembre de 2008

La Hoja de Datos (datasheet)

Todos los PICs poseen una hoja de datos o mejor conocida como datasheet. Estas hojas de datos poseen todas las características del PIC, registros, valores máximos de corriente, valores máximos voltaje de los pines y por último los datos mecánicos del PIC para poder hacer nuestros propio footprints para las PCB's.


Sin la hoja de datos es casi imposible operar correctamente un PIC por lo que siempre se recomienda darle una leída antes de empezar cualquier programa sobre todo para saber el funcionamiento básico del PIC y su inicialización.

La configuración de los registros.

Como ya habíamos comentado los PICs poseen características en común o bien herramientas en común, como los ADC's, los timer's, las interrupciones etc. Y más importante los puertos de entrada/salida. Para poder usar todas estas características es necesario configurar sus registros correctamente, para lo cual necesitaremos la hoja de datos.

Puertos de Entrada/Salida

Lo mas común al comenzar a practicar con los PICs es usar sus puertos, ya sea como entradas o como salidas, lo cual nos permite interactuar con estos dispositivos. Para hacer correctamente de los puertos de E/S es necesario revisar la hoja de datos.

¿Porqué insistir en la configuración? Se insiste porque muchos de los PICs poseen módulos especiales, tal es el caso del ADC y los puertos que tengan esta función usualmente cuando se reinicia el PIC están en modo analógico, por lo que si se pretende usar como entra o salida digital en el programa, éste presentara fallas o no responderá correctamente.

También es importante configurar los registros de los puertos para usarlos como entrada o como salida. Los PICs dependiendo de su tamaño poseen mas o menos puertos, pero los mas comunes son: PuertoA, PuertoB, PuertoC, PuertoD y PuertoD. Cada uno de estos puertos lleva dos registros de configuración PORTx y TRISx. Donde la x corresponde al puerto en uso.

TRISx es el registro de PIC donde se asignan en que modo operaran los bits o pines del puerto, ya sea como entrada o como salida. Basta con aprenderse esta regla sintáctica para saber cuando un bit/pin es entra o es salida.

  1 = input o entrada

  0 = output o salida


Como podrán apreciar si lo queremos como entrada basta con tomar la i de input como un 1 y la o de output como un 0, así pues si queremos que el PORTB de un PIC18F4525 sea dos pines de entrada y los demás de salida basta con asignar lo siguiente:

  TRISB=3; donde 3 en decimal corresponde al numero binario oooooo11

Entonces RB0 y RB1 serán entradas y todos los demás bits serán salidas. En este caso el PORTB es de 8bits por lo que posee 8 pines de E/S de RB0-RB7; es importante saber de cuantos bits/pines es un puerto para no causar conflictos con los registros.

TRISB controla la dirección de los pines, ¿Y PORTB? El registro PORTB controla el estado de los pines de salida, es decir en estado bajo o en estado alto a lo que equivale un 1 o un 0. Estos estados lógicos proveen al bit/pin de un 1 lógico lo que es ~5V nominalmente y un 0 lógico lo que es >2V nominalmente seria 0V. Así pues podríamos poner desde la inicialización del PIC es estado de un bit/pin, por ejemplo, Dotemos de un 1 lógico al bit 5 del PORTB:

  PORTB=32; donde 32 en decimal corresponde al numero binario 00100000

Cabe mencionar que los registros de 8 bits llevan sus bits de 0-7 por lo que el bit5 de PORTB es RB5 y en el ejemplo anterior seria el bit6 de derecha a izquierda.

Como se ha comentado algunos puertos poseen funciones especiales, tal es el caso del puerto B del PIC18F4525 del ejemplo anterior algunos pines del puerto B tienen la capacidad de ser convertidores analógico-digital, por lo que se necesita configurar registros extras para que según el caso opere de forma digital totalmente.

Para ello haremos uso de la hoja de datos nuevamente, buscando los registros que involucran el convertidor analógico digital. Para nuestro PIC los registros involucrados son: ADCON0, ADCON1 y ADCON2. Acontinuación muestro los registros tal cual se encuentran en la hoja de datos.

Como pueden ver el registro ADCON0 sirve para configurar el canal que hará la conversión analógica bits CHS0:CHS3, además de llevar el estado de la conversión si esta en progreso o no hay conversión con GO/DONE y por ultimo activar o desactivar el conversos con ADON. Para efectos del ejemplo anterior podemos configurarlo de la siguiente manera:

  ADCON0=0; donde 0 decimal equivale a 00000000

ADCON0 es de 8bits aunque 2 de ellos no son usados son leídos como cero.


El registro ADCON1 como se ve en la imagen anterior sirve para configurar los canales analógicos y canales digitales con PCFG0:PCFG3 y la configuración de las VREFS con VCFG0:VCFG1. Para los fines del ejemplo digital lo configuraríamos así:

  ADCON1=15; donde 15 decimal corresponde a 00001111 y en la tabla todos los pines son Digitales.


Por último esta el registro ADCON2, donde configuramos la resolución del conversor ya sea de 10bits o de 8bits con ADFM, el tiempo de adquisición entre lecturas con ACQT0:ACQT2 y el conversor de de clock con ADCS0:ADCS2. Para este ejemplo:

  ADCON2=0; donde 0 decimal corresponde a 00000000 y seria de 8 bits, 0TAD y FOSC/2

Todos los registros que no son configurados toman el valor default tras un inicio o un reset.

En general los registros de los PICs se configuran igual que los ejemplos anteriores, así que es necesario revisar la hoja de datos para operar correctamente.

La palabra de configuración.

La(s) palabra(s) de configuración, sirve para decidir que tipo de operación llevaran los fuses, estos son aquellos que podemos configurar mediante el código de programación o desde el software del programador. Podemos decir si operar en modo XT, HS, INTRC, activar el LVP, WDT entre muchas otras cosas. Se divide en dos CONFIGH y CONFIGL


Posteriormente hablaremos más de esta palabra de configuración.

El Pinout.

Y lo más importante que nos puede dar una hoja de datos es: el pinout,  o la imagen de la corresponde de cada pin del PIN con su nombre y caracteristicas, por ejemplo el PINOUT del PIC18F4525:

Como podemos apreciar se describen perfectamente los nombres de los puertos y sus características especiales de cada uno. Es importante revisar siempre la hoja de datos.

1 comentario:

  1. Hola, que buena informacion, me gustaria que postearas la configuracion de los fuses del pic18f4525 para un uso de todos los puestos como entrada o salida de tados, es decir, para desactivar todos las demas funciones, y con clock externo de clristal de 20Mhz

    ResponderEliminar