TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: ceci_lamorocha en 09 de Septiembre de 2015, 13:49:15

Título: tarjeta para transporte publico
Publicado por: ceci_lamorocha en 09 de Septiembre de 2015, 13:49:15
hola que tal !
queria preguntarles si las tarjetas que se usan en el transporte publico ( las que se utilizan para abonar el pasaje ) tiene un microcontrolador adentro ? o como hacen para cargar un importe de dinero y descontarlo correctamente ? ademas es todo inalambrico ! como se hace eso ? estuve buscando informacion pero no encontre nada debe ser algo medio secreto de las empresas que fabrican estas tarjetas ? gracias !
Título: Re: tarjeta para transporte publico
Publicado por: Diego E. en 09 de Septiembre de 2015, 14:04:50
Hola, esas tarjetas son del tipo RFID pasivas, internamente tiene un espirar que le sirve de antena y a la vez de generador de energía suficiente para alimentar un pequeño chip que permite tener acceso a su memoria.

Contrariamente a lo que piensas hay mucha información en la web para aprender a manejarlas, lo que sucede es que cada empresa debe encriptar muy bien sus códigos para evitar adulteraciones.

Saludos.
Título: Re: tarjeta para transporte publico
Publicado por: Chaly29 en 09 de Septiembre de 2015, 14:10:19
Hola ceci_lamorocha, comunicase con la tarjeta para ponerle más crédito puede ser visto como ilegal, por lo tanto el foro no se responsabiliza por las acciones que hagas con tales tarjetas.

Todo daño o perjuicio que ocasiones con tales tarjetas estará bajo tu responsabilidad.

Un saludo.

Atte. CARLOS.

Título: Re: tarjeta para transporte publico
Publicado por: RICHI777 en 09 de Septiembre de 2015, 14:48:51
Hola ceci_lamorocha, comunicase con la tarjeta para ponerle más crédito puede ser visto como ilegal, por lo tanto el foro no se responsabiliza por las acciones que hagas con tales tarjetas.

Todo daño o perjuicio que ocasiones con tales tarjetas estará bajo tu responsabilidad.

Un saludo.

Atte. CARLOS.



+1
Título: Re: tarjeta para transporte publico
Publicado por: ceci_lamorocha en 09 de Septiembre de 2015, 15:35:12
jajaaj no es para cargarle credito a las tarjetas !!   :D

bueno voy a buscar sobre RFID pasivas a ver si asi encuentro informacion gracias !
Título: Re: tarjeta para transporte publico
Publicado por: Chaly29 en 09 de Septiembre de 2015, 16:14:27
Hola ceci_lamorocha, no es nada personal, pero el foro debe prevenirlo, no todos tienen buenas intensiones. Recuerda que estamos en Argentina.

Un saludo.

Atte. CARLOS.

Título: Re: tarjeta para transporte publico
Publicado por: elreypic2 en 09 de Septiembre de 2015, 16:46:47
Que tal ceci_lamorocha,

Existen varias tecnologias para el RFID, que van desde la baja frecuencia (125KHz y 132 KHz), las de alta frecuencia (13.56 MHz) y las de ultra alta frecuencia de los 900MHz.
Regularmente lo que se usa para ese tipo de aplicaciones es la de alta frecuencia 13.56 MHz, que pueden ser del tipo ISO14443 tipo A (conocidas como MIFARE) y las de tipo B (estas menos usadas pero con mejores caracteristicas de seguridad).
Existen muchos lectores en el mercado, alguno muy, pero muy baratos y muy simples de usar.

http://playground.arduino.cc/Learning/MFRC522

Y este es el lector:
http://www.electrodragon.com/product/mifare-rc522-rfid-card-readerdetector-ic-card/

Una nota muy interesante.

Las hay de diferentes capacidades de memoria para almacenar los datos, desde 512 bits hasta 8kbits (si mal no recuerdo).

No quiero decir con esto que con este lector podras leer el contenido de las tarjetas en particular para el autobus en tu ciudad, ya que no conoces el tipo de encruptado que esta usando y ni es password para leer la tarjeta.
Esta informacion para que tu puedas crear tu propia aplicacion y que conozcas lo que hay diponible.

Ahora que si lo que quieres es hacer un control de acceso, lo mas sencillo es usar tarjetas de baja frecuencia (125KHz) ya que es super sencillo de utilizar y muy barato.

Saludos,

elreypic.
Título: Re: tarjeta para transporte publico
Publicado por: ceci_lamorocha en 09 de Septiembre de 2015, 18:27:36
gracias por la info ! estuve leyendo un poco mas sobre el tema y entraba a preguntarles con que frecuencia trabajaban las tarjetas del autobus pero te me adelantaste !!  :mrgreen:

voy a seguir leyendo un poco mas y ver si hay algo simple que pueda hacer con un PIC como para arrancar y probar algo   :mrgreen:
Título: Re: tarjeta para transporte publico
Publicado por: elreypic2 en 09 de Septiembre de 2015, 18:37:27
Yo te recomiendo comenzar con tarjetas de baja frecuencia (125 KHz). Los lectores tienen interface serial y son super simples de utilizar ademas de que son muy baratos. Y pues si quieres usar un PIC, esto seria algo rapido y sencillo.
Este seria el lector:
http://www.robotshop.com/en/seeedstudio-125khz-rfid-module-uart.html

y estas las tarjetas y/o tags:
http://www.robotshop.com/en/seeedstudio-125khz-rfid-tags.html

Y puedes usar cualquier PIC para realizar un ejemplo sencillo.

Saludos
Elreypic.
Título: Re: tarjeta para transporte publico
Publicado por: Diego E. en 09 de Septiembre de 2015, 23:17:10
Yo he utilizado este lector controlado con un PIC y me funciona perfecto.

http://www.stronglink-rfid.com/download/SL025B-User-Manual.pdf (http://www.stronglink-rfid.com/download/SL025B-User-Manual.pdf)

Saludos.
Título: Re: tarjeta para transporte publico
Publicado por: AG1 en 10 de Septiembre de 2015, 09:55:53
Hola:
    Las que he tenido ocasión de probar son tarjetas Miifare de 13.56Mhz. Por supuesto, el acceso a los datos de las mismas esta encriptado por lo que lo único que puedes obtener de ellas es el UID.
Salu2

hola que tal !
queria preguntarles si las tarjetas que se usan en el transporte publico ( las que se utilizan para abonar el pasaje ) tiene un microcontrolador adentro ? o como hacen para cargar un importe de dinero y descontarlo correctamente ? ademas es todo inalambrico ! como se hace eso ? estuve buscando informacion pero no encontre nada debe ser algo medio secreto de las empresas que fabrican estas tarjetas ? gracias !
Título: Re: tarjeta para transporte publico
Publicado por: gera en 10 de Septiembre de 2015, 10:52:04
 :D

Título: Re: tarjeta para transporte publico
Publicado por: KILLERJC en 10 de Septiembre de 2015, 11:20:36
Tengo el mismo modulo, al menos creo que es ese. Nomas que nunca lo probe, pero lo compre para probarlo algun dia
Título: Re: tarjeta para transporte publico
Publicado por: ceci_lamorocha en 10 de Septiembre de 2015, 16:56:44
gracias por la info!! la verdad que esta muy interesante este tema !

AG1: disculpame la ignorancia pero que es el UID ?  :oops:

KILLERJC: aca en argentina se pueden conseguir estas tarjetas y el lector ? para intentar algun programa en pic  :mrgreen:
Título: Re: tarjeta para transporte publico
Publicado por: Carl47D en 10 de Septiembre de 2015, 17:38:03
que tal, recien encontré dos libros de RFID, el de getting started esta enfocado para arduino pero puede sacar info de ahi, el otro no lo he podido leer.

Getting Started (http://it-ebooks.org/book/oreilly/getting_started_with_rfid)

RFID Handbook (http://it-ebooks.org/book/wiley/rfid_handbook_3rd_edition)

UID es el ID del tag?
Título: Re: tarjeta para transporte publico
Publicado por: AG1 en 10 de Septiembre de 2015, 18:55:34
UID (Unique Identification Number)
Número de identificación único: Cada tarjeta Mifare dispone de un número de identificación único(en principio irrepetible).

Salu2.
Título: Re: tarjeta para transporte publico
Publicado por: KILLERJC en 11 de Septiembre de 2015, 00:23:41
KILLERJC: aca en argentina se pueden conseguir estas tarjetas y el lector ? para intentar algun programa en pic  :mrgreen:

Los compre por internet a los chinos. Es la unica forma.
Título: Re: tarjeta para transporte publico
Publicado por: ceci_lamorocha en 11 de Septiembre de 2015, 13:59:18
hola! aca encontre un vendedor en mercadolibre, como no entiendo mucho no se si esto me puede servir para realizar alguna prueba o si me aconsejan otra cosa  ?

http://articulo.mercadolibre.com.ar/MLA-570252060-rfid-rdm-6300-lector-de-tarjetas-tags-tokens-125khz-ptec-_JM#questionText


Título: Re: tarjeta para transporte publico
Publicado por: elreypic2 en 11 de Septiembre de 2015, 14:12:36
Que tal ceci_lamorocha,

Lo primero que tienes que decidir es la frecuencia del tag o tarjta que quieres usar.
Si vas a usar tags o tarjetas de baja frecuencia 125KHz, entonces ese lector del mercado libre te sirve, pero tendras tambien que comprar algunos tags o tarjetas para poder realizar las pruebas. Ese es el lector que te sugerí inicialmente.
Si lo que quieres es leer tarjetas de alta frecuencia (13.56MHz), entonces ese lector no te sirve tiene que buscar el adecuado. Que tambien va a depender de cual ISO vas a usar si es ISO14443A (MIFARE) o ISO15693 que son tags o tarjetas fabricados por Texas Instruments.

Saludos.

Elreypic.
Título: Re: tarjeta para transporte publico
Publicado por: AG1 en 11 de Septiembre de 2015, 15:46:25
Yo elegiría este otro que sirve para las tarjetas Mifare(ISO14443A 13.56Mhz), incluye 2 tarjetas(targeta+keyfob) y es más barato:
http://articulo.mercadolibre.com.ar/MLA-575167135-kit-rfid-kits-3-partes-mfrc-522-rc522-rfid-rf-arduino-pic-_JM (http://articulo.mercadolibre.com.ar/MLA-575167135-kit-rfid-kits-3-partes-mfrc-522-rc522-rfid-rf-arduino-pic-_JM)


salu2.


hola! aca encontre un vendedor en mercadolibre, como no entiendo mucho no se si esto me puede servir para realizar alguna prueba o si me aconsejan otra cosa  ?

http://articulo.mercadolibre.com.ar/MLA-570252060-rfid-rdm-6300-lector-de-tarjetas-tags-tokens-125khz-ptec-_JM#questionText



Título: Re: tarjeta para transporte publico
Publicado por: ceci_lamorocha en 11 de Septiembre de 2015, 17:27:17
barbaro ! si ese parece mejor, segun lo que entendi viene una tarjeta, un llavero ( será lo mismo que la tarjeta ? ) y una lectora (la placa)

se puede escribir y leer en la tarjeta ?

tambien vi que se usa con 3.3Volt pero yo lo quiero usar en un PIC y el pic se usa con 5Volt , tengo que bajar la tension ? estuve viendo que hay un componente mcp1702 que es un regulador para 3.3V, o hay alguno mas comun que usen mas habitualmente ?

no conozco de arduino pero arduino se usa con 3.3Volt ? porque casi todos los vendedores de ese kit le ponen arduino

bueno en definitiva voy a comprar uno de esos kit y voy a tratar de que funcione con pic, no prometo que lo pueda hacer  :mrgreen: pero cuando tenga algo lo posteo por aca 
Título: Re: tarjeta para transporte publico
Publicado por: AG1 en 11 de Septiembre de 2015, 20:06:22
Será lo mismo que la tarjeta ? Es lo mismo en formato llavero.

se puede escribir y leer en la tarjeta ? Si.

tambien vi que se usa con 3.3Volt pero yo lo quiero usar en un PIC y el pic se usa con 5Volt , tengo que bajar la tension ? Puedes utilizar un PIC que pueda funcionar a 3.3V por ejemplo 16f628A, 16F648A,..
estuve viendo que hay un componente mcp1702 que es un regulador para 3.3V, o hay alguno mas comun que usen mas habitualmente ?  Puedes utilizar también LP2950 3.3V, LM1117 3.3V, 78L33, ...

no conozco de arduino pero arduino se usa con 3.3Volt ? Puedes utilizar Arduino Pro Mini 3.3V (version Pro Mini de 3.3v)

Salu2.



barbaro ! si ese parece mejor, segun lo que entendi viene una tarjeta, un llavero ( será lo mismo que la tarjeta ? ) y una lectora (la placa)

se puede escribir y leer en la tarjeta ?

tambien vi que se usa con 3.3Volt pero yo lo quiero usar en un PIC y el pic se usa con 5Volt , tengo que bajar la tension ? estuve viendo que hay un componente mcp1702 que es un regulador para 3.3V, o hay alguno mas comun que usen mas habitualmente ?

no conozco de arduino pero arduino se usa con 3.3Volt ? porque casi todos los vendedores de ese kit le ponen arduino

bueno en definitiva voy a comprar uno de esos kit y voy a tratar de que funcione con pic, no prometo que lo pueda hacer  :mrgreen: pero cuando tenga algo lo posteo por aca 
Título: Re: tarjeta para transporte publico
Publicado por: ceci_lamorocha en 12 de Septiembre de 2015, 09:04:08
te pasaste con la respuesta AG1 gracias !  ((:-))
Título: Re: tarjeta para transporte publico
Publicado por: ceci_lamorocha en 22 de Septiembre de 2015, 09:03:05
Hola ya tengo en mis manos un modulo RFID de estos:
http://articulo.mercadolibre.com.ar/MLA-577304061-modulo-rfid-rc522-1356mhz-tarjeta-llavero-tag-arduino-_JM
y ansiosa de empezar con las pruebas !  :mrgreen:

para los que quieran sumarse quiero usar un PIC 16f886  y la programacion en CCS
ya que en SanGoogle solo hay ejemplos para Arduino y no encontre nada para Pics 16f
tal vez sea porque no se puede hacer ... ?

mi primer problema es la comunicacion estoy viendo que el modulo usa comunicacion  SPI y solo conozco Rs232 y USART !

para comenzar bien y desde el comienzo supongo que tengo que estudiar este tipo de comunicacion y luego recien intentar algo con el modulo RFID. 
tendran algun ejemplo de comunicacion SPI en PIC 16f en CCS?

Título: Re: tarjeta para transporte publico
Publicado por: elreypic2 en 22 de Septiembre de 2015, 10:56:48
Que tal ceci,

Que bueno que ya tienes el lector RFID. Si has encontrado ejemplos para arduino, y si conoces el lenguaje C, te daras cuenta que arduino es C, lo que tendrias que hacer es convertir las librerias del arduino y los jemplos a ser compatibles con el C para PIC. No se que tan complicado seria pero C es C. Jejeje.

Saludos y buena suerte.

elreypic
Título: Re: tarjeta para transporte publico
Publicado por: KILLERJC en 22 de Septiembre de 2015, 12:46:03
SPI es aun mas facil de entender que usar que RS232(UART). En CCS es igual en ves de tener un #use RS232, tenes un #use SPI, para escribir spi_write(dato), y escribir+leer spi_read(dato).
Todo esto en el manual de CCS

Podes buscar ejemplos por internet de SPI. Y para ayudarte en la configuracion, o sobre que enviar tenes el codigo de Arduino. Ahi tambien poseen algunas funciones parecidas a CCS (me refiero que se aplican de la misma forma) como por ejemplo, enviar X dato, enviar_SPI(X). Lo mas "dificil" que vas a tener que hacer es copiar el codigo del arduino y cambiarle las funciones por las de CCS.
Título: Re: tarjeta para transporte publico
Publicado por: ceci_lamorocha en 25 de Septiembre de 2015, 13:18:54
hola como andan todos !!

al fin tuve un tiempo para probar la comunicacion SPI, como se hace para adjuntarles los codigos (master y slave) y la simulacion asi pueden verla ?
sinó envienme su mail y se los paso por ahi

Al parecer el dato se transmite bien ( lo veo en el spi debugger del proteus) pero no puedo hacer que el valor transmitido se muestre en el LCD  :(, muestra siempre un cero aunque mande cualquier valor !

a lo mejor es un pequeño error que no estoy viendo y se lo queria pasar a ver si alguien le puede dar solucion, gracias !
Título: Re: tarjeta para transporte publico
Publicado por: KILLERJC en 25 de Septiembre de 2015, 13:48:08
No se pueden adjuntar archivos por que se esta trabajando en el foro.

Intenta probar verificar que lleguen, hace un programa simple , sin LCD y verifica que el dato llegue. Si la comunicacion esta bien, entonces lo unico que te queda es arreglar el tema del LCD.
(Dividilo en partes a tu programa)
Título: Re: tarjeta para transporte publico
Publicado por: ceci_lamorocha en 25 de Septiembre de 2015, 14:17:14
hola killerjc !
sin el lcd el dato llega bien (si es que estoy viendo bien el PSI debugger del proteus )  asi que el problema esta en poder mostrar el dato por el LCD

te lo envio por mail entonces !  :mrgreen:

saludos!
Título: Re: tarjeta para transporte publico
Publicado por: KILLERJC en 25 de Septiembre de 2015, 15:10:29
Si estas usando CCS yo no voy a poder hacer nada, por que soy anti CCS, y tampoco tengo Proteus instalado.
Solo te di unos consejos para que dividieras tu problema en parte pequeñas y veas que cada cosita esta funcionando como debe.
Título: Re: tarjeta para transporte publico
Publicado por: ceci_lamorocha en 28 de Septiembre de 2015, 10:41:58
porque anti ccs ??  :D

cual usas para hacer el programa y cual en lugar de Proteus ??
Título: Re: tarjeta para transporte publico
Publicado por: KILLERJC en 28 de Septiembre de 2015, 13:27:42
Los Compiladores es gusto de cada uno. Si estas feliz con CCS segui. Lo que voy a decir a continuacion no incluye a toda la poblacion claramente. Hay gente que es muy capaz, y gente que no lo es.

Yo uso XC8 por que me permite el manejo de registros que es lo que me gusta (Casi parecido al ASM). No tengo directivas que no se que hacen o agregan al micro, etc.
Puedo discutir que sea malo optimizando el codigo, PERO tambien depende mucho de la forma en que se programa, Una ves hice una comparacion entre XC8 y un codigo ASM para un calculo, y rebuscandola logre que consuma casi la misma cantidad de ciclos que el ASM incluso usando el compilador FREE y estando en C. Seguro que CCS se puede hacer tambien lo mismo. Pero todos los codigos que vi terminan agregando la definicion de cada registro.

Si quiero abstraerme del HW, creo mi propia libreria nuevamente modificando los registros a mi gusto. Y se exactamente que hacen las librerias, ejemplo el caso de un LCD, un TFT, etc. (Esto tambien lo podes hacer en CCS, pero es muy raro encontrar que ocurra cuando te dan la libreria a mano), ocurre que la diferencia esta que cuando no funciona una libreria, o se tienen que poner a ver el codigo y entenderlo, o terminan bajando librerias de internet a lo loco, hasta que una funcione. Un gran ejemplo es cuando terminan con librerias simulando un SPI por software, cuando tranquilamente podrian haber usado el SPI por HW, pero no son capaces de traducir eso al HW y poder usarlo con interrupciones por ejemplo lo cual haria mas eficiente.

Proteus lo usaba, luego lo quite de mi cabeza, cuando solo dependes del Proteus para probar tus programas y ocurre que tenes que probar algo que no da soporte Proteus ahi comienzan las dudas, problemas y terminas corriendo en circulos como pollo sin cabeza. (Al menos fue mi caso cuando todo lo mio circulaba alrededor de Proteus)
Proteus como que te da la seguridad de escribir el codigo y tirarselo a Proteus, y ver si funciona, muy distinto es cuando tenes que hacer el codigo pensando que todo tiene que funcionar. Se reducen muchos "bug" (obviamente hay bugs) aunque lo hace un poco mas dificil luego de resolverlo el no tener ese simulador. A no ser que termines usando un debugger.
Por eso elimine el Proteus de mi PC y nunca mas lo instale. Preferia grabar el micro con un codigo que me encienda un par de leds para indicarme donde quedo etc. o si tiene UART con la PC aun mejor ya que envias los datos a la PC y podes debuggearlo con la informacion enviada. Y por ultima el osciloscopio, ya que no poseo un analizador logico.

En fin esto no quiere decir que CCS sea malo, poner una linea y que te haga un UART por software no esta nada mal. o con simple 3 lineas mas un include y ya tenes un USB funcionando. Es otra ventaja del CCS.
Por eso mismo puse al principio, es gusto de cada uno.
Título: Re: tarjeta para transporte publico
Publicado por: ceci_lamorocha en 28 de Septiembre de 2015, 18:06:56
A mi me recomendaron mucho el ALTIUM me dijieron que todas las empresas,,, digamos serias... estan usando ese porque es mas profesional que cualquier otro
lo que no se es si es solo para hacer la PCB o se podra simular el circuito?  probaste el Altium ? o se conseguira un demo para ver que tal ?  :)
Título: Re: tarjeta para transporte publico
Publicado por: KILLERJC en 28 de Septiembre de 2015, 18:53:38
Lo tengo solo para las PCB, y solo se usarlo basicamente, nada serio ni complejo todavia. Pero si te sobra el Proteus para las cosas que haces, no vale la pena complicarse la vida. Ademas empresa que use Altium debe gastar mucho dinero en solo las licencias.
Título: Re: tarjeta para transporte publico
Publicado por: ceci_lamorocha en 30 de Septiembre de 2015, 16:42:05
SI, por ahora seguiré con proteus !  :mrgreen:

volviendo al tema del SPI, pude lograr la comunicacion  Master_Slave y  Slave Master  pero tiene unas cosas raras que no se porque las hace  :shock:

1) cada uno de los dos pics tiene una pantalla LCD para mostrar el valor que recibe. Primero el Master le envia un valor al Slave y luego el Slave le devuelve el mismo valor al Master.  Lo raro es que al comenzar,en el Display del Master en lugar de verse un 0 (cero) (porque supuestamente todavia el Slave no le devolvió nada)  sale un numero 105, como si el buffer del SPI tuviera ese valor cargado? habrá que limpiar el buffer al comienzo ? bueno...... probé hacerlo con:  spi_write(0x00);  pero despues todo funcionaba mal , asi que no se ....

2)otra cosa rara es que en el Debugger del SPI del Proteus se ven bien los valores 1 ,2 ,3 ...etc que entrega el master al esclavo,,, pero los valores del esclavo al master no son 1, 2, 3 .....etc!!   pero en los Displays se ven bien !!   

Creo que todavia no se pueden adjuntar los archivos y la simulacion para pasarselos pero si me mandan un mje con el mail se los envio


Título: Re: tarjeta para transporte publico
Publicado por: KILLERJC en 30 de Septiembre de 2015, 17:03:42
No entiendo CCS, lamentablemente es muy complicado para mi entender que hace la funcion spi_write() por que no tengo el codigo de spi_write(), entonces no te puedo decir que estas haciendo mal o no. Por eso mismo soy anti CCS.

Tenes que dividir tu problema. Por un lado el envio de datos. Supone que tenes que enviar 4 bytes. Y tenes que mostrar en el LCD eso.
- Entonces el SPI lo que hace es tomar esos 4 bytes guardarlos en un lugar y luego avisar con un flag o con algo diciendo que ya esta completo el dato y lo copias a otro buffer de igual tamaño. Esto por interrupciones obviamente
- En el programa principal preguntas cuando el dato esta completo, si esta completo ( es decir llegaron los 4 datos ) escribis eso en el LCD y pones en 0 el bit de dato completo.

Entonces...

La recepcion no depende del LCD para nada. lo unico que hace la recepcion es justamente recibir 4 bytes guardarlos y avisar. Si nadie lo usa entonces se terminara sobre escribiendo. SOLO y UNICAMENTE cuando reciba otros 4 bytes.

La rutina del LCD tampoco "depende" del SPI , toma el valor de un flag para saber si actualizar o no, toma el valor de una variable y lo muestra.

Si lo pensas son como 2 programas corriendo a la misma ves, uno a traves de las interrupciones y otro en el programa principal. el SPI con entradas desde el SPI hardware y salidas el flag de que se completo la transmision y el dato transmitido.
El LCD entrada, un flag indicando cuando tiene que actualizar, y un dato que no le importa de donde venga.

Si haces asi tus programas si en algun momento decidis cambiar el SPI por la UART por ejemplo, lo unico que tenes que hacer es cambiar la rutina de SPI por una de UART. respetando que al final de la rutina de UART tenga un flag y un dato como salida. Y sin necesidad de cambiar nada del programa principal (LCD).

De tal forma que si haces un programa asi por ejmeplo:
Código: [Seleccionar]
main(){
   //Configuraion aca
  while(1) {
   dato = 0x2030;   // Estos valores son fijos para prueba, pero serian asignados en el SPI, por como esta programado deberia ser igual hacer esto que si estuviera el SPI
   flag = 1;
   if( flag = 1 ) { LCD_Muestra(); }
  }
}

Podes poner cualquier valor de "dato" o "flag" y probarlo sin necesidad de que este funcionando exactamente tu SPI. de esa forma probar el LCD que funciona correctamente.

Son los unicos consejos que te puedo dar. Y espero que me entiendas lo que intente transmitir. Entonces con eso te podes centrar en algo especifico y no pensarlo como un TODO.

--------------------

Respecto al SPI, tenes que notar que cuando el maestro envia un byte, tambien recibe un byte. Es imposible que sepas por "adelantado" lo que te va a enviar el maestro para que le respondas con lo mismo, asi que si envias 2 bytes, toda la transferencia ocuparia 3 bytes.

Paso a paso enviar 0x1234 y recibir 0x1234 del esclavo.

1- Maestro envia 0x12 y descarta lo recibido, Receptor recibe 0x12 y pone en el buffer 0x12.
2- Maestro envia 0x34 y recibe 0x12 , Receptor recibe 0x34 y pone en el buffer 0x34
3- Maestro envia cualqueir cosa ( 0x00 ) y recibe 0x34 , Receptor descarta este valor y pone en el buffer lo que le guste ya que va a ser descartado.

Creo que serian los paso a hacer.
Estas haciendolo asi ?

--------------------


Citar
2)otra cosa rara es que en el Debugger del SPI del Proteus se ven bien los valores 1 ,2 ,3 ...etc que entrega el master al esclavo,,, pero los valores del esclavo al master no son 1, 2, 3 .....etc!!   pero en los Displays se ven bien !!  

O el debugger esta mal, o esta mal tu programa :)
Título: Re: tarjeta para transporte publico
Publicado por: ceci_lamorocha en 01 de Octubre de 2015, 19:00:58
Lo que pasa es que me parece que el Maestro recibe un dato ANTES de enviarle uno al esclavo  :shock: por eso decia que capaz el buffer del SPI se carga con algun valor al iniciarlo, y el Maestro lo esta leyendo (es el 105 que sale en el Diplay del Maestro), tampoco puedo insertar imagenes para que lo puedan ver  :(  espero que se solucione este problema pronto y lo adjunto


voy a darle mas vueltas al programa siguiendo esos consejos a ver si logro resolverlo




Título: Re: tarjeta para transporte publico
Publicado por: ceci_lamorocha en 02 de Octubre de 2015, 11:57:54
Bueno suponiendo que la Comunicacion SPI ya esta bien  :mrgreen: 
queria pasar a usar el modulo RC522  asi que me puse a leer y buscar informacion

encontre un blog donde un chico aporta una libreria para usar este modulo pero la verdad que como no tengo mucha idea del tema se me complica mucho entenderla
les paso el link:
http://simplesoftmx.blogspot.com.ar/2015/04/pic-16f628a-16f627a-lector-rfid-rc522.html


la libreria se puede usar para SPI ?  porque en el programa que pone de ejemplo coloca esta linea: #use rs232(baud=9600,xmit=PIN_B2,rcv=PIN_B1,bits=8) 

en lugar de #use spi(....) 
Título: Re: tarjeta para transporte publico
Publicado por: KILLERJC en 02 de Octubre de 2015, 12:16:03
rs232 es la uart, no el spi,
Título: Re: tarjeta para transporte publico
Publicado por: ceci_lamorocha en 02 de Octubre de 2015, 20:13:58
que hace el & en esta linea ?


if(MFRC522_isCard(&TagType)) //busca tarjeta 


para que el &  ?

Título: Re: tarjeta para transporte publico
Publicado por: KILLERJC en 02 de Octubre de 2015, 20:39:33
Es la direccion de donde esta alojado la variable TagType, Luego eso se accede con un puntero.

El tema de punteros es GRANDE y util tambien, pero por ahi medio difcil, podes buscar tutoriales en internet para entenderle. un ejemplo simple seria el de enviar un mensaje al LCD, donde el LCD se hace una funcion de enviarle una letra por ves, por ejemplo

Código: C
  1. const char mi_string[] = "bla bla bla bla";
  2.  
  3. void main()
  4. {
  5.     Enviar_por_LCD(mi_string);   // En un array si no se le pone el indice es lo mismo que hacer &mi_string[0] es decir la DIRECCION del primer elemento
  6. }
  7.  
  8. Enviar_por_LCD(char *ptr){
  9.   while(*ptr)    //Mientras que no sea un caracter nulo, cuando se termina el string que hay un caracter nulo sale
  10.    {
  11.       LCD_Escribir_Letra(*ptr++);  // Pongo letra por letra en el LCD, Pongo esa letra y luego avanzo en la direcion
  12.     }
  13. }

Hay muchas mas aplicaciones ademas de esta