STM32L4R problem s OCTOSPI
Jaroslav Buchta
jaroslav.buchta na hascomp.cz
Čtvrtek Prosinec 13 11:22:16 CET 2018
Zdravim, jsem z toho uz trosku jelen, normalne v CubeMX nakonfiguruju
rozhrani a parametry (tady jeste trosku tapu) vygeneruju kod a prelozim.
Pripojena je SPI FLASH 26F064 kterou bych chtel provozovat jako QSPI
Problem je ve vygenerovane inicializaci, ktera vypada takto:
/* OCTOSPI1 init function */
void MX_OCTOSPI1_Init(void)
{
OSPIM_CfgTypeDef OSPIM_Cfg_Struct;
OSPI_AutoPollingTypeDef cfg;
hospi1.Instance = OCTOSPI1;
hospi1.Init.FifoThreshold = 1;
hospi1.Init.DualQuad = HAL_OSPI_DUALQUAD_DISABLE;
hospi1.Init.MemoryType = HAL_OSPI_MEMTYPE_MICRON;
hospi1.Init.DeviceSize = 22;
hospi1.Init.ChipSelectHighTime = 1;
hospi1.Init.FreeRunningClock = HAL_OSPI_FREERUNCLK_DISABLE;
hospi1.Init.ClockMode = HAL_OSPI_CLOCK_MODE_0;
hospi1.Init.WrapSize = HAL_OSPI_WRAP_NOT_SUPPORTED;
hospi1.Init.ClockPrescaler = 3;
hospi1.Init.SampleShifting = HAL_OSPI_SAMPLE_SHIFTING_NONE;
hospi1.Init.DelayHoldQuarterCycle = HAL_OSPI_DHQC_DISABLE;
hospi1.Init.ChipSelectBoundary = 0;
if (HAL_OSPI_Init(&hospi1) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
OSPIM_Cfg_Struct.ClkPort = 1;
OSPIM_Cfg_Struct.NCSPort = 1;
OSPIM_Cfg_Struct.IOLowPort = HAL_OSPIM_IOPORT_1_LOW;
if (HAL_OSPIM_Config(&hospi1, &OSPIM_Cfg_Struct,
HAL_OSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
cfg.Match = 0;
cfg.Mask = 1;
cfg.MatchMode = HAL_OSPI_MATCH_MODE_AND;
cfg.AutomaticStop = HAL_OSPI_AUTOMATIC_STOP_ENABLE;
cfg.Interval = 0;
if (HAL_OSPI_AutoPolling(&hospi1, &cfg, HAL_OSPI_TIMEOUT_DEFAULT_VALUE)
!= HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
if (HAL_OSPI_AutoPolling_IT(&hospi1, &cfg) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
}
Funkce if (HAL_OSPI_AutoPolling(&hospi1, &cfg,
HAL_OSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK) vrati
HAL_OSPI_ERROR_INVALID_SEQUENCE protoze hospi->State ==
HAL_OSPI_STATE_CMD_CFG neni splneno a state je HAL_OSPI_STATE_READY, coz
je logicke, protoze nebyl spusten zadny command...
Je to BUG a nezbyde, nez v CubeMX periferii zakazat a nakonfigurovat
komplet sam, nebo delam neco spatne? IMHO to takhle proste nemuze
fungovat, inicializaci jsem docela dukladne prokrokoval a neni tam nic,
co by state zmenilo na HAL_OSPI_STATE_CMD_CFG...
Bohuzel tohle rozhrani ma v konfiguratoru jen volbu HAL, zadne LL a
konfiguracni dialog mi prijde taky sity nejak horkou jehlou, chybi tam
spousta nastaveni co by dle DS sla, hlavne treba rezim, aby to krome
inicializace nic automaticky nedelalo...
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20181213/ff6f0dea/attachment.html>
Další informace o konferenci Hw-list