- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Community,
I'm able to configure 5A in SrcCaps only for Fixed Supply type PDOs,
If I want to configure 5A for APDO supplytype, I'm unable to configure.
This can be considered as continuation to the below thread:
Can somebody help me out here. @PranavaYN ?
Thanks in advance,
Pranay
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Pranay,
I tested on CY4532 that the max_cur of APDO could be updated during running time. You can see the cc log attached below - the original FW max current set is 3A.
I have used the method to update all values of Source PDO, not just update specific items. Just as the below capture shows-
Thanks,
Fred
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Pranay,
Could you please try to use the EZ-PD Configuration Utility and set the PDO with PPS?
And then you can set the APDO with 5A for the supply type.
Best regards,
Kieran
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
hi Kieran,
Thanks for the reply,
I tried that already, By default If I configure using EZ-PD Configuration Utility and set the PDO with PPS for 5A current, I'm able o see Src Caps being advertised as 5A for PPS but if I want to configure PDOs and advertise SrcCaps in runtime, I'm unable to do so only for APDO.
I'm able to only configure APDO Max current upto 3.1A, After that if I configure for 3.2A, I'm seeing APDO Current as 0A and for 3.3A configuration I'm seeing current as 0.2A and same goes upto 5A configuration i'm seeing 1.8A.
Please let me know how I can achieve this in runtime configuration.
Thanks and regards,
Pranay
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Pranay,
How do you advertise the source capability in runtime? Use PAT USBCEE (POWER TESTER) or other software? What is your test block diagram? Do you test with E-load and set with CC Mode?
Is it the maximum load problem?
Best regards,
Kieran
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I'm not using ccg3pa DVK or any of the mentioned tools.
I'm using ccg3pa for my custom HW design. I have a CC line PD protocol analyzer to watch out for transaction happening between 2 port partners.
I have configured ccg3pa as i2c slave and connected to another master thereby sending commands over i2c interface. When received a particular command ccg3pa internally configures and initiates SrcCaps in runtime.
using below logic:
dpm_update_src_cap_mask(0,(dpm_stat->src_pdo_mask | (1 << index)));
dpm_update_src_cap(0, lPDOCount, new_pdo);
CyDelay(2);
dpm_pd_command(0, DPM_CMD_SRC_CAP_CHNG, NULL, NULL); //Send PD command about the changes in source capabilities
new_pdo is the structure that hold my required src caps like below:
pd_do_t new_pdo[MAX_NO_OF_PDO];
new_pdo[i].pps_src.max_cur = (lPDOPayload & 0x3F);
new_pdo[i].pps_src.min_volt = ((lPDOPayload >> 8 & 0xFF);
new_pdo[i].pps_src.max_volt = ((lPDOPayload >> 17) & 0xFF);
new_pdo[i].pps_src.pps_pwr_limited = ((lPDOPayload >> 27 ) & 0x01);
new_pdo[i].pps_src.apdo_type = ((lPDOPayload >> 28) & 0x03);
new_pdo[i].pps_src.supply_type = ((lPDOPayload >> 30) & 0x03);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
1. Have you updated the cable current to 5A using dpm_update_def_cable_cap()?
2. can you attach your cc log for configuring APDOs during runtime? could you see a new PD contract since you called dpm_pd_command(0, DPM_CMD_SRC_CAP_CHNG, NULL, NULL);
3. can you make sure the below values are correct? please note the unit of pps_src -> max_cur is 50mA.
dpm_update_src_cap_mask(0,(dpm_stat->src_pdo_mask | (1 << index)));
dpm_update_src_cap(0, lPDOCount, new_pdo);
pd_do_t new_pdo[MAX_NO_OF_PDO];
new_pdo[i].pps_src.max_cur = (lPDOPayload & 0x3F);
new_pdo[i].pps_src.min_volt = ((lPDOPayload >> 8 & 0xFF);
new_pdo[i].pps_src.max_volt = ((lPDOPayload >> 17) & 0xFF);
new_pdo[i].pps_src.pps_pwr_limited = ((lPDOPayload >> 27 ) & 0x01);
new_pdo[i].pps_src.apdo_type = ((lPDOPayload >> 28) & 0x03);
new_pdo[i].pps_src.supply_type = ((lPDOPayload >> 30) & 0x03);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Wang,
1. Have you updated the cable current to 5A using dpm_update_def_cable_cap()?
Yes, I did this, without using this I will not be able to advertise 5A in Fixed PDOs right.
2. can you attach your cc log for configuring APDOs during runtime? could you see a new PD contract since you called dpm_pd_command(0, DPM_CMD_SRC_CAP_CHNG
Yes, I will see a New PD Contract everytime when I configure SrcCaps in runtime using above method. Please find the respective captures and installer in below link:
3. can you make sure the below values are correct? please note the unit of pps_src -> max_cur is 50mA.
dpm_update_src_cap_mask(0,(dpm_stat->src_pdo_mask | (1 << index)));
dpm_update_src_cap(0, lPDOCount, new_pdo);
pd_do_t new_pdo[MAX_NO_OF_PDO];
new_pdo[i].pps_src.max_cur = (lPDOPayload & 0x3F);
new_pdo[i].pps_src.min_volt = ((lPDOPayload >> 8 & 0xFF);
new_pdo[i].pps_src.max_volt = ((lPDOPayload >> 17) & 0xFF);
new_pdo[i].pps_src.pps_pwr_limited = ((lPDOPayload >> 27 ) & 0x01);
new_pdo[i].pps_src.apdo_type = ((lPDOPayload >> 28) & 0x03);
new_pdo[i].pps_src.supply_type = ((lPDOPayload >> 30) & 0x03);
Yes, I re-confirmed that the data we're sending to configure above variables is proper.
Can you please try this sequence on your end and get a confirmation.
I believe it would be easy to fix if you try to configure and can reproduce issue.
Thanks and regards,
Pranay
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Pranay,
I tested on CY4532 that the max_cur of APDO could be updated during running time. You can see the cc log attached below - the original FW max current set is 3A.
I have used the method to update all values of Source PDO, not just update specific items. Just as the below capture shows-
Thanks,
Fred
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Wang,
Thanks for the solution, with this above suggested approach, I'm able to fix this issue.
But I'm curious what was wrong with my approach. It should have also work right ? why it wasn't ?
--pranay
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Pranay,
Both methods are identical in essence. I tried your manner again and the test result shows it also effective.
Apart from the 6 elements which you assigned a value, the reserved bits(rsvd1/2/3) should also be assigned with 0 explicitly. Please compare the value of new_pdo[i].pps_src with raw data(new_pdo[i].val), and check if any difference after all elemensts of new_pdo[i].pps_src get assigned values.
If there is no any difference, the test result should be same.
Thanks,
Fred
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks fred,
I was not assigning that reserved bits to zero, Will try to do that and get back to you, till then we can consider this issue as fixed and can close this issue.
Thanks for your time,
pranay.