Skip to main content
cj blades
Associate II
February 1, 2017
Question

why does enabling PFCTRL cause my DMA IRQ not to happen?

  • February 1, 2017
  • 2 replies
  • 1240 views
Posted on February 01, 2017 at 22:14

I'm trying to implement a SPI slave on STMF410  using NSS_HARD_INPUT

Slave should receive data of unknown length via DMA

Slave transmissions are of known length so master knows to keep  the SlaveSelect line active for the correct time.

I'm am expecting that when SS line is released, DMA should complete and execute the DMA complete IRQ

But ifI initial the DMA with the PFCTRL bit set, I no longer get the DMA  IRQ to execute.  

The Tx DMA never becomes READY and is always BUSY

Has anybody else tried SPI Slave with PFCTRL

    This topic has been closed for replies.

    2 replies

    waclawek.jan
    Super User
    February 1, 2017
    Posted on February 01, 2017 at 23:07

    I'm trying to implement a SPI slave on STMF410

    Do you mean STM32F410?

    I'm am expecting that when SS line is released, DMA should complete and execute the DMA complete IRQ

    Why are you expecting that, have you seen such behaviour described in the documentation (RM0401, namely)?

    But ifI initial the DMA with the PFCTRL bit set, I no longer get the DMA  IRQ to execute.  

    That is expected. In STM32F410 there is no peripheral capable of being the Flow Controller, see RM0401 rev.2, ch. 8.3.15  Flow controller (it's written there in a cumbersome way resulting probably from automatic datasheet generation, as no peripherals listed after the 'This feature is only supported for peripherals which are able to signal the end of the transfer, that is:' sentence).

    There is a

    https://community.st.com/community/stm32-community/stm32-forum/blog/2016/12/30/2017-stm32-wish-list

    active currently, where you can propose STM32 hardware enhancements; don't expect they materialize anytime soon if at all.

    JW

    cj blades
    cj bladesAuthor
    Associate II
    February 1, 2017
    Posted on February 01, 2017 at 23:16

    Yes STM32F410

    The behavior was IMPLIED in the datasheet, but I now see where the list of (STM32F410)  peripherals that support this feature is <null>

    Thanks for your VERY QUICK response.

    Amel NASRI
    Technical Moderator
    February 14, 2017
    To give better visibility on the answered topics, please click on "Best Answer" on the reply which solved your issue or answered your question.