Tengo un problema cuando me comunico con un ADC sobre SPI. Si imito el protocolo SPI a través de bitbanging , entonces no tengo problemas con la comunicación; sin embargo, si uso el hardware SPI (he probado con Arduino y mbedOS), la comunicación falla y no se reciben datos.
Las mayores diferencias discernibles son:
- El estado inactivo de la línea MOSI. Cuando se hace bit bit, esta línea se mantiene baja cuando está inactiva, en lugar de alta cuando está inactiva utilizando SPI.
- Al bitbanging, la línea MISO se eleva tan pronto como CS lo hace. Sin embargo, cuando se usa SPI, hay un giro notable.
- Por último, CS tarda un tiempo relativamente largo en ir alto después del último pulso de reloj cuando se usa SPI en lugar de casi inmediatamente cuando se realiza el bitbanging.
- El tiempo necesario para enviar los mensajes (visible en las imágenes a continuación). Aunque no puedo imaginar que esto sea un problema.
Estoy ejecutando en modo SPI 0, según la hoja de datos ADC . He probado un Arduino Uno y un RedBearLabs Blend V2 (ejecutando mbedOS).
A continuación hay dos tomas de alcance de las señales.
- El rastreo 1 es SCLK .
- El rastreo 2 es CS .
- El rastreo 3 es MOSI .
- El rastreo 4 es MISO .
Estoy enviando 10000000
en MOSI. La respuesta recibida no se incluye en las tomas de alcance, ya que creo que el problema es con el comando enviado en las tomas.
SPI
Gracias.