¿Se pueden implementar SPI e I2C utilizando pines GPIO digitales ? Es decir. ¿se pueden emular los pines SDA
y SCK
de I2C y los pines MISO
, MOSI
, SCK
y SS
de SPI al configurar los pines GPIO como entrada y salida en consecuencia?
Por ejemplo, en el caso de un Arduino / Atmega328p, ciertos pines se han dedicado para el uso de SPI e I2C. ¿Pueden los otros pines GPIO digitales realizar la misma función? 1 ¿Hay algo fundamentalmente diferente en cómo se comportan? ¿Tal vez un registro interno o algo para recopilar los datos seriales entrantes?
En el diagrama, se puede ver que los pines SPI se comparten con pines GPIO digitales. Dentro de la matriz Atmega328p, ¿hay dos elementos / submódulos distintos con algo parecido a un búfer que determina qué impulsará el pin? ¿O son lo mismo ...
1 Para la emulación SCK
, suponga que de alguna manera puede pasar el pulso del reloj a un pin GPIO configurado en el modo de salida.
Nota: El Arduino es solo un ejemplo. Estoy preguntando en un sentido general.