Comportamiento ambiguo al usar 2 SPI con velocidades relativamente similares STM32f030c8

0

Estoy utilizando el lector RFID Rc522 que se comunica con el STM32f030c8 a través de SPI1 y EEPROM que se comunica a través de SPI2. Reloj del sistema: 48 Mhz (a través del sistema PLL interno) Reloj periférico APB que tiene SPI: 48Mhz

SPI Init para Rc522

  SPI1_Config.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
  SPI1_Config.SPI_Mode = SPI_Mode_Master;
  SPI1_Config.SPI_DataSize = SPI_DataSize_8b;
  SPI1_Config.SPI_CPOL = SPI_CPOL_Low;
  SPI1_Config.SPI_CPHA = SPI_CPHA_1Edge;
  SPI1_Config.SPI_NSS = SPI_NSS_Hard;
  SPI1_Config.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8; // 48/8 = 6MHZ
  SPI1_Config.SPI_FirstBit = SPI_FirstBit_MSB;
  SPI1_Config.SPI_CRCPolynomial = 7;

SPI Init para EEPROM

  SPI2_Config.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
  SPI2_Config.SPI_Mode = SPI_Mode_Master;
  SPI2_Config.SPI_DataSize = SPI_DataSize_8b;
  SPI2_Config.SPI_CPOL = SPI_CPOL_Low;
  SPI2_Config.SPI_CPHA = SPI_CPHA_1Edge;
  SPI2_Config.SPI_NSS = SPI_NSS_Hard;
  SPI2_Config.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_16; // 48/16 = 3Mhz
  SPI2_Config.SPI_FirstBit = SPI_FirstBit_MSB;
  SPI2_Config.SPI_CRCPolynomial = 7;

Ahora, cuando trato de acceder a ambos SPI de forma secuencial, es decir, al acceder a EEPROM mientras me comunico con el lector, el contenido de EEPROM da resultados ambiguos. Intenté reducir la velocidad de EEPROM a SPI_BaudRatePrescaler_64 y la EEPROM y Rc522 funcionan según lo previsto. ¿Existe algún compromiso o limitación al utilizar 2 SPI de este controlador STM? Deseo usar mi EEPROM alrededor de 6 Mhz junto con Rc522.

¿Hay alguna solución alternativa para que pueda usar ambos periféricos a aproximadamente la misma velocidad (5-10 Mhz) sin resultados tan ambiguos?

Gracias.

    
pregunta NISHIT KHARA

0 respuestas

Lea otras preguntas en las etiquetas