회사일/BQ25703A2025. 12. 11. 14:26

메뉸얼에서 보던 내용중

32bit register라 어떻게 되었나 보고 있는데..

일단 bqstudio 에서는 아래처럼 A+B(low/high) 와 C+D(low/high)로 표시되는 듯.

 

'회사일 > BQ25703A' 카테고리의 다른 글

bq40z50 충전 중단 조건  (0) 2025.12.04
bq25703A ICO 설정 차이  (0) 2025.10.28
BQ25703A input voltage 갱신하기  (0) 2024.12.02
bq25703A NVDC  (0) 2024.11.29
배터리 충전  (0) 2024.11.28
Posted by 구차니
회사일/전자부품2025. 12. 10. 16:15

ti 배터리 게이지 칩 제어용 windows 프로그램 같은데 한번 깔아봄

[링크 : https://www.ti.com/tool/ko-kr/BQSTUDIO]

 

gauge 칩을 고르고

 

지금 하는건 bq40z50 인데.. r1 r2에 앞에 06 08 이런건 머지?

 

귀찮아서 Finish 누르니 장치가 없다고 한다. 그냥 OK 눌러서 쌩까고 ㄱㄱㄱ

 

먼가 그럴싸하게 나오는데 레지스터 이름은 나오지만 주소값은 없어서 흐음.. 통신 덤프라던가 로그 없나?

하단에 No free Adpator 라고 해서 무료로 사용가능한게 있나 싶어서 검색해보는데

 

검색해도 나오지만, 설정에서 보니 EV2400 이라는게 나와서 검색해보니

 

i2c to USB 장치라고 해야하나.. 아무튼 MSP430 controlled 라고 된거 보면

적당한 MSP430 보드에 펌웨어만 넣으면 되는건가 싶기도 하고..?

그 와중에 199$.. 비싸! 아니.. 이런 전용 장비 치고는 싸다고 해야하나?

[링크 : https://www.ti.com/product/EV2400/part-details/EV2400]

'회사일 > 전자부품' 카테고리의 다른 글

bq40z50 온도 값  (0) 2025.08.21
ptn5110 usb-pd rdo 응답  (0) 2025.01.15
ad5292 wiper 값  (0) 2025.01.06
ads8598  (0) 2024.11.13
ad4111  (0) 2024.11.07
Posted by 구차니
회사일/BQ25703A2025. 12. 4. 16:48

충전중에 근처에서 4W 무전기로 괴롭히니 충전 ic에서는 잘 넣어주고 있는데 충전이 중단되어서

배터리쪽에서 어떤 상태인지 확인하고 싶어서 조사중

 

의심되는건 over voltage input 이라던가 over current input 이런걸로 기대했는데

딱히 그런건 없고 over / under voltage로는 셀 관련 뿐..

 

아무튼 대충 보는데.. overload는 아닐거 같고.. SCC(Short Circuit in Charge) Protection..

전류가 일정 세기 이상으로 감지될 경우 보호모드로 들어가고 복구는 SCC:Recovery Time 만큼 SafetyStatus 레지스터의  ASCC 값이 1이면 된다.. 인가?

 

ASCC에서 A가 왜 붙는겨 -_-

그 와중에 11:10 bit가 set 된것 같은데

보라는건.. 9:8 이라...?

ASCDL (Bit 11): Short-circuit During Discharge Latch
1 = Detected
0 = Not Detected

ASCD (Bit 10): Short-circuit During Discharge
1 = Detected
0 = Not Detected

ASCCL (Bit 9): Short-circuit During Charge Latch
1 = Detected
0 = Not Detected

ASCC (Bit 8): Short-circuit During Charge
1 = Detected
0 = Not Detected

 

이건가.. 0x4878? 기본 5초?

 

이 레지스터가 맞다면.. current() < SCC Threshold[2:0]/Rsense 에서

SCC Threshold[2:0]는 7 이고... Rsense는 전압값으로 나온는데 전류를 전압으로 나누면 머가되지? 저항?

 

[링크 : https://www.ti.com/lit/ug/sluua43a/sluua43a.pdf]

'회사일 > BQ25703A' 카테고리의 다른 글

bq40z50 bqstudio  (0) 2025.12.11
bq25703A ICO 설정 차이  (0) 2025.10.28
BQ25703A input voltage 갱신하기  (0) 2024.12.02
bq25703A NVDC  (0) 2024.11.29
배터리 충전  (0) 2024.11.28
Posted by 구차니
회사일/BQ25703A2025. 10. 28. 17:00

전 시작시 전류가 너무 높게 설정되면 전류를 끌어올린다고 전압이 순간 낮아지는데, 그걸 방지하기 위해 ICO 라는게 있다.

첫 페이지에 이렇게 똭! 박혀있다.

Input Current Optimizer (ICO) to Extract Max Input Power

 

3V 이하로 떨어져서 영향을 제법 주는데

 

ICO 켜니까 이렇게 영향이 크게 줄어든다.

 

ChargeOption3 레지스터에 EN_ICO_MODE를 켜주면 된다.

 

[링크 : https://www.ti.com/lit/ds/symlink/bq25703a.pdf]

'회사일 > BQ25703A' 카테고리의 다른 글

bq40z50 bqstudio  (0) 2025.12.11
bq40z50 충전 중단 조건  (0) 2025.12.04
BQ25703A input voltage 갱신하기  (0) 2024.12.02
bq25703A NVDC  (0) 2024.11.29
배터리 충전  (0) 2024.11.28
Posted by 구차니
회사일/전자부품2025. 8. 21. 11:58

이전에 사용하고 있던 0x08의 온도가 어떤 온도를 측정하고 있는건지 보는데 영 안나오네

 

레지스터 자체에서는 온도를 돌려준다로 끝이고

 

함수명으로 검색해보니 셀의 온도를 돌려준다..? 셀의 온도를 어떻게 측정하지?

 

벤더명령어를 이용하면 내부온도 / Thermistor 온도 1~4를 획득이 가능하다고 한다.

 

어떤 온도를 활성화 할지는 아래 레지스터에서 설정하고

 

특정 온도를 셀 온도로 간주해주면 되는건가?

 

그런데 0x0072와는 무슨 차이인걸까?

 

[링크 : https://www.ti.com/lit/ug/sluua43a/sluua43a.pdf?ts=1755744458780]

'회사일 > 전자부품' 카테고리의 다른 글

ti bqstudio 와 free adpator?  (0) 2025.12.10
ptn5110 usb-pd rdo 응답  (0) 2025.01.15
ad5292 wiper 값  (0) 2025.01.06
ads8598  (0) 2024.11.13
ad4111  (0) 2024.11.07
Posted by 구차니
회사일/전자부품2025. 1. 15. 18:04

RDO로 요청하니 PDO를 아래와 같이 받았다고 하는데

61 2C 91 01 08 2C D1 02 00 2C C1 03 00 2C B1 04 00 45 41 06 00 64 21 DC C0

 

PDO 형태는 이렇게 생겨 먹었다고 하고

 

PDO 타입에 따라 상관없이 19-10 / 9-0은 거의 동일한데

 

그걸 정리하면 다음과 같이

최소 전압은 50mV 단위로, 전류는 10mA 단위로 계산하면 어찌 될 듯

 

받은대로 해석해보니 영 엉뚱한 값만 나와서

 

I2C를 통해 받은거라 혹시 데이터가 뒤쪽부터 반대로 받아진거 아니야? 하면서 바이트 순서를 뒤집고

바이트를 msb와 lsb에 맞춰서 정렬하고 10비트씩 잘라서 해석해보니

먼가 그럴싸하게 20v / 15v / 12v / 9v / 5v가 나오는 것 같기도 하고..

5V 3A는 dual role power로 마킹된걸려나?

 

일단 USB PD 충전기에서

C1 커넥터에 연결했고

5.0V 3.0A = 15W

9.0V 3.0A = 27W

12.0V 3.0A = 36W

15V 3.0A = 45W

20.0V 3.25A = 65W

PPS 3.3V~11V = 3A 라고 되어있다.

가장 처음 4바이트를 반대로 다시 파싱해보고

가장 마지막 61이 먼지도 봐야 할 듯.. bargage 였거나 trailing EOF 이거나.. 혹은 parity 이거나.. 어느걸려나?

'회사일 > 전자부품' 카테고리의 다른 글

ti bqstudio 와 free adpator?  (0) 2025.12.10
bq40z50 온도 값  (0) 2025.08.21
ad5292 wiper 값  (0) 2025.01.06
ads8598  (0) 2024.11.13
ad4111  (0) 2024.11.07
Posted by 구차니
회사일/전자부품2025. 1. 6. 17:21

아니~~~~!!!

값을 설정하면 당연히(?) A-W 의 저항으로 될 줄 알았는데

 

데이터 시트를 잘보니.. 어..? R_WB... 엥?

 

아니아니!!! 왜 도대체 R_WB 수식을 먼저 보여주고 R_WA를 나중에 보여주냐고 ㅠㅠ

[링크 : https://www.analog.com/media/en/technical-documentation/data-sheets/ad5291_5292.pdf]

'회사일 > 전자부품' 카테고리의 다른 글

bq40z50 온도 값  (0) 2025.08.21
ptn5110 usb-pd rdo 응답  (0) 2025.01.15
ads8598  (0) 2024.11.13
ad4111  (0) 2024.11.07
ad5292 write protect  (0) 2024.11.07
Posted by 구차니
회사일/USB PD2024. 12. 5. 14:08

개발보드 꺼내서 연결해보니 U-boot 레벨에서 20V 받아가는 것 확인.. -_-!

USB 규격 볼 바에는 이걸 보는게 빠를 듯..

[링크 : https://github.com/nxp-imx/uboot-imx/]

[링크 : https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/i-MX8MP-USB-PD-realized/ta-p/1531209]

 

아무생각없이 보고 있던 소스.. -_- mp를 봐야했나..?

[링크 : https://github.com/nxp-imx/uboot-imx/blob/lf_v2022.04/board/freescale/imx8mm_evk/imx8mm_evk.c]

 

소스를 보면 변경점이 꽤 많긴 하지만 큰 틀에서 ptn5110 쓰는건 동일해서 mm 으로 보는게 편할지도?

[링크 : https://github.com/nxp-imx/uboot-imx/blob/lf_v2022.04/board/freescale/imx8mp_evk/imx8mp_evk.c]

 

+

evk uboot 로그

U-Boot SPL 2023.04-lf_v2023.04+g49b102d988 (Nov 21 2023 - 07:28:53 +0000)
DDRINFO: start DRAM init
DDRINFO: DRAM rate 4000MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
SEC0:  RNG instantiated
Normal Boot
Trying to boot from BOOTROM
Boot Stage: Primary boot
image offset 0x8000, pagesize 0x200, ivt offset 0x0
NOTICE:  Do not release JR0 to NS as it can be used by HAB
NOTICE:  BL31: v2.8(release):android-14.0.0_1.0.0-rc1-1-g08e9d4eef
NOTICE:  BL31: Built : 06:43:30, Nov 21 2023

                                                                                
U-Boot 2023.04-lf_v2023.04+g49b102d988 (Nov 21 2023 - 07:28:53 +0000)           
                                                                                
CPU:   i.MX8MP[8] rev1.1 1800 MHz (running at 1200 MHz)                         
CPU:   Commercial temperature grade (0C to 95C) at 25C                          
Reset cause: POR                                                                
Model: NXP i.MX8MPlus LPDDR4 EVK board                                          
DRAM:  6 GiB                                                                    
TCPC:  Vendor ID [0x1fc9], Product ID [0x5110], Addr [I2C2 0x50]                
SNK.Power3.0 on CC1                                                             
PDO 0: type 0, 5000 mV, 3000 mA [E]                                             
PDO 1: type 0, 9000 mV, 3000 mA []                                              
PDO 2: type 0, 12000 mV, 3000 mA []                                             
PDO 3: type 0, 15000 mV, 3000 mA []                                             
PDO 4: type 0, 20000 mV, 3000 mA []                                             
PDO 5: type 3, undefined                                                        
Requesting PDO 4: 20000 mV, 2250 mA                                             
Source accept request                                                           
PD source ready!                                                                
tcpc_pd_receive_message: Polling ALERT register, TCPC_ALERT_RX_STATUS bit faile2
Power supply on USB2                                                            
TCPC:  Vendor ID [0x1fc9], Product ID [0x5110], Addr [I2C1 0x50]                
Core:  257 devices, 36 uclasses, devicetree: separate                           
MMC:   FSL_SDHC: 1, FSL_SDHC: 2                                                 
Loading Environment from MMC... *** Warning - bad CRC, using default environment
                                                                                
[*]-Video Link 0adv7535_mipi2hdmi adv7535@3d: Can't find cec device id=0x3c     
fail to probe panel device adv7535@3d                                           
fail to get display timings                                                     
probe video device failed, ret -19                                              
                                                                                
        [0] lcd-controller@32e80000, video                                      
        [1] mipi_dsi@32e60000, video_bridge                                     
        [2] adv7535@3d, panel                                                   
adv7535_mipi2hdmi adv7535@3d: Can't find cec device id=0x3c                     
fail to probe panel device adv7535@3d                                           
fail to get display timings                                                     
probe video device failed, ret -19                                              
In:    serial                                                                   
Out:   serial                                                                   
Err:   serial                                                                   
SEC0:  RNG instantiated                                                         
switch to partitions #0, OK                                                     
mmc1 is current device                                                          
flash target is MMC:1                                                           
Net:   eth0: ethernet@30be0000, eth1: ethernet@30bf0000 [PRIME]                 
Fastboot: Normal                                                                
Normal Boot                                                                     
Hit any key to stop autoboot:  0                                                
Working FDT set to 43000000                                                     
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND                              
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND                              
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND                              
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND                              
starting USB...                                                                 
Bus usb@38100000: Failed to initialize board for imx8m USB                      
probe failed, error -62                                                         
Bus usb@38200000: Register 2000140 NbrPorts 2                                   
Starting the controller                                                         
USB XHCI 1.10                                                                   
scanning bus usb@38200000 for devices... 1 USB Device(s) found                  
       scanning usb for storage devices... 0 Storage Device(s) found            
                                                                                
Device 0: unknown device                                                        
switch to partitions #0, OK                                                     
mmc1 is current device                                                          
Scanning mmc 1:1...                                                             
86911 bytes read in 14 ms (5.9 MiB/s)                                           
Working FDT set to 43000000                                                     
Unable to open OP-TEE session (err=-5)                                          
mm_communicate failed!                                                          
Error: Cannot initialize UEFI sub-system, r = 3                                 
switch to partitions #0, OK                                                     
mmc2(part 0) is current device                                                  
Scanning mmc 2:1...                                                             
64669 bytes read in 1 ms (61.7 MiB/s)                                           
Working FDT set to 43000000                                                     
Error: Cannot initialize UEFI sub-system, r = 3                                 
Running BSP bootcmd ...                                                         
switch to partitions #0, OK                                                     
mmc1 is current device                                                          
Failed to load 'boot.scr'                                                       
32856576 bytes read in 372 ms (84.2 MiB/s)                                      
Booting from mmc ...                                                            
86911 bytes read in 4 ms (20.7 MiB/s)                                           
## Flattened Device Tree blob at 43000000                                       
   Booting using the fdt blob at 0x43000000                                     
Working FDT set to 43000000                                                     
clk usb_phy_root_clk already disabled                                           
   Using Device Tree in place at 0000000043000000, end 000000004301837e         
Working FDT set to 43000000                                                     
adv7535_mipi2hdmi adv7535@3d: Can't find cec device id=0x3c                     
fail to probe panel device adv7535@3d                                           
fail to get display timings                                                     
probe video device failed, ret -19                                              
                                                                                
Starting kernel ...

 

'회사일 > USB PD' 카테고리의 다른 글

linux kernel USB PD 관련 검색  (0) 2024.12.04
USB PD 용어 정리중  (0) 2024.12.03
USB PD SOP*?  (0) 2024.12.03
USB-C PTN5110 케이블 방향에 따른 데이터 차이  (0) 2024.11.27
USB PD - DRP?  (0) 2024.11.25
Posted by 구차니
회사일/USB PD2024. 12. 4. 11:50

PDO 쪽으로 검색해서 발견했는데

[링크 : https://chromium.googlesource.com/chromiumos/platform/ec/+/firmware-twinkie-9628.B/include/usb_pd.h]

 

드라이버는 이쪽 인 것 같고

[링크 : https://github.com/torvalds/linux/tree/master/drivers/usb/typec]

 

헤더는 이쪽인 것 같다.

/* PDO: Power Data Object */
#define PDO_MAX_OBJECTS 7

enum pd_pdo_type {
PDO_TYPE_FIXED = 0,
PDO_TYPE_BATT = 1,
PDO_TYPE_VAR = 2,
PDO_TYPE_APDO = 3,
};

#define PDO_TYPE_SHIFT 30
#define PDO_TYPE_MASK 0x3

#define PDO_TYPE(t) ((t) << PDO_TYPE_SHIFT)

#define PDO_VOLT_MASK 0x3ff
#define PDO_CURR_MASK 0x3ff
#define PDO_PWR_MASK 0x3ff

#define PDO_FIXED_DUAL_ROLE BIT(29) /* Power role swap supported */
#define PDO_FIXED_SUSPEND BIT(28) /* USB Suspend supported (Source) */
#define PDO_FIXED_HIGHER_CAP BIT(28) /* Requires more than vSafe5V (Sink) */
#define PDO_FIXED_EXTPOWER BIT(27) /* Externally powered */
#define PDO_FIXED_USB_COMM BIT(26) /* USB communications capable */
#define PDO_FIXED_DATA_SWAP BIT(25) /* Data role swap supported */
#define PDO_FIXED_UNCHUNK_EXT BIT(24) /* Unchunked Extended Message supported (Source) */
#define PDO_FIXED_FRS_CURR_MASK (BIT(24) | BIT(23)) /* FR_Swap Current (Sink) */
#define PDO_FIXED_FRS_CURR_SHIFT 23
#define PDO_FIXED_PEAK_CURR_SHIFT 20
#define PDO_FIXED_VOLT_SHIFT 10 /* 50mV units */
#define PDO_FIXED_CURR_SHIFT 0 /* 10mA units */

#define PDO_FIXED_VOLT(mv) ((((mv) / 50) & PDO_VOLT_MASK) << PDO_FIXED_VOLT_SHIFT)
#define PDO_FIXED_CURR(ma) ((((ma) / 10) & PDO_CURR_MASK) << PDO_FIXED_CURR_SHIFT)

#define PDO_FIXED(mv, ma, flags) \
(PDO_TYPE(PDO_TYPE_FIXED) | (flags) | \
 PDO_FIXED_VOLT(mv) | PDO_FIXED_CURR(ma))

#define VSAFE5V 5000 /* mv units */

#define PDO_BATT_MAX_VOLT_SHIFT 20 /* 50mV units */
#define PDO_BATT_MIN_VOLT_SHIFT 10 /* 50mV units */
#define PDO_BATT_MAX_PWR_SHIFT 0 /* 250mW units */

#define PDO_BATT_MIN_VOLT(mv) ((((mv) / 50) & PDO_VOLT_MASK) << PDO_BATT_MIN_VOLT_SHIFT)
#define PDO_BATT_MAX_VOLT(mv) ((((mv) / 50) & PDO_VOLT_MASK) << PDO_BATT_MAX_VOLT_SHIFT)
#define PDO_BATT_MAX_POWER(mw) ((((mw) / 250) & PDO_PWR_MASK) << PDO_BATT_MAX_PWR_SHIFT)

#define PDO_BATT(min_mv, max_mv, max_mw) \
(PDO_TYPE(PDO_TYPE_BATT) | PDO_BATT_MIN_VOLT(min_mv) | \
 PDO_BATT_MAX_VOLT(max_mv) | PDO_BATT_MAX_POWER(max_mw))

#define PDO_VAR_MAX_VOLT_SHIFT 20 /* 50mV units */
#define PDO_VAR_MIN_VOLT_SHIFT 10 /* 50mV units */
#define PDO_VAR_MAX_CURR_SHIFT 0 /* 10mA units */

#define PDO_VAR_MIN_VOLT(mv) ((((mv) / 50) & PDO_VOLT_MASK) << PDO_VAR_MIN_VOLT_SHIFT)
#define PDO_VAR_MAX_VOLT(mv) ((((mv) / 50) & PDO_VOLT_MASK) << PDO_VAR_MAX_VOLT_SHIFT)
#define PDO_VAR_MAX_CURR(ma) ((((ma) / 10) & PDO_CURR_MASK) << PDO_VAR_MAX_CURR_SHIFT)

#define PDO_VAR(min_mv, max_mv, max_ma) \
(PDO_TYPE(PDO_TYPE_VAR) | PDO_VAR_MIN_VOLT(min_mv) | \
 PDO_VAR_MAX_VOLT(max_mv) | PDO_VAR_MAX_CURR(max_ma))

enum pd_apdo_type {
APDO_TYPE_PPS = 0,
};

#define PDO_APDO_TYPE_SHIFT 28 /* Only valid value currently is 0x0 - PPS */
#define PDO_APDO_TYPE_MASK 0x3

#define PDO_APDO_TYPE(t) ((t) << PDO_APDO_TYPE_SHIFT)

#define PDO_PPS_APDO_MAX_VOLT_SHIFT 17 /* 100mV units */
#define PDO_PPS_APDO_MIN_VOLT_SHIFT 8 /* 100mV units */
#define PDO_PPS_APDO_MAX_CURR_SHIFT 0 /* 50mA units */

#define PDO_PPS_APDO_VOLT_MASK 0xff
#define PDO_PPS_APDO_CURR_MASK 0x7f

#define PDO_PPS_APDO_MIN_VOLT(mv) \
((((mv) / 100) & PDO_PPS_APDO_VOLT_MASK) << PDO_PPS_APDO_MIN_VOLT_SHIFT)
#define PDO_PPS_APDO_MAX_VOLT(mv) \
((((mv) / 100) & PDO_PPS_APDO_VOLT_MASK) << PDO_PPS_APDO_MAX_VOLT_SHIFT)
#define PDO_PPS_APDO_MAX_CURR(ma) \
((((ma) / 50) & PDO_PPS_APDO_CURR_MASK) << PDO_PPS_APDO_MAX_CURR_SHIFT)

#define PDO_PPS_APDO(min_mv, max_mv, max_ma) \
(PDO_TYPE(PDO_TYPE_APDO) | PDO_APDO_TYPE(APDO_TYPE_PPS) | \
PDO_PPS_APDO_MIN_VOLT(min_mv) | PDO_PPS_APDO_MAX_VOLT(max_mv) | \
PDO_PPS_APDO_MAX_CURR(max_ma))


/* RDO: Request Data Object */
#define RDO_OBJ_POS_SHIFT 28
#define RDO_OBJ_POS_MASK 0x7
#define RDO_GIVE_BACK BIT(27) /* Supports reduced operating current */
#define RDO_CAP_MISMATCH BIT(26) /* Not satisfied by source caps */
#define RDO_USB_COMM BIT(25) /* USB communications capable */
#define RDO_NO_SUSPEND BIT(24) /* USB Suspend not supported */

#define RDO_PWR_MASK 0x3ff
#define RDO_CURR_MASK 0x3ff

#define RDO_FIXED_OP_CURR_SHIFT 10
#define RDO_FIXED_MAX_CURR_SHIFT 0

#define RDO_OBJ(idx) (((idx) & RDO_OBJ_POS_MASK) << RDO_OBJ_POS_SHIFT)

#define PDO_FIXED_OP_CURR(ma) ((((ma) / 10) & RDO_CURR_MASK) << RDO_FIXED_OP_CURR_SHIFT)
#define PDO_FIXED_MAX_CURR(ma) ((((ma) / 10) & RDO_CURR_MASK) << RDO_FIXED_MAX_CURR_SHIFT)

#define RDO_FIXED(idx, op_ma, max_ma, flags) \
(RDO_OBJ(idx) | (flags) | \
 PDO_FIXED_OP_CURR(op_ma) | PDO_FIXED_MAX_CURR(max_ma))

#define RDO_BATT_OP_PWR_SHIFT 10 /* 250mW units */
#define RDO_BATT_MAX_PWR_SHIFT 0 /* 250mW units */

#define RDO_BATT_OP_PWR(mw) ((((mw) / 250) & RDO_PWR_MASK) << RDO_BATT_OP_PWR_SHIFT)
#define RDO_BATT_MAX_PWR(mw) ((((mw) / 250) & RDO_PWR_MASK) << RDO_BATT_MAX_PWR_SHIFT)

#define RDO_BATT(idx, op_mw, max_mw, flags) \
(RDO_OBJ(idx) | (flags) | \
 RDO_BATT_OP_PWR(op_mw) | RDO_BATT_MAX_PWR(max_mw))

#define RDO_PROG_VOLT_MASK 0x7ff
#define RDO_PROG_CURR_MASK 0x7f

#define RDO_PROG_VOLT_SHIFT 9
#define RDO_PROG_CURR_SHIFT 0

#define RDO_PROG_VOLT_MV_STEP 20
#define RDO_PROG_CURR_MA_STEP 50

#define PDO_PROG_OUT_VOLT(mv) \
((((mv) / RDO_PROG_VOLT_MV_STEP) & RDO_PROG_VOLT_MASK) << RDO_PROG_VOLT_SHIFT)
#define PDO_PROG_OP_CURR(ma) \
((((ma) / RDO_PROG_CURR_MA_STEP) & RDO_PROG_CURR_MASK) << RDO_PROG_CURR_SHIFT)

#define RDO_PROG(idx, out_mv, op_ma, flags) \
(RDO_OBJ(idx) | (flags) | \
 PDO_PROG_OUT_VOLT(out_mv) | PDO_PROG_OP_CURR(op_ma))

[링크 : https://github.com/torvalds/linux/blob/master/include/linux/usb/pd.h]

'회사일 > USB PD' 카테고리의 다른 글

i.mx8 evk uboot usb pd 메시지  (0) 2024.12.05
USB PD 용어 정리중  (0) 2024.12.03
USB PD SOP*?  (0) 2024.12.03
USB-C PTN5110 케이블 방향에 따른 데이터 차이  (0) 2024.11.27
USB PD - DRP?  (0) 2024.11.25
Posted by 구차니
회사일/USB PD2024. 12. 3. 14:34

PDP Rating(Power Delivery Power Rating)
[링크 : https://usb.org/sites/default/files/D2T2-1%20-%20USB%20Power%20Delivery.pdf]


PDO(Power Data Object)
APDO(Augmented Power Data Object) = PPS(Programmable Power supply)
[링크 : https://smartchoice.kr/usb-고속충전의-종류와-usb-pd-충전에-대해-자세히-알아보자/]

 

AMS (Atomic message sequence)

[링크 : https://www.st.com/resource/en/user_manual/um2552-managing-usb-power-delivery-systems-with-stm32-microcontrollers-stmicroelectronics.pdf]

 

PDO는 또 머냐...

[링크 : https://velog.io/@zhemdrawer/USB-PD-이해]

 

PDOs - Power-Data Objects

RDO - Request-Data Object

[링크 : https://www.ti.com/lit/an/slva842/slva842.pdf]

 

+

2024.12.08

PPS(Programmable Power Supply) 

[링크 : https://www.belkin.com/kr/support-article/?articleNum=318878]

 

USB PD 1.0 - profile

USB PD 2.0 - PDO

USB PD 3.0 - APDO / PPS

[링크 : https://namu.wiki/w/USB%20PD]

 

 

+

2024.12.13

[링크 : https://velog.io/@zhemdrawer/USB-PD-이해]

'회사일 > USB PD' 카테고리의 다른 글

i.mx8 evk uboot usb pd 메시지  (0) 2024.12.05
linux kernel USB PD 관련 검색  (0) 2024.12.04
USB PD SOP*?  (0) 2024.12.03
USB-C PTN5110 케이블 방향에 따른 데이터 차이  (0) 2024.11.27
USB PD - DRP?  (0) 2024.11.25
Posted by 구차니