TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Kid_Bengala en 26 de Junio de 2006, 14:30:10
-
hola
tengo un circuito el cual me gustaria mandar la informacion al PC, pero creo que no tiene una velocidad estandar para PC, asi que quiero utilizar un pic como buffer, que vaya capturarando los datos (1 linea TTL) y los envie al PC atraves de un MAX232 a una velocidad estandar como por ejemplo 9600. La verdad es que no tengo mucha idea de pic, estoy empezando y he puesto este mensaje aqui porque creo que en C me seria mas facil que en ensamblador enteder si alguien me pone algun ejemplo ¿alguien puede ayudarme?. gracias
saludos de antonio
-
hola
tengo un circuito el cual me gustaria mandar la informacion al PC, pero creo que no tiene una velocidad estandar para PC, asi que quiero utilizar un pic como buffer, que vaya capturarando los datos (1 linea TTL) y los envie al PC atraves de un MAX232 a una velocidad estandar como por ejemplo 9600. La verdad es que no tengo mucha idea de pic, estoy empezando y he puesto este mensaje aqui porque creo que en C me seria mas facil que en ensamblador enteder si alguien me pone algun ejemplo ¿alguien puede ayudarme?. gracias
saludos de antonio
¿Ejemplos de qué? ¿De usar el puerto serie en C? Si es así, te aconsejo buscar en los ejemplos para 16F876A que estan hechos para el CCS
Ahora bien, quieres hacer un buffer pero ¿de cuantos byte? y ¿cuántos bytes quieres transmitir por segundo?
-
hola
la verdad que soy muy novato en electronica y necesitaria ayuda. haber si me explico correctamente, tengo una linea que llega tx, a un pulso de unos 5 microsegundos (0 ó 1). Aunque segun especificaciones creo que puede llegar sobre los 250kb/s y los 500kb/s (2 velocidades). yo quisiera mandar estas informaciones por el puerto serie al pc para capturar el trafico pero no se si llegaria correctamente. por eso queria ir almacenando los pulsos y cuando tenga un byte mandarlos al pc ¿se podria hacer? gracias
saludos de antonio
-
hola
la verdad que soy muy novato en electronica y necesitaria ayuda. haber si me explico correctamente, tengo una linea que llega tx, a un pulso de unos 5 microsegundos (0 ó 1). Aunque segun especificaciones creo que puede llegar sobre los 250kb/s y los 500kb/s (2 velocidades). yo quisiera mandar estas informaciones por el puerto serie al pc para capturar el trafico pero no se si llegaria correctamente. por eso queria ir almacenando los pulsos y cuando tenga un byte mandarlos al pc ¿se podria hacer? gracias
saludos de antonio
Habría que analizar más en detalle eso de los tiempos.
Si esos pulsos son continuos y piensas usar solo un pic, ,no podrás ya que terminarás en algun momento llenando la memoria del mismo.
Dicha velocidad solo deja tiempo como para memorias ram estática, las cuales requieren numerosos pines para ser controladas, los cuales tal vez estén fuera del rango de lo que tengas.
Aún así, estarás en problemas ya que si la trasnmisión es continua y durante mucho tiempo, no habrá memoria que aguante.
¿Puedes especificar más la comunicación entrante? ¿En velocidad y en cantidad de datos? ¿Si los datos se reciben continuamente o si hay 'cortes' en la recepción? Si hay cortes, ¿de cuantos milisegundos o segundos estamos hablando?
Saludos
-
hola
En una placa industrial (no se que fabricante es ya que no lo pone, parece un desarrollo especifico) que lleva comunicaciones por el bus can. Yo lo que quiero hacer es una especie de logeador del trafico, vamos capturar todos los paquetes que le llegan y mandarlo al PC.
saludos de antonio
-
alguien puede echarme una manita? gracias
saludos de antonio
-
alguien puede echarme una manita? gracias
saludos de antonio
Me remito a tu post donde pusiste que 'eres muy novato en electrónica' , este proyecto es muy ambicioso para alguien que recien comienza.
El can bus tiene velocidades de 250kbps a 1Mbps.
Hacer un analizador de tráfico de eso, te significaría al menos guardar todo lo que circule por él durante varios segundos sino minutos!.
La única forma de hacer eso, es con una memoria estática (las flash son muy económicas pero lentas para cuando se las quiere grabar).
Como lo haría yo.
Antes que nada
a) Analizar muy bien cuantos 'segundos' quieres loguear lo cual te determinará el tamaño de la memoria
1) Leer de alguna forma el dato circulante por el CAN BUS
2) Guardar el dato en la memoria estática (son rápidas)
3) Cuando quieras 'sacar' la información ahí si ya lo podrás hacer por el puerto serie pero recordando que no puedes capturar más mientras haces esto ya que cuando capturas necesitas todo el potencial de tu hardware. Hacer ambas cosas al mismo tiempo no es algo imposible pero sí te aseguro que en algún momento se te llenará la memoria estática. Podrías hacer algo más optimo usando un buffer de doble puntero, pero no te la quiero complicar si estas complicado conociendo recien la arquitectura
4) Otra alternativa sería que por ejemplo si lees datos a 250Kbps, eso sería algo así como 32Kbytes por segundo. Si mal no recuerdo los puertos paralelo EPP pueden transmitir mas de 100.000 Bytes e incluso 1 o 2 MegaBytes por segundo por segundo o velocidad similar. De todas formas, tendrás que ingeniartelas del lado de la PC para hacer el handshake con el puerto para que no sea 'muy veloz' el pic vs la pc.
Saludos
-
hola
yo pensaba que con un pic se podria hacer, una especie de redireccion al puerto serie. como he visto analizadores y cosas parecidas para los coches, pense que tambien me valdria una adaptacion de eso; es mas ELM ELECTRONICS (http://www.elmelectronics.com/connect.html#ELM323) vende unos micros para esta tarea y son unos pics enmascarados ¿no se podria hacer algo similar a esto? gracias
saludos de antonio
-
:-/
-
hola
yo pensaba que con un pic se podria hacer, una especie de redireccion al puerto serie. como he visto analizadores y cosas parecidas para los coches, pense que tambien me valdria una adaptacion de eso; es mas ELM ELECTRONICS (http://www.elmelectronics.com/connect.html#ELM323) vende unos micros para esta tarea y son unos pics enmascarados ¿no se podria hacer algo similar a esto? gracias
saludos de antonio
Muchas cosas son posibles, el tema es qué tanto sabes!
Hay cosas que son solo para un grupo selecto de ingenieros y cosas que las puede hacer cualquier mortal.
En el caso puntual que tu mencionaste anteriormente hablaste de CAN BUS y ahora hablas de OBD-II
La comunicación OBD-II es muy lenta y claro que la podrías hacer con un PIC.
Si tu interes es este, es una cosa, ahora bien si quieres CAN BUS a RS232... creo que lo que te puse antes no es errado, pero bueno, pide opinión a otro tal vez te diga algo que yo desconozca.
Otra opción sería CAN BUS --> USB , ahí las velocidades nuevamente son equivalentes pero tampoco es para alguien 'novato'.
Hay muchos proyectos en internet que versan sobre USB con PC y PICs pero tampoco me parece que sean proyectos para que se convierta en tu "primer proyecto con PICs".
Saludos
-
hola
la comunicacion es can bus, pero puse esa direccion porque uno de sus integrados pone algo de bus can. La velocidad de esta placa creo haberme enterado que va sobre los 125kb/s.¿Porque deberia logear varios segundos o minutos?¿no se podria ir guardando los valores de la señal (binario) y cuando tenga 1 byte mandarlo por el puerto serie al PC y vaciar el buffer del pic? Esto no almacenaria tantos datos ¿no? muchas gracias.
saludos de antonio
-
hola
la comunicacion es can bus, pero puse esa direccion porque uno de sus integrados pone algo de bus can. La velocidad de esta placa creo haberme enterado que va sobre los 125kb/s.¿Porque deberia logear varios segundos o minutos?¿no se podria ir guardando los valores de la señal (binario) y cuando tenga 1 byte mandarlo por el puerto serie al PC y vaciar el buffer del pic? Esto no almacenaria tantos datos ¿no? muchas gracias.
saludos de antonio
Kid_Bengala te pido que releas bien mis posts.
¿Como piensas leer los datos ? Es decir como piensas 'tomar' esos datos en primera instancia?
-
hola
hoy he conseguido un osciloscopio en el trabajo y he podido comprobar la velocidad de la señal, es a 62,5kb. ¿A esta velocidad se podria hacer algo? gracias.
saludos de antonio
-
hola
hoy he conseguido un osciloscopio en el trabajo y he podido comprobar la velocidad de la señal, es a 62,5kb. ¿A esta velocidad se podria hacer algo? gracias.
saludos de antonio
Kid_Bengala
1) Siempre se puede "hacer algo" , el punto es que hay que analizar el fenómeno y con qué recursos uno cuenta (conocimientos, presupuesto, recursos, ,tiempo del que se dispone).
2) No me has respondido como piensas capturar esos famosos 62.5kb . Si piensas hacer a) una conversión análogo digital, b) colgarte del can bus oyendo , c) Midiendo anchos de pulsus digitalmente.
Si puedes leer a esa velocidad, transmitirlo por la usart sería algo muy simple ya que podrías armar o bien una comunicación a 115200bps o bien a 57600 con un pequeño buffer y de seguro habrá "momentos" en que por el bus no se transmita nada pero tu transmitirás siempre y eso te dará el tiempo suficiente para vaciar tu buffer.
-
hola
habia pensado utilizar un mcp2551 de microchip y un pic, pero la verdad es que soy muy novato y no se si podria abarcar este proyecto. muchas gracias.
saludos de antonio
-
hola
habia pensado utilizar un mcp2551 de microchip y un pic, pero la verdad es que soy muy novato y no se si podria abarcar este proyecto. muchas gracias.
saludos de antonio
Antonio, realmente tendrías que ver si en modo esclavo puedes "oir" todas las tramas de CAN BUS, no he leído tanto de can bus como para asegurarte eso.
Si lo puedes hacer, entonces podrás colgarte del bus y leer los datos con el módulo que comentas.
Los detalles los desconozco porque habría que ponerse a hacer el proyecto, cosa que no tengo tiempo de hacer.
Como premisa, fijate si ese integrado y el CAN BUS te permite estar solo "oyendo" y de esa forma ir guardando mensajes. Tal vez también tengas que ir capturando códigos de error por si hay colisiones, etc.
Como veras, no es alto tan obvio de hacer.
Además, perdona que me entrometa, pero si no sabes de can bus, como piensas analizar el protocolo?
Si un proyecto te sobra por todos lados, lo mejor y mnos traumático sería dárselo a otra persona y decir que no puedes hacerlo, o si lo quieres hacer y tienes tiempo, comenzar bien de abajo con toda la teoría del bus y de los pics.
A veces es bueno decir "no se" y buscar ayuda genuina.
Saludos
-
Hola
si algo del bus can si se el problema es que soy muy novato en esto de los pics. no es ningun proyecto, es que quiero controlar varias de estas placas desde mi pc para ahorrar tiempo de desplazamiento y cosas asi. gracias.
saludos de antonio
-
Hola
si algo del bus can si se el problema es que soy muy novato en esto de los pics. no es ningun proyecto, es que quiero controlar varias de estas placas desde mi pc para ahorrar tiempo de desplazamiento y cosas asi. gracias.
saludos de antonio
Pues bien, pero antes habías hablado de un "analizador de protocolos" o algo asi, aquí cito tu texto.
"En una placa industrial (no se que fabricante es ya que no lo pone, parece un desarrollo especifico) que lleva comunicaciones por el bus can. Yo lo que quiero hacer es una especie de logeador del trafico, vamos capturar todos los paquetes que le llegan y mandarlo al PC"
Pensando en ello es que considero que tienes mucho trabajo por hacer. Si sabes del can bus, entonces supongo sabrás si puedes capturar todo tipo de informacíon. El integrado que comentaste tendrias que estudiarlo más alla que uses o no los PICs.
El tema de los pics, no es un tema menor en este proyecto, pero creo que si no sabes nada o muy poco de pics, te estas poniendo un "proyecto inicial" bastante ambicioso.
Si yo pretendo en mi primer proyecto armar un robot que camine solo... seguro fracasaré, no por ser bruto, sino por desconocer del tema y carecer de experiencia.
Mi consejo es... Aprende a usar los pics 18F2580 o 18F4580 por ejemplo y a partir de ahí , recien empieza haciendo cosas como encender un led, manejar los puertos para pasar a usar el i2c o el SPI , y también la USART.
Luego que hagas eso, recien ponte con este proyecto pero no antes, ya que tienes muucho camino por recorrer aún.
Otra opción es que busques a alguien que te heche una mano en tu proyecto y se interese por el mismo.
Saludos
-
Hola Kid. He pensado que esto te prodría interesar (http://rt3wiki.free.fr/pmwiki.php?n=Us.Software). Es el esquema y código de un enlace para red VAN (vehicle area network), que es la red que utilizan los vehículos PSA (Puegeot y Citroen).
Saludos
-
ahora que lo dices y me has recordado, que es curioso tengo dos proyectos con bus can. muchas gracias voy a mirarmelo
saludos de antonio