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