VMA11 -Stop the radio

Hello
I’d like to know how to put on the stand or stand by the radio on the VMA11 shield . Because there is a radioON but no RadioOFF.

Thank you

It is explained in the datasheet for the 470X chip (4702=FMradio, 4703=FMradio with RDS).

Simplified, the chip requires the following actions:
1/ power
2/ establish communication protocol on I2C

From then, you can read and write registers over I2C.

The POWERCFG register (0x02) contains a ENABLE (0x02:0) and a ‘DISABLE’ (0x02:6) bit.
Simplified, on start, both bits are 0.
To start the radio working, you set ‘ENABLE’ to ‘1’ . This iw what is done in the ‘RadioOn()’ function of the example.
If you want to stop the radio (in a software controlled manner), the you can set ‘DISABLE’ to ‘1’. There is no such function implemented.

If you are interested in many more possibilities of this chip, see the datasheet [DATASHEET]

At the end of the datasheet you’ll find links to further ressources (Application notes).

Thank DirkH

Thank you for that answer

Unfortunately I don’t know the I2S protocol well and I don’t see how to change a bit on this function simply.
How to send us just a bit 1 on the POWERCFG register
My goal is to stop the radio to earn energy
thank you in advance

Register 0x02 = ‘POWERCFG’
ENABLE = bit 0 of this register
DISABLE =bit 6 of this register

On reset, both ENABLE and DISABLE bits are 0.
You have to set ENABLE=1 to ask the chip to start.

readRegisters(); //Copy the current register values into the software variables
si4703_registers[POWERCFG] = si4703_registers[POWERCFG] | 0x0001;	//mask in the ENSABLE bit (bit 0 of register 0x02)
updateRegisters();	//copy the variables to the chip

If you want to stop the radio: set DISABLE=1 to ask the chip to stop.
You should not touch the ENABLE bit.

readRegisters(); //Copy the current register values into the software variables
si4703_registers[POWERCFG] = si4703_registers[POWERCFG] | 0x0040;	//mask in the DISABLE bit
updateRegisters();	//copy the variables to the chip

When the chip has finished the powerdown cycle, both bits will be reset to 0
You should wait and check the status, e.g. in a loop:

while(true)
{
  readRegisters(); //get fresh register data
  if (si4703_registers[POWERCFG] & 0x0041 == 0) break;	//if both bits are 0 then break out of the infinite loop
}

The chip is now ‘off’, whilst keeping all settings (as long as power is applied).

To start the chip up again, set ENABLE to 1:

readRegisters(); //Copy the current register values into the software variables
si4703_registers[POWERCFG] = si4703_registers[POWERCFG] | 0x0001;	//mask in the ENSABLE bit (bit 0 of register 0x02)
updateRegisters();	//copy the variables to the chip

See data sheet:

And application note AN230 - par 2.1.2 and par 3.2.1

By the way, I guess it’s a typo, but the 2-wire protocol is I2C, not I2S (which is a completely different protocol)

A new category was created for the VMA11, please post there.