Autor Tema: comunicacion entre pic  (Leído 3383 veces)

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

Desconectado isfan

  • PIC16
  • ***
  • Mensajes: 145
comunicacion entre pic
« en: 09 de Noviembre de 2014, 19:26:20 »
Hola buenas. Tengo que comunicar 2 microcontroladores entre ellos, en una única dirección(uno envía y otro recibe datos) y se me abrern 3 dudas.

1.cual protocolo de comunicaciónme recomendáis para la comunicación? SPI, UART o I2C
2. En este proyecto también incluye una EEPROM externa y un modulo bluetooth (hc06), que también tengo que comunicarlo x algún protocolo hacia el pic, esto significa que me quedare sin las lineas de comunicación para abastecer a todos los elementos externos? Cual solución seria?
3.algún tipo de incompatilidad en comunicaciones con diferentes familias tanto, 8, 16 o 32 bits


Muchas gracias x la atencion.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: comunicacion entre pic
« Respuesta #1 en: 10 de Noviembre de 2014, 01:24:35 »
1- Depende de la distancia entre micros, si estan en una misma placa o en un rango corto mi decisión personal seria la de usar SPI. Pero tambien podes usar I2C todo depende de la cantidad y velocidad de datos. Lo digo por que algunos micros soportan I2C como maximo de 400Khz, y algunos otros hasta 1Mhz con algunas consideraciones.

2- No deberias, por ejemplo el modulo bluetooth usa UART, y la EEPROM depende de que bus use (algunos micros PIC16F tienen 2 SPI,2 USART, 2 I2C ) puede ser una con I2C si no te restringe mucho la velocidad, es necesario una EEPROM externa o un micro con EEPROM bastaria? ( Acordate que con I2C podes colgar varios dispositivos de los mismos hilos, con un I2C podes manejar varios modulos externos )

3- Los protocolos son esos, por lo cual no van a cambiar de 8 a 16 o 32 bits y mas si usas de la misma empresa, lo que si puede variar la velocidad de ambos dispositivos, con lo cual la velocidad mas lenta va a predominar.
« Última modificación: 10 de Noviembre de 2014, 01:36:16 por KILLERJC »

Desconectado isfan

  • PIC16
  • ***
  • Mensajes: 145
Re: comunicacion entre pic
« Respuesta #2 en: 10 de Noviembre de 2014, 08:48:46 »
Muchas gracias KILLERJC.

Mirando la especificaciones con el micro que voy a trabajar el PIC24FJ64GB002 veo que dispone de 2 módulo SPI, la cual no logro averiguar cual corresponde estos pines, que estan mutiplexado en la mayoria de ellos con diferentes funciones. Haber si alguien me podria decir con que 4 pinouts trabaja el SPI del 24FJ64GB002
Pense que eran los pines como TDI,TCO, TDO y TMS pero en la descripción de la hoja de datos pone que es para Jtag.

Hoja de datos del 24Fj64GB002/4 -> http://www.microchip.com.tw/Data_CD/Datasheet/16-Bits/39940C.pdf


En otros esquemas salia perfectamente identificado con otros modelos de PIC



Tambien otra cuestión he visto en varios Esquemas una resistencia de varios Ko en la Linea TX y en otros no.
Sabe para que se usa esta resistencia? y si es opcional?

Creo que es por si un Micro esta trabajando a 5V, y va a conectar con otro devices que trabaje a 3.3V necesita esta resistencia en la LInea TX? o solo con aislar la alimentacion VCC sobra?


Un saludo.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: comunicacion entre pic
« Respuesta #3 en: 10 de Noviembre de 2014, 13:40:11 »
No puedo abrir el link que me pasaste pero busque el datasheet de esa familia y:

The SPI serial interface consists of four pins:
• SDIx: Serial Data Input
• SDOx: Serial Data Output
• SCKx: Shift Clock Input or Output
• SSx: Active-Low Slave Select or Frame
Synchronization I/O Pulse

Tiene en este caso que microchip le llama pines mapeables.
Cuando tiene esa clase de mapeo, directamente los resumen en RPn a esos pines. En la seccion de I/O vas a ver tanto las entradas como las salidas

Desconectado isfan

  • PIC16
  • ***
  • Mensajes: 145
Re: comunicacion entre pic
« Respuesta #4 en: 10 de Noviembre de 2014, 17:11:13 »
OK, no sabia que usaban ese nombre generico.


He estado investigando un poco sobre hacer una conexion SPI con 2 dispositivo con diferentes voltajes (uno de 3.3V y otro de 5V)

La conclución es directamente conectar los dispositivos entre sí se sobrecargue el dispositivo de 3.3V y eventualmente conducir a fallo del dispositivo.

Para solucionar esto hay 2 opciones:

1º Opcion metodo mas sencillo poner una resistencia en Serie (Se pondra una resistencia de 10Kohm Siempre que la comunicación sea 5V --->3.3V  No debería ser necesario ningún circuito entre estas líneas para conectar con el dispositivo de 5V)

2º Opcion metodo Diodo
Este método se considera una solución "más seguro" que la resistencia de línea. Este método funcionará independientemente de si el dispositivo de 3.3V ha de sujeción diodos o no.


PD: la linea CS (Chip Select va siempre directamente sin resistencias para evitar conflictos)


Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: comunicacion entre pic
« Respuesta #5 en: 10 de Noviembre de 2014, 21:05:58 »
Mas que por diferentes voltajes esas resistencias estan para limitar la corriente, y de donde lo sacaste presupone que tiene unos diodos clamping el dispositivo de 3.3V

O usas pines con tolerancia a 5V xD

Desconectado isfan

  • PIC16
  • ***
  • Mensajes: 145
Re: comunicacion entre pic
« Respuesta #6 en: 11 de Noviembre de 2014, 06:09:15 »
Bueno la cuestión es que Mi dispositivo Master (24fj64gb002) trabaja a 3.3V y lo voy a conectar via SPI a Slave (PIC18f14k50) este trabaja a 5v.

Queda claro que hace falta una proteción para las lineas que trasmitan los niveles logicos de 5v -> 3.3V  (Diodo shottky o resistencia en serie para no sobrecargar al slave)

Pero mi proyecto esta invertido, es decir, el dispositivo maestro  trabaja a 3.3V y el esclavo a 5v y es unidirecional (La linea de envio de datos del slave del spi hacia el master, estara desconectada)

Mi duda es si la Linea SDI del pic18f14k50 se tragara los 3.3v como un nivel logico de un 1, o de lo contrario hay que subir la tensión con algún transistor mosfet? o algún otro metodo.

Atento a la respuesta... un saludo.





 

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4923
Re: comunicacion entre pic
« Respuesta #7 en: 11 de Noviembre de 2014, 07:34:48 »
conectar dos micro via SPI necesitaria un convertidor para acoplar las señales.
ha leido las hojas de TIP--and Trick de Microchip?
http://ww1.microchip.com/downloads/en/DeviceDoc/chapter%208.pdf
pues de ahi te va a sacar de dudas, no lo he leido completo porque no trabajo con pic, pero para cualquier micro usando SPI y diferente voltage es los mismo.
Saludos

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: comunicacion entre pic
« Respuesta #8 en: 11 de Noviembre de 2014, 11:46:13 »
Bueno la cuestión es que Mi dispositivo Master (24fj64gb002) trabaja a 3.3V y lo voy a conectar via SPI a Slave (PIC18f14k50) este trabaja a 5v.
Queda claro que hace falta una proteción para las lineas que trasmitan los niveles logicos de 5v -> 3.3V  (Diodo shottky o resistencia en serie para no sobrecargar al slave)

No creo que necesitaras nada. Salvo los puertos conectados al ADC, todos los demás pines son 5v tolerantes, aunque el PIC vaya alimentado a 3v3.


Citar
Pero mi proyecto esta invertido, es decir, el dispositivo maestro  trabaja a 3.3V y el esclavo a 5v y es unidirecional (La linea de envio de datos del slave del spi hacia el master, estara desconectada)

Mi duda es si la Linea SDI del pic18f14k50 se tragara los 3.3v como un nivel logico de un 1, o de lo contrario hay que subir la tensión con algún transistor mosfet? o algún otro metodo.

Eso lo tienes en el datasheet, características eléctricas, en concreto el parámetro VIH, desde 0.8v se considera nivel lógico alto, excepto para TTL que sería desde 2v, osea que sin problemas.




Desconectado isfan

  • PIC16
  • ***
  • Mensajes: 145
Re: comunicacion entre pic
« Respuesta #9 en: 11 de Noviembre de 2014, 11:48:09 »
Muchas gracias por las respuestas ya o comentare...

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: comunicacion entre pic
« Respuesta #10 en: 11 de Noviembre de 2014, 13:28:17 »
Ademas recordando los pines, si tu maestro es el de 3.3V

• SDIx: Serial Data Input
• SDOx: Serial Data Output
• SCKx: Shift Clock Input or Output
• SSx: Active-Low Slave Select or Frame

solamente deberias preocupate por el pin SDIx de tu maestro.. ya que el maestro maneja los 3 restantes (SDOx, SCKx, SSx). Es decir el pin SDI deberia ser tolerante a 5V en el maestro. Los demas son entradas para el esclavo, y salidas para el maestro.
« Última modificación: 11 de Noviembre de 2014, 13:32:33 por KILLERJC »