¿Es un problema con SPI bit banging o el modo

0

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:

  1. Creo que se debe principalmente a que el Si4455 no puede procesar los comandos y, por lo tanto, devolver 0x00
  2. 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 Aquí - Pase a la página 42 a 46 para esquemas . Tenga en cuenta que hay un 1uF capacitor conectado a GPIO 13, es decir, una línea MISO después de la tecla de reinicio. He quitado este condensador, ya que no permitirá la comunicación SPI.

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.

    
pregunta PsychedGuy

0 respuestas

Lea otras preguntas en las etiquetas