Autor Tema: qué utiliar, usart, spi o i2c?  (Leído 6432 veces)

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

Desconectado black_flowers

  • PIC18
  • ****
  • Mensajes: 450
qué utiliar, usart, spi o i2c?
« 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.

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re: qué utiliar, usart, spi o i2c?
« Respuesta #1 en: 17 de Octubre de 2010, 14:54:51 »
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.
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: qué utiliar, usart, spi o i2c?
« Respuesta #2 en: 17 de Octubre de 2010, 15:01:25 »
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.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: qué utiliar, usart, spi o i2c?
« Respuesta #3 en: 17 de Octubre de 2010, 15:16:10 »
Sin dudas SPI  :mrgreen:
No contesto mensajes privados, las consultas en el foro

Desconectado black_flowers

  • PIC18
  • ****
  • Mensajes: 450
Re: qué utiliar, usart, spi o i2c?
« Respuesta #4 en: 18 de Octubre de 2010, 16:33:19 »
gracias amigos, veo que hay unanimidad, de todas formas... pienso y si fuese bidireccional sería también spi?

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re: qué utiliar, usart, spi o i2c?
« Respuesta #5 en: 18 de Octubre de 2010, 16:46:08 »
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.
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado ASTROCAR

  • PIC24F
  • *****
  • Mensajes: 666
Re: qué utiliar, usart, spi o i2c?
« Respuesta #6 en: 20 de Octubre de 2010, 09:27:13 »
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.
EL APRENDER ES NADA; MEJOR ES COMPARTIR EL APRENDIZAJE

Desconectado black_flowers

  • PIC18
  • ****
  • Mensajes: 450
Re: qué utiliar, usart, spi o i2c?
« Respuesta #7 en: 20 de Octubre de 2010, 11:10:34 »
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.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: qué utiliar, usart, spi o i2c?
« Respuesta #8 en: 20 de Octubre de 2010, 12:14:50 »
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.  ;-)


 

anything