I was reading the NHS3152 data sheet and came across this advise:
"When on NFC power only (passive operation), connecting one or more 100 nF external capacitors in parallel to a GPIO pad and setting that pad as an output driven to logic 1, is advised. A high-drive pin must be chosen and several pins can be connected in parallel."
It sounds like useful advice so I was just wondering what's the rationale behind it? I am currently trying to power my NHS3152 demo board over NFC (1.8V between GND and GPIO) to read a photodetector (~1.2kOhms dark resistance) using the DAC-ADC-I2D setup and the board keeps restarting even though the DAC is only applying a voltage of 1.2V.
It, however, doesn't restart if I use the GPIO pin to drive the detector instead of the DAC and I am able to read values on the I2D, but I am not sure if that's safe to do in the long run. So I was thinking I can avoid doing the latter if I am able to overcome the issue with the DAC-ADC-I2D setup and this advice (in the data sheet) seemed like it might be related.
解決済! 解決策の投稿を見る。
Hi,
Some thoughts:
Kind regards,
Dries.
Hi,
The external capacitors help in reducing the voltage drop when performing taxing operations. Writing to NVM comes directly to mind, but generally everything you do will add to the load, and in a passive setup, you only start with 1.85V.
It definitely is useful advice :-), but needs corresponding firmware that ensures the capacitors are charged slowly prior to performing a short, taxing operation.
To know how much leniency you have left (I'm guessing: almost nothing), set an unused PIO high in output mode and measure the Voltage using a probe, then watch it drop when the operations are started.
In your setup, I would suggest (if not done already):
Keep in mind that some operations require a minimum SysClock. See the firmware documentation in the SDK (firmware.html > SW Clock Restrictions).
KR,
Dries.
Hi @driesmoors,
Thank you for the detailed explanation. Just to ensure I am connecting the right pins, which of the 12 pins are the high current GPIO? I remember reading in the data sheet it was 4 of them but I don't remember seeing the exact numbers.
I shall also try the other suggestions later today. I had tried attaching a resistor in series however that made it impossible to distinguish between dark and light (our sensor is custom made and quite noisy, It draws a current of just 0.16mA though).
Essentially, the DAC-Sensor-I2D/ADC setup works (as in the board doesn't restart but output remains noisy) if I use a lower voltage value of 1500. Is it safe to replace the DAC with the GPIO pin to drive the sensor since that seemed to be preventing board restarts too?
Hi,
From the NHS3152 datasheet (Functional description > PIO0 current source mode)
PIO0_3, PIO0_7, PIO0_10 and PIO0_11 are high-source pads that can deliver up to
20 mA to the load.
Pins 10 and 11 are needed for a debug connection. Be careful not to lock yourself out!
Is it safe to replace the DAC with the GPIO pin to drive the sensor
Yes. But you will have to measure the voltage being output, of course.
KR,
Dries.
Hi,
Thank you for pointing me in the right direction!
I tried switching the EEPROM off while DAC operations were underway and that prevented the board from restarting!
However, we are continuously interrogating this photodetector (essentially a while loop runs until the shared memory buffer is full, the data is then written to EEPROM, acquired by an android app and the process repeats until NFC is taken away). If I constantly switch the EEPROM on and off in this loop, wouldn't I hit the 10,000 cycles limit much quicker since I now have two sets of flushes occurring (during DeInit and during my write operations (486 bytes of data is written each time)?
Would you recommend an alternative way of reducing EEPROM wear or powering down using peripheral access functions like Chip_Syscon_Peripheral_DisablePower? Instead of writing all the bytes, I could only write bytes that have changed for instance?
Hi,
Some thoughts:
Kind regards,
Dries.
I think I had misunderstood the shared memory as being part of the EEPROM. Thank you for clarifying! Have been able to get it all to work now.
Thank you once again for all your help with debugging this. Since I am only concerned with real time data and can make the assumption of the reader always being in range, I was able to turn off the use of EEPROM and stick to using the shared memory!
Hello @acuom ,
Thanks for your information.
>> 100 nF external capacitors
The capacitor are decoupling capacitors. About the function of decoupling capacitors you can find more information on internet.
Have a nice day.
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-----------------------------------------------------------------------------
Just following up on this in case someone can help!?