<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">Asi nepouzivate HAL API? Mozna by se
      tam dalo inspirovat, pro SPi je tam tusim funkce TransmitDMA,
      ReceiveDMA a TransmitReceiveDMA</div>
    <div class="moz-cite-prefix">Ale ted jsem to nekonroloval.</div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">Dne 23.06.2021 v 9:37 Martin Locker
      napsal(a):<br>
    </div>
    <blockquote type="cite"
      cite="mid:dec7a5c6500ce5f2edd82428e6e7da42@vosrk.cz">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div class="iw_mail" dir="ltr" style="font-size: 13px;">
        <div>Zdravím,</div>
        <div><br>
        </div>
        <div>narazil jsem asi na moje nepochopení SPI s využitím DMA.</div>
        <div><br>
        </div>
        <div>Mám následující úlohu:</div>
        <div>1. ze zařízení, kde je STM32 (STM32F103) jako SPI slave
          periodicky vyčítám data (64B),</div>
        <div>z nadřízeného systému je vyžádání dat iniciované na jednom
          pinu (vnější přerušení)</div>
        <div>2. občas potřebuji poslat příkaz pro změnu chování (8B) do
          slave</div>
        <div><br>
        </div>
        <div>Protože to STM32 je docela zaměstnané, chtěl jsme využít
          DMA pro SPI.</div>
        <div>Pokud udělám jen to odesílání dat (DMA na TX, buffer 64B),
          tak to funguje ok.</div>
        <div>Pokud zapnu DMA na RX (buffer 8B) i TX, tak pokud jen
          odesílám data - ok, pokud ale přijde příkaz shora, tj. přijmu
          těch 8B, tak se odesílání posune od těch 8B - očekávaný stav
          (zatím jsem to vyřešil tím, že přijímám také 64B, ale to je
          plýtvání časem).</div>
        <div><br>
        </div>
        <div>Další pokus byl mít zapnuto DMA jen na příjem, pokud přijde
          požadavek na data, tak vypnu DMA na přijmu a nastavím DMA na
          vysílání (po odeslání to vrátím). Pokud pouze posílám data,
          tak ok. Jakmile však něco přijmu, tak se to nějak posune a
          první vysílaný znak je 0 a pak teprve následuje obsah tx
          bufferu.</div>
        <div><br>
        </div>
        <div>Asi se tam do odesílacího registru dostane při tom zapnutí
          něco z toho přijmu. </div>
        <div>Jak toto řešit? Díky za připomínky.</div>
        <div><br>
        </div>
        <div class="iw-signature">
          <div>S přáním pevného zdraví</div>
          <div>Martin Locker</div>
        </div>
      </div>
      <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>