La hoja de datos muestra que la matriz de conmutación no tiene el equivalente de los diodos en su lugar:
![](https://i.stack.imgur.com/HR3Md.png)
Estotienesentidoyaquelamatrizestádestinadaacambiarunavariedaddeseñales,yparalamayoríadelasaplicacionesnodesealosdiodosyaquepuedeninterferirconlaseñal.
Siestocausaunproblemaparausteddependedelusodelteclado/teclado.
Siestácreandountecladoenelquesolosepresionaunateclaalavez,técnicamentenonecesitalosdiodosparaelaislamientoyelADG2188BCPZfuncionaría.Perosiestácreandountecladoautomáticodondesepuedenpresionarvariasteclassimultáneamente,entoncesnecesitarálosdiodosdeaislamientoyestosnosepuedeninstalarenlamatrizdeconmutadoresADG2188BCPZ,yaquesolotienelasclavijasdebusX,Ydisponibles.
Hayunabuenaexplicación aquí para lo que se describe como clave fantasma, pero si te gustan los teclados de PC, generalmente llamado el problema de reinversión de N-Key.
En su caso con su matriz como se muestra:
![](https://i.stack.imgur.com/ZLGYI.png)
SupongamosquePB0-7sonbitsdesalidadeunaMCUyquePR0-7sonbitsdeentrada(esnecesariomedirlosconunosciloscopioparaasegurarse).Enestecaso,un'1'digitalen,porejemplo,PB7sealimentaríaatravésdeunodelosdiodosenesacolumnayuninterruptorcerradoparaproporcionarlaseñal'1'enunadelasentradasPR0-7.YaquenopuedeproporcionarelaislamientorequeridoutilizandoelADG2188BCPZ,tendríaquehacerlodeotramanera.
Sugeriríalosiguiente:
ComoobviamentetieneunaMCU(paracontrolarlainterfazI2C),puedeusar8bitsdeentradaparaencontrarcuáldelaslíneasPB0-7esalta(obajasilalógicafuncionadeesamanera)yluegosimplementeconfigurePR0-7líneacorrespondienteaesaposicióndelinterruptormientrasquelaseñalesalta. Puedeutilizardos PCA9538 de NXP, una para detectar las líneas de la columna y uno para conducir las entradas de registro. El PCA9538 es un registro de 8 bits que puede configurarse para entrada o salida e incluso puede crear una interrupción utilizando un valor de comparación para las entradas.
La velocidad de escaneo del teclado, como la que tiene, suele ser bastante baja, del orden de unos pocos kHz, por lo que, dependiendo de su MCU seleccionada, puede decidir que puede compilar el código directamente o pasarlo a algo como un Arduino se centró en la tarea.
Configuraría un PCA9538 para leer las columnas de exploración y una para generar el estado del interruptor de llave para cada columna. Entonces no necesita ningún diodo para el aislamiento y solo necesita 17 líneas (PB0-7, PR0-7 y grnd) para su conexión. Mantendría su matriz de estado clave en la memoria y transferiría los valores a medida que cada columna aparece. Tienes que hacer esto a la velocidad de escaneo de la columna continuamente, por supuesto.