Estoy diseñando una placa con el ATtiny84A que usa una interfaz de serie universal (USI) y, como tal, no hay un periférico I2C y SPI dedicado.
He conseguido que I2C funcione y lo he probado comunicándome con una EEPROM 24AA02UID.
Logré que el SPI esclavo funcionara y lo probé devolviendo los datos solicitados a un maestro.
Mi pregunta es: si el ATtiny no tiene control sobre si / cuando el maestro decide iniciar una transacción SPI, ¿es posible usar estos mismos pines USI para consultar la EEPROM sobre i2c?
SupongoquepermitirqueelmaestroSPIexternouselospinesi2cqueestánconectadosalaEEPROMporvoluntadpropiaharáqueaparezcandatosextrañosenlaEEPROMsi/cuandoelmaestroenvíeunbytecorrespondientealadireccióni2cdelchipEEPROM,seguidadeotrosdatosaleatorios.
O,¿meestoypreocupandodemasiado?EsperabaquelaEEPROMnotuvieraencuentalasseñalesSPIdebidoalformatodeprotocoloi2cincorrecto.
Sinembargo,elproblemadequeelmaestroSPIexternotomeelcontroldelaslíneasduranteunasecuenciadecomunicacióni2cespreocupante.
¿EslamejorsoluciónusarunbúferdeestadodereposoquemiATtiny84apuedealternarparacortarelmaestroSPIexternodelaslíneasencuestióncuandoquieraleer/escribirenlaEEPROM?
EDIT:
Pareceríaquelasoluciónmásbarata,fácilysencillaesutilizarsimplementeunchipATtinydiferente.CreoqueiréconelATtiny88quetieneunpuertoTWIySPIdedicado(enpinesseparados):