Si desea usar un solo GPIO para controlar todas las líneas CS, puede usar un contador de anillo recto . Tiene una única entrada de reloj y n salidas (según el tamaño). De las n salidas, solo una es alta en un momento dado, dependiendo de si las CS son activas o de alto uso, NO las puertas en consecuencia.
Todo lo que tiene que hacer es contar cuántas veces ha marcado el contador de timbre. Si desea poder programar los chips en cualquier orden, también está bien, porque en la mayoría de los circuitos integrados si no hay el número correcto de relojes antes de que se desactive la línea CS, se borran los buffers de entrada.
Así que todo lo que haces:
El contador de timbres del reloj x veces para activar el CS requerido
Reloj en datos
Clock Ring counter una vez para desactivar el CS actual
Enjuague. Repetir.
Sugiero obtener un contador de timbre con al menos un estado más que necesite para tener un estado en el que no haya CS activo, después de cada transferencia de datos, solo marque el contador del timbre en esa posición.
Con respecto a su pregunta original, solo asegúrese de poner una pequeña demora entre la sincronización del timbre y el inicio de la transferencia de datos.