señal de línea digital inestable / distorsionada / defectuosa

0

¿Hay una palabra adecuada que describa lo que hace la línea MISO en inglés?

Y, en segundo lugar, ¿cómo depuraría este problema de hardware? Debo decir que el dispositivo SPI con el que estoy tratando de comunicarme ya ha sido reemplazado por uno nuevo. Mismo comportamiento.

Actualización en respuesta a los comentarios: no hay un osciloscopio analógico disponible, el reloj del circuito está configurado a 2 MHz, las muestras del analizador lógico a 16 MHz, el (único y único) esclavo SPI es un módulo RFM43 ISM TRANSMITTER, sin esquema, solo cableado Arduino al esclavo SPI.

    
pregunta kellogs

4 respuestas

0

Mi problema fue con el reloj del analizador lógico. Una vez que lo desconecté del SPI SCK de Arduino, todo salió bien.

    
respondido por el kellogs
1

Si piensa que MISO puede estar captando interferencias o energía del RFM43, puede intentar agregar un pequeño capacitor (pruebe 50pF, 100pf, 470pF, 1nF) a tierra y vuelva a realizar la prueba. Si los fallos desaparecen, es probable que esté experimentando interferencia electromagnética o electromagnética.

Para verificar esto, retire el condensador y construya una "cúpula" de lámina de aluminio alrededor de todo excepto el RFM43, con cuidado de no tocar ningún metal desnudo. Coloque un clip de cocodrilo en el domo y conéctelo a tierra. Enciéndalo y verifique MISO: si está limpio, entonces el domo está bloqueando la interferencia de RF para que no se acople a la línea MISO. En este punto, debe trabajar más sobre cómo está diseñada su unidad y proteger estas líneas más del RFM43.

Si no hace nada, entonces su problema está en otra parte. Reducir la velocidad de reloj SPI; De alta velocidad, cualquier cosa siempre complica las cosas. Además, las conexiones largas entre Arduino y RFM43 también harían más probable la interferencia, asegurándose de que todos los cables sean muy cortos. También intente agregar capacitores de derivación adicionales cerca de cada dispositivo y ver si eso ayuda. También lea las hojas de datos cuidadosamente para asegurarse de que tiene las líneas correctas que van a los pines correctos. Las series RFM son conocidas por tener pequeños detalles ocultos en las hojas de datos.

    
respondido por el rdtsc
0

El bus SPI progresó a los nombres MOSI y MISO, creo que por Motorola, de los nombres del bus SPI original DIN y DOUT o similares, que significan 'Entrada de datos' y 'Salida de datos'.

Muy a menudo (francamente, llámelo siempre) es muy confuso usar las palabras IN / INPUT y OUT / OUTPUT en los nombres de las señales. Las direcciones dependen de dónde estés mirando un circuito.

Considere un bus SPI entre un bus maestro de microcontrolador (MCU) y un bus esclavo EEPROM. El MCU recibe los datos en serie en un pin conocido anteriormente como DIN. El fabricante de EEPROM podría (a) llamar a la salida de datos en serie de la EEPROM DOUT y confiar en el diseñador para hacer un cruce, conectar la MCU-DIN a la EEPROM-DOUT, o (b) llamar a la salida de datos en serie de la EEPROM, de modo que el diseñador puede conectar MCU-DIN a EEPROM-DIN y no tener cruces, pero los nombres de los pines que dicen lo contrario de lo que significan.

Ninguno de estos sería claro e inequívoco en un esquema sin información adicional (notas / flechas en el esquema, refiriéndose a las hojas de datos).

Los nombres Master-Out / Slave-In (MOSI) y Master-In / Slave-Out (MISO) son claros y definitivos, y resuelven este problema. Todavía contienen el 'In' y 'Out' prohibido-ish, pero indican direcciones para ambos extremos del cable para que la función permanezca clara.

Por cierto, hay muchos dispositivos esclavos SPI con nombres de pines DIN (salida) / DOUT (entrada) alrededor. ¡Y cada vez que veo uno, tengo que alcanzar su hoja de datos para verificarlo con mucho cuidado! :-) Nunca he tenido que hacerlo con el esquema MOSI / MISO.

    
respondido por el TonyM
0

La línea MISO es un acrónimo de "Master In Slave Out"; en particular, es la forma en que un dispositivo esclavo en un bus SPI devuelve datos al Master (que, por cierto, también proporciona el reloj para esa transferencia sincrónica).

En muchos sistemas de hardware hay varios dispositivos esclavos en un bus SPI, y se les concede acceso al bus, explícitamente por el maestro, mediante el uso de señales de selección de chip bajo activas. Se espera que los dispositivos SPI que no se seleccionen utilicen su controlador en la línea MISO para que no interfieran con las transferencias de datos de otros dispositivos. Es responsabilidad del maestro del bus asegurarse de que las señales de selección de chip respeten la exclusividad mutua (solo un dispositivo seleccionado).

Si solo hay un dispositivo esclavo en su sistema, verifique su hoja de datos para asegurarse de que su diagrama de tiempo coincida con lo que hay en la hoja de datos (incluidas las señales SCK, MOSI y CS). SPI también tiene "modos", así que asegúrese de verificar que estén ocurriendo bordes cuando y donde deberían. Los modos se refieren a si los datos cambian en el flanco ascendente o descendente del reloj (CPHA), y si el reloj está alto o bajo cuando está inactivo (CPOL). Consulte la entrada de Wikipedia sobre SPI .

Pensamiento aleatorio / actualización: En el software, asegúrese de que su pin MISO en el microcontrolador esté configurado como una ENTRADA.

    
respondido por el vicatcu

Lea otras preguntas en las etiquetas