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.