Intel® Agilex™ Hard Processor System Technical Reference Manual

ID 683567
Date 2/14/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

16.4.6. Voltage Switching

This section describes the general steps to switch voltage level.

The SD/MMC cards support various operating voltages, for example 1.8V and 3.3V. If you have a card which is at 1.8V and you eject it and replace it with another card, which is 3.3V, then voltage switching is required.

In order to have the right voltage level to power the card, separate devices on the board are required: voltage translation transceiver and power regulator/supply. When the software is aware that voltage switching is needed, it notifies the power regulator that it needs to supply another voltage level to the card (switching between 1.8V and 3.3V).

Many SD cards have an option to signal at 1.8 or 3.3 V, however the initial power-up voltage requirement is 3.3V. To support these different voltage requirements, external transceivers are needed.

The general steps to switch the voltage level requires you to use a SD/MMC voltage-translation transceiver in between the HPS and the SD/MMC card.

Figure 53. Voltage Switching Command Flow Diagram
(*1) Note: Card returns busy when:
  • Card executes internal initialization process
  • Card is High or Extended capacity SD Memory Card and host does not support High

The following outlines the steps for the voltage switch programming sequence.

  1. Software Driver starts CMD0, which selects the bus mode as SD.
  2. After the bus is in SD card mode, CMD8 is started in order to verify if the card is compatible with the SD Memory Card Specification, Version 2.00.
    CMD8 determines if the card is capable of working within the host supply voltage specified in the VHS (19:16) field of the CMD; the card supports the current host voltage if a response to CMD8 is received.
  3. ACMD 41 is started.
    The response to this command informs the software if the card supports voltage switching; bits 38, 36, and 32 are checked by the card argument of ACMD41.
    Figure 54. ACMD41 Argument
    1. Bit 30 informs the card if host supports SDHC/SDXC or not; this bit should be set to 1'b1.
    2. Bit 28 can be either 1 or 0.
    3. Bit 24 should be set to 1'b1, indicating that the host is capable of voltage switching.
      Figure 55. ACMD41 Response (R3)
    4. Bit 30 – If set to 1'b1, card supports SDHC/SDXC; if set to 1'b0, card supports only SDSC.
    5. Bit 24 – If set to 1'b1, card supports voltage switching and is ready for the switch.
    6. Bit 31 – If set to 1'b1, initialization is over; if set to 1'b0, means initialization in process

  4. If the card supports voltage switching, then the software must perform the steps discussed for either the “Voltage Switch Normal Scenario” or the “Voltage Switch Error Scenario”, located in the Synopsys® DesignWare Cores Mobile Storage Host Databook.