How to make reading current consumption through CSP/CSN sensor in CCG5?

Announcements

Live Webinar: USB-C adoption. Simple & Cost-efficient solutions | April 18th @9am or 5pm CEST. Register now !

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
VaVo_2449711
Level 1
Level 1
First like given

Hello,

The CCG5 has a current sensing sensor for detecting current flowing and performing current limiting.


I would like to use this function (sensing CSP/CSN) to get real value of current passing through kelvin sensor using ADC.


I looked through all the available sources, but I did not find the use of ADC to get value from current sensor.


But after reviewing new SDK 3.3, it is clear that for CCG5C it is possible to use VBUS current monitoring along with VBUS voltage.

How can I get values of current ​​from CSP/CSN sensor (also known as CSA in the code) on CCG5, using ADC or any other method?

Thanks in advance.

0 Likes
3 Replies
ShifangZ_26
Moderator
Moderator
Moderator
10 likes given 250 sign-ins 1000 replies posted

Hi ,

CCG5 can refer below implement for CCG5C/6.

You could use latest SDK V3.3 (LINK: https://www.cypress.com/documentation/software-and-drivers/ez-pd-host-software-development-kit ). CCG5 can use EZ-PD HOST SDK.

You could get a API in the firmware or EZ-PDTM CCGx Firmware Stack API Reference Guide Version 3.3.0

In firmware @file pdss_mxhal.c, function uint16_t pd_hal_measure_vbus_cur(uint8_t port).

In EZ-PDTM CCGx Firmware Stack API Reference Guide Version 3.3.0, section 6.24.5.48 pd_hal_measure_vbus_cur().

You could use this API to get VBUS current value which is sensing CSP/CSN.

Best Regards,

Lisa

0 Likes

Hi,

Do I need to change something here that, since for CCG5 return always 0?

-----------------------------------

/* Sample the VBus current using ADC. */

uint16_t pd_hal_measure_vbus_cur(uint8_t port)

{

    uint16_t current = 0;

#if ((defined(CCG5C)) || (defined(CCG6)))

....
#endif /* ((defined(CCG5C)) || (defined(CCG6))) */


#if (defined(CCG3PA) || defined(CCG3PA2))
...
#endif /* CCGx */   

return current;
----------------------------------

Thanks.

0 Likes

Hi ,

Curently, the API is connecting ADC to the CSA stage 1 output loads the CSA output, and hence ends up making the OCP operation inaccurate.

So, this option is not recommended for customer use on CCG5. If you are not care about this, you can comment out #if ((defined(CCG5C)) || (defined(CCG6))) or change it to #if ((defined(CCG5)) || (defined(CCG6)))

Best Regards,

Lisa

0 Likes