This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

SPIM TASK_START does not work

Hello, When I call TASK_START in SPI Master it does not start a transfer. According to registers all seems to be set.

I found what was the problem. When I called TASKS_SUSPEND at the end of previous transfer it effectively blocked TASK_START. I did fix it by calling first TASK_RESUME (it does not harm anything if this is called even when TASK_SUSPEND was not called). And only then calling TASK_START.

My questions are:

Are you aware that it is quite hell to debug SPIM module when this SUSPEND bit is not visible in registers?

Are you going to add register (for example EVENTS_SUSPEND) bit so this state is visible during debugging? so user could see why the SPIM block is not started...

Maybe would you think of changing TASK_START behavior so in future chip it would override TASKS_SUSPEND? To me this might make sense...

Would you add this to nRF52832 documentation? Tragically TASKS_SUSPEND and TASKS_RESUME are only in table 68 but there is no description of behavior. So one even would not get the important information that TASK_SUSPEND would prevent TASK_START. At least this could (an IMO shall) be quickly done...

Parents
  • Hi Vit,

    I am afraid that I do not know of any plans for revising the SPIM peripheral on the nRF52 , i.e. it is unlikely that an EVENTS_SUSPENDED event will be added.

    However, I agree that this behaviour should be stated in the nRF52832 Product Specification, i.e. every TASKS_SUSPEND must be followed by a TASKS_RESUME before a new SPI transaction is started using TASKS_START.

    I have reported this internally so that the product specification may be updated to reflect this.

    Best regards

    Bjørn

Reply
  • Hi Vit,

    I am afraid that I do not know of any plans for revising the SPIM peripheral on the nRF52 , i.e. it is unlikely that an EVENTS_SUSPENDED event will be added.

    However, I agree that this behaviour should be stated in the nRF52832 Product Specification, i.e. every TASKS_SUSPEND must be followed by a TASKS_RESUME before a new SPI transaction is started using TASKS_START.

    I have reported this internally so that the product specification may be updated to reflect this.

    Best regards

    Bjørn

Children
No Data
Related