Observe el "puerto de E / S típico" de un microcontrolador PIC de rango medio. Sí, esta unidad es similar al ábaco en comparación con algo como un FPGA, pero los principios electrónicos son idénticos.
ElpindeE/SeselpinfísicodelICyseconectaalmundoexterior.Todolodemásesunaaproximacióndeloscomponenteselectrónicosestándarquemodelanloqueocurredentro.
Empecemosconunasalidadepropósitogeneral:
LosdossímbolosidénticosmarcadoscomoPyNsonFETdealgunaformauotra.Entérminossimples,conectanelpindeE/SdirectamenteaVdd(ALTO)oVss(BAJO)comouninterruptor,peronuncaambosalmismotiempo,cuandoelpinesunasalida.Lossímbolosasuizquierdasonpuertaslógicas,comoprobablementereconozca,yasuizquierdadenuevosonflip-flopstipoD.Cuandocambiasprogramáticamenteunpindesalidaa1o0,aparece1o0enBusdedatos,ypocodespuésdequeWRPORTpasedealtoabajo,seactivarálacorrectasalidaatravésdelosflipflopsypuertalógica.LamayoríadelosuCcontrolanelcambioWRPORTautomáticamente.WRTRIS,enelcasodeunPIC,determinasielpinesunaentradaounasalida,porlotanto,siintentaestablecerunpindeentradaenunvalor,elcomandonuncallegaalaspuertaslógicasporqueelflip-flopTRISLatchestábloqueadoenlaposición'off'.
Alirmásalládelpropósitogeneral,siempreterminaráconlosdispositivosFET('P'y'N'),yaquesonlosqueproporcionanfísicamentelasseñalesaltasybajas.PuedencontrolarsedirectamentemedianteuncontroladorPWMounperiféricoUART/SPI/I2Cyesposiblequenotengaaccesodirectoaellosenelsoftware,perolosFETactúancomobúferentreelinterioryelexterior./p>
Unaentradadepropósitogeneralesmuchomásfácildedescribirensucasomássimple.EltriánguloetiquetadocomoTTLoSchmittTriggeractúacomoelbúfer;denuevo,aíslaelinterioryelexterior.Comolomencionalanotaalpieeneldiagrama,seincluyen"diodos de protección" (pero no se muestran) para evitar que la uC se dañe debido a señales que exceden el rango de Vss y Vdd. La salida de este búfer inicial se alimenta a otro flip flop, de manera que cuando se sondea el pin, RD PORT activa el valor en el pin de E / S que se escribe en Bus de datos .
Más allá del propósito general, el búfer TTL puede reemplazarse con un búfer analógico para la entrada a un ADC, o nuevamente podría alimentar a un periférico UART / SPI / I2C no accesible directamente.
Entonces, para responder a tus preguntas ...
(1) ¿Qué son los buffers? ¡Véase más arriba! En última instancia, un búfer replica su entrada en su salida, por lo tanto, aísla el "interior" sensible del "exterior" desagradable.
(2) ¿Cuál es el efecto de habilitar / deshabilitar? Por lo general, puede establecer un pin como una entrada o una salida. Si no te eliges a ti mismo, el uC lo configurará en uno u otro por defecto.
(3) y el resto de (2). Es una buena práctica establecer pines no utilizados como salidas, dando salida BAJA. Esto detiene (a) la potencia de desperdicio potencial si se configura en salida ALTA, y (b) voltajes 'flotantes' cuando se configura en entrada, lo que podría tener efectos extraños en los pines cercanos y los periféricos asociados.
(4) Según el hardware, es posible que tenga que configurar manualmente un pin para la entrada o la salida, incluso si solo puede funcionar como una salida (o entrada). Por ejemplo, tres pines tal vez dedicados a un módulo SPI. No puedo garantizar que los pines estén cableados como el tipo correcto de pines sin leer la hoja de datos de la unidad de usuario. En el caso de los PIC, es raro obtener un pin periférico (ADC, I2C, PWM, etc.) que no pueda funcionar como un GPIO. Debe programar la dirección del pin antes de poder usar el periférico correctamente.