3. AHB up/down converter

The STM32WB07xC and STM32WB06xC devices can support several system clock frequencies from 1 MHz to 64 MHz.

The MR_BLE/Radio sub-system IP does not need more than 32 MHz to achieve the processing of the radio transfers while the system (CPU, DMA, memories) may require higher performance for application purpose.

To avoid useless overconsumption, AHB up/down converter block has been added to introduce an adjustable divider by one, two or four on AHB and APB bus of the MR_BLE (linked to AHBRF / APB2 bridge) versus the system bus matrix frequency. This block allows dividing by one, two or four the system clock for the MR_BLE IP of the device.

When the system and the MR_BLE share the same frequency, the AHB up/down converter block only transfers the AHB signals from one clock domain to the other.

Note: The system clock must be at 16/32/64 MHz and always equal or faster than MR_BLE clock when radio is used (no other frequencies).

3.1 AHB up/down converter description

The AHB up/down converter role is to allow STM32WB07xC and STM32WB06xC devices to support a fast system clock (up to 64 MHz).

The AHBUPCONV block manages:

Figure 3. AHB up/down converter

Block diagram of the AHB up/down converter. The diagram is split by a vertical dashed line into two clock domains. The left domain (16 MHz or 32 MHz) contains the MR_BLE IP (with AHB and APB interfaces), an APB/AHB bridge, and a 'Down' converter block (4x / 2x / 1x). The right domain (16 MHz, 32 MHz or 64 MHz) contains the System bus matrix (with AHB slave input and master output), an 'Up' converter block (1x / 2x / 4x), and an RCC block. The 'Up' converter is connected to the System bus matrix and the MR_BLE IP's AHB interface. The 'Down' converter is connected to the System bus matrix's master output and the APB/AHB bridge. Control and status data lines connect the RCC to both converter blocks. An interrupt line goes from the RCC to the CPU.
Block diagram of the AHB up/down converter. The diagram is split by a vertical dashed line into two clock domains. The left domain (16 MHz or 32 MHz) contains the MR_BLE IP (with AHB and APB interfaces), an APB/AHB bridge, and a 'Down' converter block (4x / 2x / 1x). The right domain (16 MHz, 32 MHz or 64 MHz) contains the System bus matrix (with AHB slave input and master output), an 'Up' converter block (1x / 2x / 4x), and an RCC block. The 'Up' converter is connected to the System bus matrix and the MR_BLE IP's AHB interface. The 'Down' converter is connected to the System bus matrix's master output and the APB/AHB bridge. Control and status data lines connect the RCC to both converter blocks. An interrupt line goes from the RCC to the CPU.

The management of data transfer versus clock domain and possible clock switch request is done using state machines:

When a CPU/system clock frequency switch is needed (activate or deactivate the divider by two or four between the system and the MR_BLE), the user must request the new system clock targeted frequency in the RCC_CSCMDR.REQUEST bit (see Section 6.6.6: Clock switch command register (RCC_CSCMDR) for details).

When receiving a new divider ratio to apply (from the RCC), the AHBUPCONV block:

Note: To respect the AHB lite protocol, the HREADY signal is fallen down only after the address phase of a new transfer, the new transfer phase data being stored internally in the converter.

If an AHB transfer is on-going, it waits until the current AHB transfer ends and then holds the AHB traffic as explained above.