interfaces SPI en microcontroladores

2

Mi pregunta es para microcontroladores en general. ¿Se puede implementar SPI con 3 pines de E / S diferentes a los que se concede una señal de reloj? ¿Hay algo especial con ciertos pines que una hoja de datos especifica como entrada de maestro, salida de esclavo o selección de esclavo? Cualquier cosa especial se refiere a algo único sobre el hardware en ese pin en lugar de un pin de E / S general.

    
pregunta user84280

3 respuestas

1

Algunas de las otras respuestas han sugerido el uso de bit banging para resolver el problema de asignar un periférico SPI a cualquier pin arbitrario. El problema con esto es la velocidad; algunos periféricos SPI pueden funcionar con una velocidad de reloj de 40 MHz o superior, y no hay forma de hacer bit bit con firmware a la velocidad.

Una alternativa es usar una arquitectura de hardware que proporcione pines periperales para ser asignados a cualquier pin arbitrario. Uno de estos microcontroladores que hace esto es la familia 8051 de Silicon Labs. Utiliza un interruptor de barra cruzada de E / S para permitir que los periféricos se asignen a casi cualquier pin de puerto, como se muestra a continuación:

Porejemplo,SCKpuedeasignarseacualquierpindeP0-0aP3-0,MISOdeP0-1aP3-1yasísucesivamente.

LafamiliaPIC24FdeMicrochiptambiénpermitequecasicualquierperiféricoseasigneacualquiernúmerodepinesdeE/Senelmicrocontrolador,usandounafunciónllamadaPeripheralPinSelect.EstádisponibleparaperiféricoscomolosmódulosUARTySPI,peronoparaaquellosquerequierenhardwareespecialcomoI2CyUSB.

LaimagenacontinuaciónmuestraundiagramadebloquesdeloscircuitosparaunpindeE/Stípico,conunmultiplexorenlapartesuperiorparaseleccionarlasalidadeunodevariosperiféricosalpindesalida,yenlaparteinferior,otromultiplexorseleccionandounodevariospinesdeentradaalaentradadeunperiférico.

LaseriePIC24Fde16bitspuedetenerhastacuatropuertosSPI,concualquieraasignadoalos39pinesextraíblesenunmicrocontroladorde100pines.

    
respondido por el tcrosley
5

Sí, puedes bit-bang . Por lo general, no será tan rápido como si hubiera hardware dedicado.

No olvide la selección de chip (por lo tanto, cuatro pines para la comunicación bidireccional). Por lo general, necesita un chip seleccionado para que funcione correctamente.

    
respondido por el Spehro Pefhany
2

No. Todas las salidas son salidas normales push-pull, y todas las entradas son entradas flotantes normales. Aléjate.

    
respondido por el Ignacio Vazquez-Abrams

Lea otras preguntas en las etiquetas