This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Why should PSELx = 0 when the APB transaction is completed?

It would seem that if I let PSELx stay at its existing value at the end of a transaction, rather than unconditionally setting it to 0, it would reduce power consumption, since PSELx wouldn't have to change when the next transaction selects the same PSELx.
This is certainly an advantage.

Nevertheless, why does the APB spec. require PSELx to be set to 0 at the end of a transaction?

Parents
  • I should add that you can use the APB protocol with combinatorial logic, using PSELx & ! PENABLE to open a latch to sample PADDR during the "setup" phase (so PADDR would be valid as the latch closes), and the PSELx & PENABLE to then enable data latching or driving during the "access" phase.

    However virtually all designs nowadays use synchronous logic, so it would be the registering signals on PCLK rising edges that would be the standard solution.

Reply
  • I should add that you can use the APB protocol with combinatorial logic, using PSELx & ! PENABLE to open a latch to sample PADDR during the "setup" phase (so PADDR would be valid as the latch closes), and the PSELx & PENABLE to then enable data latching or driving during the "access" phase.

    However virtually all designs nowadays use synchronous logic, so it would be the registering signals on PCLK rising edges that would be the standard solution.

Children