TODOPIC

FORO TÉCNICO => Foro Técnico => Mensaje iniciado por: Diego Gonzalez en 09 de Octubre de 2011, 14:40:00

Título: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: Diego Gonzalez en 09 de Octubre de 2011, 14:40:00
Hola a todos

Quisiera preguntaros si habeis tenido alguna vez el problema de como implementar un circuito con varios sensores de diferentes tipos.
En mi caso pretendo integrar sensores de temperatura de silicio, para medir la temperatura del aire, y esos por ejemplo los leo por i2c. Luego quisiera leer un termopar, y tengo en mi mente dos tres opciones. Usar un chip dedicado y dcon salida SPI, usar un amplificador de instrumentacion y un ADC que de el dato por i2c o directamente ampli de instrumentacion y puerto analogico del pic.
Para medir temperatura del agua tambien pense dos o tres opciones. Una emplear un ds1820 con protocolo 1-wire, o usar sensores analogicos como puede sr una pt100 y ADC por i2c o ADC del pic.
Luego para almacenamiento estoy probando memorias eeprom como la 24lc512, que usa i2c, pero tambien está la posibilidad de emplear tarjetas SD por SPI.
Un RTC como el famoso ds1307...

La verdad es que ahora mismo estoy probando todo por separado. Aprendiendo a usarlo todo bien, pero ahora que pretendo juntarlo todo en un unico circuito no se muy bien como hacerlo, o si empezar a pensar en cambiar la forma de encarar el proyecto y usar un solo protocolo, buscar chips dedicados, mirar las alternativas de hacerlo todo por sofware, usar varios pics. En fin que soy un mar de dudas.

A ver si alguien me puede echar un cablecillo :D
Muchas gracias
Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: Suky en 09 de Octubre de 2011, 16:30:25
No existe ningún problema en reunir todos eso protocolos en un mismo proyecto. Es más, generalmente un proyecto reúne USB, serial, SPI o I2C. Es el pan de todos los días  :D


Saludos!
Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: MerLiNz en 09 de Octubre de 2011, 20:02:03
para esto te recomiendo un pic con 2 modulos mssp, asi tienes i2c en un mssp y spi en el otro, ambos por hardware con las ventajas que tiene.

Si necesitas varias comunicaciones en i2c no hay problema, ya que en el i2c se asigna direcciones a los distintos modulos, y siempre que quieras leer uno pues eliges la direccion.

Para el SPI tampoco, el SPI lleva el SS (slave select), cuando quieras elejir comunicarte con X modulo, pues activas el pin de ese modulo, y cuando quieras el otro modulo, pues elijes el otro pin.

Unicamente debes mirar los sensores que tienes, y si es necesario rapidez de respuesta, o bien puedes multiplexar todos los sensores y asi solo usaras varios pines del pic, para muchos sensores.
Si necesitas USB, o USART.
Velocidad del pic.
Modulos MSSP necesarios (si quieres i2c y spi yo pondria un pic con 2 modulos integrado).
Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: Diego Gonzalez en 10 de Octubre de 2011, 10:32:36
Hola a todos

Suky gracias por aclararme que es posible. Eso ya me ayuda de primeras a seguir investigando en mi linea.
Merlinz muchas gracias. Esto ya es una solucion directa a mi pregunta. Es increible. No conocia la existencia de los nuevos micros de microchip. Estoy estudiando alguno de ellos y estan realmente genial. Puede que hasta me compre alguno con el BUS CAN para mas adelante

Muchisimas gracias os mantendre al tanto. Ahora que se que un pic puede comandar ambos protocolos me he relajado un poquito

Un abrazo a ambos y suerte con todo
Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: MerLiNz en 10 de Octubre de 2011, 10:55:18
pues si, los nuevos pics de 8bits son bastante buenos, yo me pille los 18f46k80 es lo mas grande ke te puedes pillar en DIP, luego esta el 66k80 pero son para formato smd.

Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: Diego Gonzalez en 29 de Octubre de 2011, 08:36:13
Hola a todos

Hoy me he puesto a hacer pruebas con el 18f46k22 y nada no soy capaz de comunicarlo con el icd2 clone. Como mi icd2 clone dispone de potenciometro para regular vpp le estoy poniendo unos 6 voltios de vpp, aunque en la nota de aplicacion de microchip pone que menos de 12v, y simulando el circuito del adaptador del vpp sale que con el lm431 vpp valdria 8v aprox. Aun asi no me reconoce el dispositivo.

Alguien ha probado esta nueva familia? Que porgramador/depurador habeis usado?? Ya estoy un poco decepcionado de nuevo. Si no consigo esto. ¿es posible utilizar spi por sofware y el bus i2c por hardware al mismo tiempo??

saludos y gracias por adelantado
Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: manwenwe en 29 de Octubre de 2011, 08:50:15
Creo que has leido mal la nota: son como máximo 12V ó 13V pero el mínimo son 9V-10V. ¿No entrega tanto tu programador?

¿tienes por ahí el esquemático del programador? A lo mejor se puede modificar.

saludos
Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: Diego Gonzalez en 29 de Octubre de 2011, 08:55:20
Hola:

Si si que lo entrega, entrega hasta 20 o mas, segun el ajuste del potenciometro,pero salta una alerta en el mplab, que indica que esos pic no estan pensados para una vpp superior a 12 voltios, y necesitan un adaptador.

esto dice:

Código: [Seleccionar]
ICDWarn0068:  This device has a VPP(max) below the minimum ICD2 VPP level of 12V.  Please ensure that external protection for MCLR is in place.  (Press the Help button for an example circuit or use AC164112 available from microchipDIRECT.com.)
Auto-connect not enabled - Not connecting (Try enabling auto-connect on the ICD2 settings pages.)

Ademas dentro de ese warning:
Código: [Seleccionar]
ICDWarn0068: This device has a Vpp(max) below the minimum ICD 2 Vpp level of 12V. Please ensure that external protection for MCLR is in place. (Press the Help button for an example circuit.)

The MPLAB ICD 2 Vpp voltage generator is capable of driving from 12V to 14 V. The currently selected device has a Vpp (max) rating less than 12V. Protection circuitry is needed to step down the 12V Vpp generated by the MPLAB ICD2 to a level acceptable by the current device. For example:


Y pone un esquemita de un regulador con un zener.

No lo entiendo muy bien...  :(
Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: AngelGris en 29 de Octubre de 2011, 09:10:10
¿Podés subir el esquema?
Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: manwenwe en 29 de Octubre de 2011, 09:37:06
me desdigo: el mínimo es vdd+4.5 y el máximo 9V (página 36):

http://ww1.microchip.com/downloads/en/DeviceDoc/41398B.pdf

¿cúal es to vdd? Bueno: en cualquier caso si regulas VPP a 9V debe de funcionar sin problemas.

En cuanto a lo del zener: te están diciendo que pongas un zener de 9V + resistencia limitadora de corriente (1k vale) para que no quemes el micro si aplicas más de 9v en vpp. Parece ser que ICD2 (hace tiempo que no lo tengo) no es capaz de scar menos de 12V por VPP por lo que MPLAB da por hecho que te vas a cargar el micro. LAS TIPICAS CHAPUZAS DE MICROCHIP :D

Mi consejo: pon tu potenciometro a 8.5-9V y no le hagas ni p. caso a lo que dice MPLAB. Siempre que tengas dudas de niveles de programación mira las "programming specificatios" del micro.

saludos
Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: Diego Gonzalez en 29 de Octubre de 2011, 09:37:58
¿Podés subir el esquema?

Por supuesto. Aqui está:
(http://img546.imageshack.us/img546/5921/icd2adapter.jpg) (http://imageshack.us/photo/my-images/546/icd2adapter.jpg/)
Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: manwenwe en 29 de Octubre de 2011, 09:44:40
uuppp perdón: eso es lo que tienes tú en tu ICD2 o lo que te pide MPLAB?
Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: AngelGris en 29 de Octubre de 2011, 09:55:38
  Mi pregunta iba orientada al esquema que decías que era con zener.
 
  En el esquema que subiste aparece un regulador xx431xx, algunos TV utilizan un regulador llamado TLP431 que tiene el formato TO 92. Podrías contrastar los datasheet de ambos dispositivos y si son iguales en cuanto al funcionamiento usas el TLP y listo.
Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: Diego Gonzalez en 29 de Octubre de 2011, 10:00:38
uuppp perdón: eso es lo que tienes tú en tu ICD2 o lo que te pide MPLAB?

Holaaa.

Pues no no he montado eso en mi icd2 clone. Mi icd2 clone dispone de un potenciometro que regula el ciclo de trabajo de un integrado que es el encargado de generar el vpp. No es un ne555 pero mas o menos lo mismo, y con un circuito pushpull genera esa tension. Por tanto puedo variar el vpp desde 4 voltios aprox a 20aprox. Normalmente lo pongo a 12voltios para todos los pics que uso, pero como el origen de mi problema era la imposibilidad de compartir lineas del bus i2c de cualquier pic, y el 18f46k22 dispone de varios modulos spi o i2c. Sin embargo este pic es quisquilloso con el temas del vpp, y no hago mas que salir de un problemilla y meterme en otro  :(

saludoos

pd: Volviendo al tema de este post. Es posible "digamos" utilizar el pgc y pgd del pic para usar por ejemplo i2c y utilizar cualquiera de las otras lineas para usar spi por sofware?? En esto estoy muy verde, lo siento de veras si son preguntas evidentes :(
Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: manwenwe en 29 de Octubre de 2011, 10:04:59
1er problema: en este caso ponlo a 9V y arreglado.

2º problema:pgc y pgd sólo están ocupadas en modo ICSP o lo que es lo mismo: mientras programas o depuras. Si no vas a depurar puedes utilizarlos para cualquier otra cosa...
Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: MerLiNz en 29 de Octubre de 2011, 10:24:26
has visto si el icd2 es compatible con este pic?? Te lo digo porque en algun sitio de microchip lei que los nuevos pics eran incompatibles con el icd2 por eso sacaron el icd3.
Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: Diego Gonzalez en 29 de Octubre de 2011, 10:27:15
1er problema: en este caso ponlo a 9V y arreglado.

2º problema:pgc y pgd sólo están ocupadas en modo ICSP o lo que es lo mismo: mientras programas o depuras. Si no vas a depurar puedes utilizarlos para cualquier otra cosa...

Hola

Me explico un poquito mejor :P

Mi problema no esta en la depuracion o no del proyecto, sino el uso final. Estoy realizando un sistema de adquisicion multiple, en el que se emplean tarjetas de almacenamiento (bus SPI) protocolos one wire para sensores de tempertura, sensores de temperatura por i2c y memorias eeprom i2c etc etc. Por ahora llevo haciendo muchas pruebas todo por separado y llega la hora de unirlo todo, pero  al ser distintos protocolos de comunicaciones, y en su implementacion fisica, usan los mismos pines, pues no puedo utilizar los tipicos pic. (a menos que pueda usar por ejemplo i2c por sofware y SPI por hardware o a la inversa) Que aun no lo se si se puede hacer (¿Alguien sabe si es posible esto?)

La cosa es que un forero me recomendo esta familia de pics 18f46k22 que incorpora de serie varios modulos hardware i2c/spi por tanto podria realizar lo que yo quiero (ademas tiene dos modulos usart que me viene bien para usarlo mas adelante).

Y ahora me encontre con el problema del Vpp. Ahora creo que esta clara la situacion en que me encuentro jejeje

un saludo y gracias por los comentarios
Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: Diego Gonzalez en 29 de Octubre de 2011, 10:28:43
repetido
Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: MerLiNz en 29 de Octubre de 2011, 10:30:00
Please consider the MPLAB ICD 3 (DV164035). The MPLAB ICD 2 is not recommended for new designs and will not support new MCU or dsPIC devices released after September 2010.

Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: manwenwe en 29 de Octubre de 2011, 11:09:50
me estoy luiando :shock:

¿entoncs has solucioado lo de VPP? ¿has podido programar?

Luego: puedes multiplexar los pines que utilizan SPI e I2C pero nunca utilizarlos al mismo tiempo. Además puedes implementar otros puertos serie por "software" (utilizando GPIOs) ya que microchip tiene librerías...

Yo creo que terminarias antes si pusieses un esquema explicando todo lo que te gustria utilizar en cada puerto (pines)... así lo veriamos todos mejor...
Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: Suky en 29 de Octubre de 2011, 11:35:25
me estoy luiando :shock:

¿entoncs has solucioado lo de VPP? ¿has podido programar?

+1  :z) Trata de pensar tranquilamente cuales son tus problemas, cuales ya resolviste y se un poco más claro a la hora de preguntar  :mrgreen:
Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: Diego Gonzalez en 29 de Octubre de 2011, 11:36:42
(http://img810.imageshack.us/img810/4355/18f46k22.png) (http://imageshack.us/photo/my-images/810/18f46k22.png/)

Uploaded with ImageShack.us (http://imageshack.us)

Hello my friends!!! Novedades. He añadido a mi icd2 una resistencia y un zener de 9.1voltios. Luego he ajustado el voltaje hasta que el sefl test dentro de propiedades del programador eran correctas "pass" y he podido programar.

Al final no he usado un zener como el del esquema de microchip, sino uno normalito sin vref, y parece que funciona
Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: Diego Gonzalez en 29 de Octubre de 2011, 11:38:48
me estoy luiando :shock:

¿entoncs has solucioado lo de VPP? ¿has podido programar?

Luego: puedes multiplexar los pines que utilizan SPI e I2C pero nunca utilizarlos al mismo tiempo. Además puedes implementar otros puertos serie por "software" (utilizando GPIOs) ya que microchip tiene librerías...

Yo creo que terminarias antes si pusieses un esquema explicando todo lo que te gustria utilizar en cada puerto (pines)... así lo veriamos todos mejor...

Pero segun tengo entendido (no estoy 100% seguro) para i2c necesitamos resistencias pullup y para SPI no, por tanto con multiplezar el uso no bastaria. Seria necesario disponer de conexionados fisicos "distintos" pues a nivel de hardware los protocolos son diferentes.

Si estoy equivocado matarme :(

Un saludoteee
Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: Diego Gonzalez en 29 de Octubre de 2011, 11:45:29
Fijense que respuesta he encontrado en otro foro:

Código: [Seleccionar]
18-sep-2008 #12
newcowboy
 
Fecha de Ingreso: septiembre-2008
Ubicación: Chile
Mensajes: 1

yo estoy en una situacion algo similar a la de halvarezo, solo que yo utilizo el 18f4550 con CCS y este micro comparte pines entre I2C, SPI y RS232, protocolo que estoy utilizando para otra comunicacion...

ahora bien, yo he encontrado una solucion que me ha dejado tranquilo hasta el momento la cual consta basicamente de realizar alguna de las dos comunicaciones por hardware y la otra por software redireccionando los puertos a otros que tenga disponibles.

Si bien he tenido algunos problemas para redireccionar el SPI, no me da problemas el redireccionar el I2C o el RS232 cuando lo necesito, es mas... de este modo se pueden crear varios puertos RS232 (o i2c) segun sea necesario.


Espero te sirva mi respuesta.

Podria ser la clave en caso de que no finalmene no lograse hacer funcionar el nuevo pic 18f46k22 no creeis?? Parece que responde a mi pregunta de si es posible usar el modulo "hardware" que implanta el pic y emular el otro modulo por sofware.

Es un lio verdad?? Me explico mal por mi falta de conocimientos. mil perdonesss :D
Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: manwenwe en 29 de Octubre de 2011, 13:39:35
Si tío si!!!lo siento pero es un lio de la hostia!!

i2c necesita pull-ups. SPI en principio puede funcionar sin pull-ups (mi experiencia con PIC) pero si le pones te evitas problemas: yo siempre pongo y funciona perfecto.

¿te queda alguna duda concreta?
Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: Diego Gonzalez en 29 de Octubre de 2011, 13:57:07
Si tío si!!!lo siento pero es un lio de la hostia!!

i2c necesita pull-ups. SPI en principio puede funcionar sin pull-ups (mi experiencia con PIC) pero si le pones te evitas problemas: yo siempre pongo y funciona perfecto.

¿te queda alguna duda concreta?

joer eso ya me aclar muchisimo jaja Esque yo SPI no he probado pero como toda la documentacion por la web los ponen sin pullups , pues ya sabes... Me hizo dudar.

Nada, nada, un millon de gracias seguire haciendo pruebas!! :P. Ahora que conecté el mplab y el icd2 con el 18FK voy a paparme el manual enterito :-/

Un afectuoso saludo
Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: AngelGris en 29 de Octubre de 2011, 14:04:55
  Básicamente la diferencia se debe a que en SPI, el nivel alto lo generan los integrados -ya sea el micro o el dispositivo a acceder- mientras que en I2C los integrados no generan nivel alto sino que se ponen en alta impedancia y entonces el nivel alto es obtenido por medio de las resistencias de pull-up, por tal motivo son imprescindibles en I2C.
Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: manwenwe en 29 de Octubre de 2011, 14:10:57
 Básicamente la diferencia se debe a que en SPI, el nivel alto lo generan los integrados -ya sea el micro o el dispositivo a acceder- mientras que en I2C los integrados no generan nivel alto sino que se ponen en alta impedancia y entonces el nivel alto es obtenido por medio de las resistencias de pull-up, por tal motivo son imprescindibles en I2C.

¿eso quiere decir que son open-collector o open-drain no?
Título: Re: ¿Como encaro el diseño de un circuito con varios protocolos de comunicaciones?
Publicado por: AngelGris en 29 de Octubre de 2011, 14:44:25
 Básicamente la diferencia se debe a que en SPI, el nivel alto lo generan los integrados -ya sea el micro o el dispositivo a acceder- mientras que en I2C los integrados no generan nivel alto sino que se ponen en alta impedancia y entonces el nivel alto es obtenido por medio de las resistencias de pull-up, por tal motivo son imprescindibles en I2C.

¿eso quiere decir que son open-collector o open-drain no?

Exactamente!!!!!!