<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;
      charset=ISO-8859-2">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Ani jsem necekal, ze se nekdo najde ;-)</div>
    <div class="moz-cite-prefix">Ty 2 radky doplnim, koukam ze struktura
      je lokalni promenna a asi zrovna ty neinicializovane hodnoty u mne
      sedly. <br>
    </div>
    <div class="moz-cite-prefix">Vzal jsem jinak kod, jak ho vytvoril
      konfigurator a upravil, funguje mi to vsechno vcetne autopoolingu,
      je to naknec velmi podobne koncipovano jako QSPI u treba F7, jen
      to muze mit az 8 I/O. Skoda, ze nejde zvolit varianta LL knihoven,
      stejne mam uz DS teto periferie dokonale nastudovany, jak jsem se
      s tim drbal :-D<br>
    </div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">Ale mam takovy dojem, ze cim novejsi
      rada STM, tim vic jsou knihovny site tak nejak horkou jehlou...<br>
    </div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">Dne 14.12.2018 v 12:50 Tomáš Hamouz
      napsal(a):<br>
    </div>
    <blockquote type="cite"
      cite="mid:1905609203.20181214125000@divesoft.cz">
      <title>Re: STM32L4R problem s OCTOSPI</title>
      <meta http-equiv="Content-Type" content="text/html;
        charset=ISO-8859-2">
      <span style=" font-family:'Courier New'; font-size: 10pt;">Měl
        jsem s tím také problém, Autopolling se mi také nepodařilo
        rozeběhnout, ale je fakt že jsem se o to nijak extra nesnažil.<br>
        Potřeboval jsem to rozeběhnout v režimu v podstatě
        kompatibilnímu se stadardní SPI pamětí, jen rychlejší.<br>
        Nakonec jsem jen použil kód z inicializace a zbytek jen jako
        inspiraci. Rozhodně to co vypadlo z Cube moc použitelné nebylo
        (ano, vím, zhřešil jsem a použil Cube a ještě měl hříšné
        myšlenky že by mi to usnadnilo práci).<br>
        <br>
        Narazil jsme na pár zádrhelů:<br>
        V Initu  :<br>
          Před voláním HAL_OSPIM_Config jsem musel přidat ještě tyto
        řádky:<br>
            OSPIM_Cfg_Struct.DQSPort = 1;<br>
            OSPIM_Cfg_Struct.IOHighPort = HAL_OSPIM_IOPORT_1_HIGH;<br>
           jinak mi to generovalo Hard fault výjimku<br>
        <br>
        Další zádrhel je že dummy byty se zdávají jako počet hodinových
        cyklů, nikoliv počet bytů. Tzn. ve standardním SPI x8, v QSPI
        x2.<br>
        <br>
        Tomáš<br>
        <br>
        <br>
        <br>
      </span>
      <table bgcolor="#ffffff">
        <tbody>
          <tr>
            <td width="2" bgcolor="#0000ff"><br>
            </td>
            <td width="1155"><span style=" font-family:'courier new';
                font-size: 10pt;">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<br>
                Problem je ve vygenerovane  inicializaci, ktera vypada
                takto:<br>
                /* OCTOSPI1 init function */<br>
                void MX_OCTOSPI1_Init(void)<br>
                {<br>
                  OSPIM_CfgTypeDef OSPIM_Cfg_Struct;<br>
                  OSPI_AutoPollingTypeDef cfg;<br>
                <br>
                  hospi1.Instance = OCTOSPI1;<br>
                  hospi1.Init.FifoThreshold = 1;<br>
                  hospi1.Init.DualQuad = HAL_OSPI_DUALQUAD_DISABLE;<br>
                  hospi1.Init.MemoryType = HAL_OSPI_MEMTYPE_MICRON;<br>
                  hospi1.Init.DeviceSize = 22;<br>
                  hospi1.Init.ChipSelectHighTime = 1;<br>
                  hospi1.Init.FreeRunningClock =
                HAL_OSPI_FREERUNCLK_DISABLE;<br>
                  hospi1.Init.ClockMode = HAL_OSPI_CLOCK_MODE_0;<br>
                  hospi1.Init.WrapSize = HAL_OSPI_WRAP_NOT_SUPPORTED;<br>
                  hospi1.Init.ClockPrescaler = 3;<br>
                  hospi1.Init.SampleShifting =
                HAL_OSPI_SAMPLE_SHIFTING_NONE;<br>
                  hospi1.Init.DelayHoldQuarterCycle =
                HAL_OSPI_DHQC_DISABLE;<br>
                  hospi1.Init.ChipSelectBoundary = 0;<br>
                  if (HAL_OSPI_Init(&hospi1) != HAL_OK)<br>
                  {<br>
                    _Error_Handler(__FILE__, __LINE__);<br>
                  }<br>
                <br>
                  OSPIM_Cfg_Struct.ClkPort = 1;<br>
                  OSPIM_Cfg_Struct.NCSPort = 1;<br>
                  OSPIM_Cfg_Struct.IOLowPort = HAL_OSPIM_IOPORT_1_LOW;<br>
                  if (HAL_OSPIM_Config(&hospi1,
                &OSPIM_Cfg_Struct, HAL_OSPI_TIMEOUT_DEFAULT_VALUE)
                != HAL_OK)<br>
                  {<br>
                    _Error_Handler(__FILE__, __LINE__);<br>
                  }<br>
                <br>
                  cfg.Match = 0;<br>
                  cfg.Mask = 1;<br>
                  cfg.MatchMode = HAL_OSPI_MATCH_MODE_AND;<br>
                  cfg.AutomaticStop = HAL_OSPI_AUTOMATIC_STOP_ENABLE;<br>
                  cfg.Interval = 0;<br>
                  <span style=" color: #ff0000;">if
                  (HAL_OSPI_AutoPolling(&hospi1, &cfg,
                  HAL_OSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)<br>
                  <span style=" color: #000000;">  {<br>
                        _Error_Handler(__FILE__, __LINE__);<br>
                      }<br>
                    <br>
                      if (HAL_OSPI_AutoPolling_IT(&hospi1, &cfg)
                    != HAL_OK)<br>
                      {<br>
                        _Error_Handler(__FILE__, __LINE__);<br>
                      }<br>
                    <br>
                    }<br>
                    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...<br>
                    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...<br>
                    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...<br>
                    <br>
                  </span></span></span></td>
          </tr>
        </tbody>
      </table>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
HW-list mailing list  -  sponsored by <a class="moz-txt-link-abbreviated" href="http://www.HW.cz">www.HW.cz</a>
<a class="moz-txt-link-abbreviated" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a>
<a class="moz-txt-link-freetext" href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
    </blockquote>
    <p><br>
    </p>
  </body>
</html>