Autor Tema: Comunicación serie sincrona con EUSART en C18  (Leído 3393 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado rage78

  • PIC10
  • *
  • Mensajes: 9
Comunicación serie sincrona con EUSART en C18
« en: 20 de Marzo de 2010, 07:18:24 »
Hola chic@s,

Estoy mirando como implementar la comunicación serie entre un pic18f6622 y un chip de RFID llamado HTRC11001T del fabricante NXP (al final expongo un resumen de la información)


Gracias a un compañero del foro, pude determinar que para comunicar con el chip solo puedo emplear la USART del PIC (en mi caso se trata de una EUSART).

Os quería preguntar si para trabajar con la EUSART, puedo hacer uso de las librerias de C18 llamadas "USART FUNCTIONS" o estas son poco prácticas.
Tengo que advertir que soy bastante novato en el tema de la programación de PICs. Tengo nociones de C y entiendo bastante bien el funcionamiento interno del PIC, pero claro, lo voy haciendo sobre la marcha. Ahora estoy encallado con el tema de la EUSART, y me gustaría saber la forma más óptima de configurarla y de trabajar con ella en modo síncrono. El cristal que usaré es de 16 MHz.

Se me olvidaba comentar, que mi intención es implementar la comunicación con otras placas a través de un bus RS-485, lo cual espero no interfiera con el uso de la EUSART.

La información que os comentaba del chip RFID resumida es la siguiente:
The communication between the HTRC110 and the microcontroller is done via a three wire digital
interface. The interface is operated by the following signals:
 
SCLK      Clock
DIN        Data Input
DOUT  Data Output
 
SCLK and DIN are realized as Schmitt-Trigger inputs. DOUT is an open drain output with internal
pullup resistor.
 
Every communication between HTRC110 and microcontroller begins with an initialization of the
serial interface. The interface initialization condition is a low-to-high transition of the signal DIN
while SCLK is high.

« Última modificación: 20 de Marzo de 2010, 09:11:16 por rage78 »

Desconectado MarkKnopfler81

  • PIC12
  • **
  • Mensajes: 64
    • PICs, Electrónica y Robótica
Re: Comunicación serie sincrona con EUSART en C18
« Respuesta #1 en: 20 de Marzo de 2010, 09:11:13 »
Hola rage78:
En principio no tendrías problema porque ese PIC tienen 2 EUSART, por otro lado vi el datasheet del HTRC11001T y en ningun lado habla del USART por lo tanto puedes usar 3 pines cualquieras y generar el clock para enviar/recibir los datos (lo puedes hacer por desbordamiento de un timer).

Por lo menos eso es lo que yo entendí.

 :lol:

saludos.

Desconectado rage78

  • PIC10
  • *
  • Mensajes: 9
Re: Comunicación serie sincrona con EUSART en C18
« Respuesta #2 en: 20 de Marzo de 2010, 10:22:09 »
Hola rage78:
En principio no tendrías problema porque ese PIC tienen 2 EUSART, por otro lado vi el datasheet del HTRC11001T y en ningun lado habla del USART por lo tanto puedes usar 3 pines cualquieras y generar el clock para enviar/recibir los datos (lo puedes hacer por desbordamiento de un timer).

Por lo menos eso es lo que yo entendí.

 :lol:

saludos.

Hola MarkKnoplfer81

A ver si me aclaro. El EUSART solo puedo usarlo si el chip en cuestión lo soporta, ¿no?
Es verdad que el HTRC110 no trabaja con una interficie estandar. Por ello, según lo que comentas tendría 3 líneas:
1 entrada digital: DIN
1 salida digital: DOUT
1 salida digital: SCLK

He mirado en los 2 datasheets de que dispongo del HTRC110 y no he encontrado la frecuencia o rango de frecuencias recomendadas para trabajar con él.
Los datasheets a los cuales me refiero son:
- AN 98080 - ReadWrite Devices based on the HITAG ReadWrite IC HTRC110APPLICATION NOTE Read/Write Devices based on the HITAG Read/Write IC HTRC110 AN 98080
- XIP HTRC11001T (Famila Hitag - 2001).pdfHTRC11001T HITAG reader chip

La verdad es que estos de Phillips/NXP se han complicado la vida al usar una interficie no estandard. Y ahora no veas, los problemones que tengo para avanzar.

Saludos!

Desconectado MarkKnopfler81

  • PIC12
  • **
  • Mensajes: 64
    • PICs, Electrónica y Robótica
Re: Comunicación serie sincrona con EUSART en C18
« Respuesta #3 en: 20 de Marzo de 2010, 10:41:17 »
Mira, ahora no puedo buscar mas data pero mirate esta listita y me cuentas:

http://www.datasheetarchive.com/HTRC110-datasheet.html

En el tercero creo que hay algo sobre los tiempos
HTRC110     Philips Semiconductors / NXP Semiconductors     Read/Write Devices based on the HITAG Read/Write IC HTRC110

saludos.

Desconectado rage78

  • PIC10
  • *
  • Mensajes: 9
Re: Comunicación serie sincrona con EUSART en C18
« Respuesta #4 en: 20 de Marzo de 2010, 14:39:39 »
Mira, ahora no puedo buscar mas data pero mirate esta listita y me cuentas:

http://www.datasheetarchive.com/HTRC110-datasheet.html

En el tercero creo que hay algo sobre los tiempos
HTRC110     Philips Semiconductors / NXP Semiconductors     Read/Write Devices based on the HITAG Read/Write IC HTRC110

saludos.

En cuanto a tiempos, solo he visto las frecuencias con que puede trabajar el HTRC110, pero esta en principio la saca de un cristal externo y se usa para generar la frecuencia de 125 kHz para la portadora.  A parte de esto, no he visto ningún dato sobre frecuencias que tenga que ver con la comunicación entre microcontrolador y HTRC110. Lo único a remarcar, la tabla que hace referencia al tiempo de set-up i hold time (apartado serial interface). Pero creo que esto no me sirve para deducir nada respecto a la frecuencia.

Por todo esto, deduzco que la frecuencia que genere con el timer es arbitraria, ¿no?

Por otro lado, observé en la nota técnica AN98080, que se producen una serie de retrasos cuando se usa el filtro de glitches. Como en mi caso voy a poner el chip HTRC cerca del PIC, no necesito usar tal filtro y por tanto, puedo trabajar a la màxima frecuencia sin retraso alguno.

Os explico como creo que se tiene que hacer (a ver si voy bien encaminado).
HTRC        ->            PIC
SCLK            ->            Salida del oscilador del timer1
DOUT            ->            Entrada digital
DIN               ->            Salida digital         
En cada una de las 3 líneas, pondría una resistencia pull-up para evitar problemas de ruído.

Gracias por la ayuda!
« Última modificación: 20 de Marzo de 2010, 15:21:40 por rage78 »


 

anything