cancel
Showing results for 
Search instead for 
Did you mean: 

What is the pulse duration for a ManageGPO SET command? Can I use the NFC Tap (IOS) app to test this? Trying to find a way to trigger a latched switch with RF energy.

AP.4
Associate

The datasheet shows the GPO for the ST25DVxx-IE pulling low indefinitely when a ManageGPO set command is issued. How long is the GPO pulled low after this set command?

Is there a way to issue this command on the IOS Tap app? I see the coreNFC command there but it fails with a response error. This may have to do with my chip settings. Do you have any documentation or instructions on how I can issue this command thru the app successfully?

Ultimately, we are trying to figure out if there is a way to use the GPO low to trigger a latching switch to turn our microprocessor on and most latching implementations require a low pulse duration > 50ms.

1 ACCEPTED SOLUTION

Accepted Solutions
JL. Lebon
ST Employee

​Hello,

There is two modes for ManageGPO command: set a level (GPO/RF_USER) or send a pulse (GPO/RF_INTERRUPT).

In RF_INTERRUPT mode, the GPO pin level will stays active (low level in case of ST25DVxx-IE) for a few micro seconds after the End Of Frame of the ManageGPO response. The duration of the pulse is set with the IT_TIME configuration register and can vary from 301us to 37us. In order to trigger the pulse, the "GPOVAL" parameter of the ManageGPO command shall have its MSB set to 1 (i.e. 0x80).

In RF_USER mode, the GPO pin level is permanently set to either active or inactive state right after EOF of the ManageGPO response. Permanently, means until the level is changed again by a new ManageGPO command, the tag is not powered anymore, or the GPO output is disabled. The level is set with the GPOVAL byte parameter of the ManageGPO command. Set it to 0x01 to set GPO pin to active level (low in case of ST25DVxx-IE) or 0x00 to set GPO to released state (high in our case).

So, in case you want to have a pulse duration > 50ms, you need to use the ManageGPO command in RF_USER mode. You can send a first ManageGPO command to set GPO to low level, then wait a few ms and send a second ManageGPO command to set GPO level to high. Nevertheless, I think it will be difficult to achieve exact timing with iOS, since I'm not sure you can control exactly the timing between two commands. You also have to take into account the duration of the second ManageGPO command, since the GPO level will be set back to 1 only at the end of the response of the command. In non addressed mode, the ManageGPO command + response duration is about 3.8ms, and in addressed mode it is about 6.2ms

Please note that in order to use the ManageGPO command, you will need first to enable the RF_USER and the GPO output in the GPO static register (RF_USER_EN bit 0 and GPO_EN bit 7).

Best regards.

View solution in original post

1 REPLY 1
JL. Lebon
ST Employee

​Hello,

There is two modes for ManageGPO command: set a level (GPO/RF_USER) or send a pulse (GPO/RF_INTERRUPT).

In RF_INTERRUPT mode, the GPO pin level will stays active (low level in case of ST25DVxx-IE) for a few micro seconds after the End Of Frame of the ManageGPO response. The duration of the pulse is set with the IT_TIME configuration register and can vary from 301us to 37us. In order to trigger the pulse, the "GPOVAL" parameter of the ManageGPO command shall have its MSB set to 1 (i.e. 0x80).

In RF_USER mode, the GPO pin level is permanently set to either active or inactive state right after EOF of the ManageGPO response. Permanently, means until the level is changed again by a new ManageGPO command, the tag is not powered anymore, or the GPO output is disabled. The level is set with the GPOVAL byte parameter of the ManageGPO command. Set it to 0x01 to set GPO pin to active level (low in case of ST25DVxx-IE) or 0x00 to set GPO to released state (high in our case).

So, in case you want to have a pulse duration > 50ms, you need to use the ManageGPO command in RF_USER mode. You can send a first ManageGPO command to set GPO to low level, then wait a few ms and send a second ManageGPO command to set GPO level to high. Nevertheless, I think it will be difficult to achieve exact timing with iOS, since I'm not sure you can control exactly the timing between two commands. You also have to take into account the duration of the second ManageGPO command, since the GPO level will be set back to 1 only at the end of the response of the command. In non addressed mode, the ManageGPO command + response duration is about 3.8ms, and in addressed mode it is about 6.2ms

Please note that in order to use the ManageGPO command, you will need first to enable the RF_USER and the GPO output in the GPO static register (RF_USER_EN bit 0 and GPO_EN bit 7).

Best regards.