I have a PSOC 4100S Plus on a custom board and am running a sensing circuit with an active shield and the shield tank capacitor enabled. When looking more closely at the startup and pre-charging I noticed that the tank capacitor lags the mod capacitor and sensor electrode when pre-charging (even though my understanding is they are all connected to the same bus). Due to this lag, and slower charge rate during sampling, there exists a potential between the shield and sensor traces which I believe is impacting our measurement. I have looked through the documentation and technical reference, but the isn't much explicit information on how the pre-charging works and how the internal switch network is configured. Is there any additional details on how this functions or insight as to why the shield tank is lagging. The problem doesn't appear to exist if the tank capacitor is disabled.
Yellow is sensing pad, Blue is shield tank capacitor.
A shield tank capacitor is recommended only if the shield cannot be driven without a tank. For shield with Cp than 100pF, a tank capacitor is not mandatory. The shield tank adds a small series resistance to the shield pin's path, thereby causing a resistive drop. Also, note that you need to compare the shield waveform (the charge-discharge cycle) with that of the sensor and not the tank capacitor's potential directly.
The shield waveform must be identical to the sensor waveform with respect to amplitude, frequency, and phase.
Additionally, please note that there are coarse and fine init cycles, where CapSense performs dummy scans to make sure that the charges are equal to Vref (By default, there are 10 cycles of dummy scans called fine init cycles). During this time, CapSense does not measure the capacitance, the raw count is not changed. It is only after fine init cycles that the CapSense hardware starts measuring raw counts.
I was originally scoping the shield waveform and that is how I discovered the amplitude difference. I traced this back to the potential on the shield tank being lower than expected. The rise time of the shield seems fine during each cycle, but it never reaches the sensing pad's potential until much later in the sensing cycles. Even with some additional resistance on the shield tank capacitor I would have expected it to charge up to the reference voltage before starting. Is there a way to alter the pre-charge behavior so it gets to the reference voltage?
Yellow is sensing pad, Blue is shield pad.
Can you please let me know the VDDA supply that you are using in this design? Can you also go to the design wide resources -> System tab and make sure that the VDDD and VDDA are set correctly? This would make sure that the VREF is set correctly in the component.
Please let me know the pin that is used for Cmod and Ctank capacitor. Is the value used 2.2nF and 10nF respectively?
Also note that a tank is required only if the Cp of the shield is very high (>100 pF). Otherwise, a tank cap is not mandatory.
We are opperating at 3.3V and have that set correctly in the system settings.
Cmod is on P4.1 and Csh is on 4.2, they are the recommended 2.2nF and 10nF respectively.
I was wondering if the different charge rates are simply due to the different capacitor sizes charging through equivalent switch resistances. In this case, would it make sense to try using a Csh of 2.2nF to match the Cmod?
I tried swapping the Csh to 2.2nF as well as just swapping the pins (2.2nF Tank, 10nF Mod). In both cases there is still a similar offset between the shield and sensor pads' voltage after pre-charging. This seems to imply that it is more about having the shield capacitor enabled rather than its relative magnitude compared to the mod capacitor.
I did a bit more looking at the Shield SW Resistance specifically and it only appears to have an impact when the shield tank is disabled. This is also perplexing as my interpretation is that the switch resistance should be downstream of the tank capacitor and thus affect both configurations similarly.
Yellow : Sense Pad, Blue: Shield Pad
Any insights would be helpful.
Ideally, you should use the shield tank only if the Cp of the shield is greater than 100pF. Can you try adding a little higher Cp externally? You can simply add a capacitor in parallel to the shield to increase the Cp of the shield. If you have a 100pF cap that you can use, then please connect it in parallel with the shield and check the performance.
The value of the tank capacitor does not affect the performance as long as it is 10 times larger than the parasitic capacitance of the shield hatch. You might start seeing a degradation in performance with a very low value of Ctank, but since the hatch pattern also has a small Cp, it would not be evident.