STM32L451 / 452 kompatibiita

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Pondělí Červenec 5 10:48:35 CEST 2021


Tak zahada rozlustena, brouk ma postfix P, to je nejaka SMPS featura a 
ma jiny pinout. Melo me to trknout uz, kdyz to obcas nenabehlo, BOOT0 
pin je taky posunuty ale to se da nastesti SW vypnout.
Dusledkem je nutnost prejit na SW SPI, zkousim co nejrychlejsi kod a 
uplne nevim, jestli je potreba pri hybani PINy vkladat nejake prodlevy a 
kdyz tak jake?
Procesor bezi na nizke frekvenci (4 nebo 8 MHz) kod je nasledujici:


#define BARRIER() __DSB()
//#define BARRIER() __DMB()
//#define BARRIER()

static inline void sendCmd(uint8_t cmd)
{
     HAL_GPIO_WritePin(DISP_DC_GPIO_Port, DISP_DC_Pin, GPIO_PIN_RESET);
     HAL_GPIO_WritePin(DISP_NSS_GPIO_Port, DISP_NSS_Pin, GPIO_PIN_RESET);
     SPI_SCK_GPIO_Port->BSRR = (SPI_SCK_Pin << 16) | ((cmd & 0x80) ? 
SPI_MOSI_Pin : (SPI_MOSI_Pin << 16));
     BARRIER();
     for (int idx=0; idx<8; idx++)
     {
         SPI_SCK_GPIO_Port->BSRR = SPI_SCK_Pin;
         cmd <<= 1;
         BARRIER();
         SPI_SCK_GPIO_Port->BSRR = (SPI_SCK_Pin << 16) | ((cmd & 0x80) ? 
SPI_MOSI_Pin : (SPI_MOSI_Pin << 16));
         BARRIER();
     }
//    txCplt = false;
//    HAL_SPI_Transmit(&hspi1, &cmd, 1, 100);
//    while (!txCplt);
     HAL_GPIO_WritePin(DISP_NSS_GPIO_Port, DISP_NSS_Pin, GPIO_PIN_SET);
     BARRIER();
}

DSB dosahne SCK frekvence neco malo pres 1 MHz (FCLK 8MHz, pouzito pro 
vsechno, PCLKx...)
DMB presne 2 MHZ
a bez bariery to meni stav s frekvenci 4MHz, krome prvnich 2 zmen ktere 
trvaji dvojnasobne, asi nacitani instrukci do cache.

Ted je otazka, zda je nutne vkladat tu synchronizaci nebo to bude 
zarucene fungovat bez nebo DMB nebo DSB?


Dne 02.07.2021 v 14:05 Jaroslav Buchta napsal(a):
> Zdravim, uz pul dne badam nad divnym problemem, asi je chyba mezi 
> klavesnici a zidli.
>
> Nahradil jsem 451 za 452 a uz pri inicializaci GPIO jsem narazil na 
> odlisne chovani, dela to puvodni binarni kod pro 451 i novy kod pro 452.
>
> Vecer budu badat dal, jen jestli nekdo na prvni pohled nevi v cem je 
> odchylka...



Další informace o konferenci Hw-list