Después de horas de depuración de SPI, la función de transferencia de bits y el sondeo, he llegado a un punto en el que ya no pude entender qué es lo que hace que el Si4455-RFIC siempre devuelva la respuesta de 0x00, incluso para el comando CTS. Sin embargo tengo hipótesis para esta causa problema, que son:
- Creo que se debe principalmente a que el Si4455 no puede procesar los comandos y, por lo tanto, devolver 0x00
- No está procesando los comandos porque tiene problemas para interpretarlos, porque hay algo mal con mi función de bloqueo de bits SPI o con los datos que estoy enviando.
Según la hoja de datos de Si4455 aquí , indica lo siguiente en la página 23 con respecto al SPI modo de Si4455:
YmuestraestediagramadetiempoSPIenlapágina22:
Delainformaciónanterior,seentiendequelaMCUdelhostdebecolocarlosdatosenelSDIdeSi4455duranteelflancodescendentedelreloj,demodoqueelSi4455puedaleerlosdatosenelflancoascendentedelreloj.YlomismoseaplicaconelSi4455.Basándomeenesto,escribíunafunciónqueenvíalosdatos(Comandosdebytes)aldispositivoesclavo,esdecir,Si4455utilizandoelmétodosimpledetransferenciadebitscomosemuestraacontinuación:
voidSpi_Send(unsignedcharSpi_Data){unsignedcharindex=8,m,maskval=0x80,k;m=Spi_Data;while(index){SPI_CLK_LOW;k=(maskval&m);while(k==0X80){SPI_SDO_HIGH;k=1;}while(!k){SPI_SDO_LOW;k=1;}m=m<<1;index--;SPI_CLK_HIGH;}SPI_CLK_LOW;}
LaimagendelalcanceacontinuaciónmuestraelcomandoylatransacciónderespuestaCTSquerealizalosiguiente(Señalamarilla->DatosySeñalazul->Reloj:
1.MakeNSELLow2.Send0x44Command--Thattakes8ClockCycles3.Generateadditional8ClockCycletoreadCTSResponse4.MakeNSELHigh
AcontinuaciónsemuestralaimagendealcancedecómoestoymanejandolaseleccióndelchipentrecadatransacciónparaleerlarespuestaCTS(Amarillo->CSyAzul->Reloj):
YahemosconstruidoelprimerprototipoytenemosestechipparatrabajarconlaTICC3200,peroporalgunarazóntengoproblemasparahablarconlaESP8266EX.Apreciaríasilagentepuederevisarlasseñalesenelalcancequeheadjuntadoyayudarme/aconsejarmesihayalgoquemefaltao,¿esincorrectalaformaenqueestoymanejandolasseñales?Sinopodemosresolveresteproblemaenestasemana,entoncespodríamosvernosobligadosaevaluaralgúnotromódulo,locualseríaunapena,yaquetenemosestechiptrabajandoennuestroprimerprototipoconTICC3200.
Actualización1:consultelosesquemasdehardwaredelaplacadeinicioESP8266EX
Actualización 2: He capturado la comparación de variaciones de tiempo entre las señales TIcc3200 y esp8266ex como se muestra a continuación, con el diagrama de tiempo SPI Si4455 SPI anterior.