Porting código SPI de (Intel) Galileo a Edison - Arduino

1

Actualmente estoy trabajando para portar algunos bocetos de Arduino de Intel Galileo que usan SPI (usando un prototipo de placa Arduino Breakout).

No he podido hacer que funcione hasta ahora, pero he usado un osciloscopio para ver lo que realmente está haciendo el SPI.

He observado que las señales del reloj SPI de Galileo y Edison tienen una forma diferente y también una tensión diferente (observe las escalas en la parte superior de la pantalla). También me he dado cuenta de que el reloj de Galileo está encendido todo el tiempo, mientras que el de Edison se apaga y enciende cada pocos segundos.

EldearribaeselEdison,yeldeabajoeselGalileo.

Comousuariodesoftware,realmentenoséquéestápasandoaquí.¿Alguiensabequépodríaestarcausandoesto?¿Esestoalgoquepuedocambiarenelsoftwareoesdefinitivamenteunacuestióndehardware?¿YestopodríasercausadoporelpropioEdisonoeltableroderuptura?

Gracias,cualquierayudauorientaciónesapreciada!

Editar-Másinformación

Acontinuaciónsemuestranalgunasimágenesmásdelosrelojesqueseejecutanendiferentesfrecuencias:NOTA:ElGalileo(comportamientodeseado)ahoraestáenlapartesuperioryelEdisonestáenlaparteinferior.Lasescalassehanajustadoparaqueseanlasmismas.

125khz

1Mhz

4Mhz

Parece que el reloj se está distorsionando cada vez más en el Edison a medida que aumentamos la frecuencia. ¿Podría ser esto lo que está causando nuestros problemas? Ahora, el rebasamiento es tan dominante que parece estar en un nivel lógico más alto.

    
pregunta Karl

2 respuestas

1

Usted realmente necesita determinar si todo el exceso y el timbre que se muestran en el alcance son reales, o simplemente un artefacto causado por la forma en que está sondeando el circuito. Sospecho que es lo último, así que asegúrese de tener una conexión a tierra sólida, sus sondas están debidamente compensadas y / o pedir prestado / comprar algunas mejores.

En general (ignorando el timbre y enfocándose en la forma subyacente de la forma de onda), parece que el Edison tiene un controlador de reloj más débil que el Galileo, y de hecho, es tan débil a 4 MHz que la amplitud general es muy seria reducido. Si está conduciendo un autobús relativamente largo o muy cargado, el Edison puede necesitar búferes externos para el reloj y las líneas MOSI.

    
respondido por el Dave Tweed
0

SPI por sí solo no especifica un nivel de voltaje (puede ser 1V, puede ser 100V incluso si eso no es muy común). Si desea que sus dispositivos se comporten igual, necesitará un traductor de voltaje (también se les llama traductores de nivel o desplazadores de nivel). Probablemente no podrás cambiar esto en el software.

La "señal de aumento lento" que ve podría provenir de alguna capacitancia en sus líneas de datos, esto sería típico de I2C, donde solo un débil pull-up se encarga de una señal alta y la línea solo se baja. p>

No veo en qué frecuencia está transmitiendo su señal, podría especificarlo.

Para SPI no importa si el reloj está siempre encendido o solo cuando hay alguna comunicación en curso. La comunicación es válida solo cuando la línea CS está activa, todo lo demás debe ignorarse.

El rebasamiento o el aumento lento que ve también podrían provenir de su sonda de alcance. Asegúrese de que su sonda coincida con su alcance.

    
respondido por el Tom L.

Lea otras preguntas en las etiquetas