TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: black_flowers en 17 de Octubre de 2010, 12:24:41
-
hola, tengo que comunicar dos pics 18f entre sí, y me preguntaba con qué tipo de comunicación consigo más velocidad. La comunicación es en un sólo sentido, es decir un pic envía datos y otro los recibe, y en fin qué sería más efectivo, usart, spi,o i2c?
un saludo.
-
Si no recuerdo mal el más rápido es SPI. Con un micro a 40Mhz puedes poner el bus a Fosc/4, es decir, 10Mbit/s = 1.25Mbyte/s.
De toda formas va a ser dificil que aproveches al máximo el bus ya que el ciclo de reloj coincide con el ciclo de instrucción del micro: tendrías una instrucción para gestionar cada byte jeje
Por encima de una velocidad mínima creo que debería mirar más las ventajas y desventajas de cada bus. Pero en eso no te puedo ayudar: en su día me las empollé pero ya no las recuerdo... utilizo SPI por costumbre XD
Saludos.
-
También le apuesto a SPI. Con I2C desperdicias bits en el direccionamiento del otro micro, aunque sólo usas 2 pines SDA y SCL.
Con SPI usas SDI, SDO, SCL y CS, 4 pines.
-
Sin dudas SPI :mrgreen:
-
gracias amigos, veo que hay unanimidad, de todas formas... pienso y si fuese bidireccional sería también spi?
-
Holap,
SPI es bidireccional, pero no es multimaestro: es decir, la transmisión del esclavo se inicia a petición del maestro (no puede haber más de un maestro como en I2C o CAN). Si decides comunicar sólo de forma unidireccional puedes hacerlo unicamente con 2 lineas como en I2C: SDO(maesto)- SDI(esclavo) y SCK(reloj).
Saludos.
-
yo en lo personal tomarias en cuenta distancia entre pic, recursos de los pic y necesitos mas pines de I/O y todas esas cosa ahora porque solo toman en consideracion velocidad. si puedes explicar un poco mejor ese asunto.
Saludos y estamos en contacto.
Atten.
Alexander Santana.
Venezuela-Barecelona.
-
sin duda alguna es spi, lo que pretendo es mandar información de dos conversiones de dos cad de un dspic hacia un pic18f4550, la comunicación es unidireccional y sólo hay un maestro, y la velocidad tiene que ser máxima, ya que hay que tratar de que seal lo más en tiempo real posible.
-
Hola.
A veces es mejor tener el problema correcto, que la solución apropiada.
Mencionas que los datos van del dsPIC al PIC18. Imagino que usas un dsPIC por su ADC de 12 bits y su alta frecuencia de muestreo. Después enviarás las muestras por USB a la PC.
Si el escenario fuera ése (pura deducción de pate mía), yo creo que podrías usar un ADC externo de 12 bits y 100kSps como el MCP3201, y conectarlo al PIC18.
El MCP3201 usa SPI.
Fin de la deducción. Si en realidad usas el dsPIC por otras razones, el mensaje anterior puede ser ignorado. ;-)