Skip to content

Este es un ejemplo de uso del módulo RTCC más una consola serial para acceder y actualizar la fecha.

Notifications You must be signed in to change notification settings

rescurib/pic24_rtcc_uart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Módulo RTCC y consola serial en PIC24

Este es un ejemplo utilizaremos el microcontrolador PIC24FJ32GB002 y el compilador XC16. Las páginas referenciadas en el código son de la datasheet del GB002. Usaremos la librería de consola serial de Chan de la que hablado en esta entrada en mi blog. Para escribir la librería para utilizar el módulo RTCC me basé en los códigos de ejempo que se pueden encontrar en http://www.microchip.com/codeexamples . Para utilizar el módulo RTCC es necesario tener un cristal de 32.768 kHz como oscilador secundario. En este programa he agregado una interrupción de un segundo con SOSC para verificar el funcionamiento del oscilador secundario (que he descrito en esta entrada, a las interrupciones por temporizador las trato en el repo en lo que llevo hecho de mi curso de PIC24). Es importante tener los capacitores correctos para el SOSC (entre 5 y 15 pF):

alt text

Para la documentación del módulo se hará referencia al documento DS39696B que la referencia general del módulo para la familia PIC24F. La parte que hace falta estudiar primero es el metodo de lectura escritura del registro RTCVAL en la página 15 ya que no es directo como en la mayoria de los SFR's sino que requiere del campo RTCPTR del registro RCFGCAL (pag. 4) para establecer puntero de inicio hacia los campos de valor (día, mes, año, etc). Este programa no implementa calibración (auto-ajustes contra los errores de pulsos de reloj), se debe consultar página 16.

Habilitar SOSC

Para la famila GB:

OSCCONbits.SOSCEN = 1; // SOSC habilitado

En el caso de la familia GA la escritura a OSCCON está protegida por lo que se debe usar:

__builtin_write_OSCCONL(OSCCON | 0x02); // SOSC habilitado

Estructura de tiempo

La estructura que almacena la infromación del tiempo tiene la siguiente forma:

typedef struct tm      // Estructura de tiempo
{
   unsigned char sec;
   unsigned char min;
   unsigned char hr;
   unsigned char wkd;
   unsigned char day;
   unsigned char mth;
   unsigned char yr; 
} TMS;

IMPORTANTE: Las funciones de rtcc.h llenan la estructura con valores en formato BCD. Para realizar conversiones se tienen los iguientes macros:

#define mRTCCDec2Bin(Dec) (10*(Dec>>4)+(Dec&0x0f))
#define mRTCCBin2Dec(Bin) (((Bin/10)<<4)|(Bin%10))

Aislamiento

Si están utilizando baterías para alimentar al PIC o van a estar realizando depuración es una buena práctica utilizar opto-acopladores. Esto también permite utilizar módulos de conversión USB-Serial que no tengan salida de 3.3v:

alt text

PuTTY en Debian( y derivados)

$ sudo apt install putty

Después de instalar:

$ sudo adduser <usuario> dialout

Buscamos puertos seriales disponibles con:

$ ls /dev/tty*

alt text

About

Este es un ejemplo de uso del módulo RTCC más una consola serial para acceder y actualizar la fecha.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published