회사일/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-이해]

 

+

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 구차니
회사일/USB PD2024. 12. 3. 12:45

걍 패킷을 보낸다 라는걸 죄다 SOP라고 퉁치는것 같은데

SOP

SOP'

SOP''

SOP* 이런게 나와서 헷갈리는 중..

 

SOP*
• Start of packet (SOP/SOP’/SOP’’)

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

 

SOP* - The Start of Frame field in a USB Power Delivery packet indicates the intended recipient of the packet.

[링크 : https://ww1.microchip.com/downloads/en/AppNotes/00001974A.pdf]

 

50h 에 TRANSMIT 이라는 레지스터가 있는데 Read / Write 이고 [2:0] 3비트는 아래의 값을 지닌댄다.

도대체 cable reset은 왜 저기서 튀어나오는걸까?

[링크 : https://www.nxp.com/docs/en/data-sheet/PTN5110.pdf]

 

각 패킷별 전송이나 응답할 녀석이 달라지는건가?

[링크 : https://www.graniteriverlabs.com/en-us/technical-blog/usb-pd-power-delivery-spec-versions]

 

 

5
Sending a USB PD message
The general steps of transmitting a SOP* message are listed below. Please consult
sections 4.7.1, 4.7.2, and 4.7.3 of the TCPC specification[3] for more detailed
implementation and examples.
• Step 0: TCPM writes the content of the message to be transmitted into the
TRANSMIT_BUFFER
• Step 1: TCPM writes to TRANSMIT requesting SOP* transmission
• Step 2: The outcome reported by the TCPC may be one of three indications after
asserting the Alert# pin:
– If the TCPC PHY layer successfully transmits the message, the TCPC sets the
Transmission Successful bit in the ALERT register.
– If the TCPC PHY layer did not get any response after retries, the TCPC sets the
Transmission Failed bit in the ALERT register.
– If the transmission was discarded due to an incoming message, the TCPC sets the
Transmission Discarded bit in the ALERT register.
• Step 3: Before requesting another transmission, the TCPM shall clear the alert by
writing a 1 to the asserted bit in the ALERT register.
When transitioning through the steps of transmitting SOP* message, TCPC may assert
ALERT.ReceiveStatus or ALERT.ReceivedHardReset bit at any time to notify that a
message was received.

[링크 : https://www.nxp.com/docs/en/application-note/AN12137.pdf]

 

위에서 4.7.1~4.7.3을 보라는데 제목만 봐서는.. 흐음..

4.7 USB PD Communication Operational Model
4.7.1 Transmitting an SOP* USB PD Message with Less than or Equal to 128 Data Bytes
4.7.2 Transmitting an SOP* USB PD Message with Greater than 128 Data Bytes
4.7.3 Transmitting a Hard Reset Message

[링크 : https://www.usb.org/sites/default/files/documents/usb-port_controller_specification_rev2.0_v1.0_0.pdf]

 

RDO (Request Data Object)

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

 

 

 

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

linux kernel USB PD 관련 검색  (0) 2024.12.04
USB PD 용어 정리중  (0) 2024.12.03
USB-C PTN5110 케이블 방향에 따른 데이터 차이  (0) 2024.11.27
USB PD - DRP?  (0) 2024.11.25
TCPC, TCPM  (0) 2024.11.22
Posted by 구차니
회사일/BQ25703A2024. 12. 2. 18:00

RESET_REG랑 RESET_VINDPM을 둘다 set 하고 하니 VINDPM의 값이 변경되지 않는 현상이 발생함.

그냥 RESET_VINDPM 만 설정해주면 된다.

해당 값은 0x0B/0x0A 의 InputVoltage Register 값에 있는데

 

VBUS-1.28V 로 초기화 되는 값이라는데

반대로 보면.. 1.28V를 더해줘야 하냐.. 그게 아니라면 DC offset이 3.2V 니까(0x00) 일때 3.2V를 더해주는게 맞냐 좀 헷갈린다.

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

bq25703A NVDC  (0) 2024.11.29
배터리 충전  (0) 2024.11.28
bq25703A i2c 읽기, 쓰기  (0) 2024.11.22
Posted by 구차니
회사일/BQ25703A2024. 11. 29. 12:34

Narrow의 의미를 모르겠어서 검색하는데 봐도 모르겠다

 

Narrow-VDC (NVDC) Power Path Management
– Instant-On With No Battery or Deeply Discharged Battery
– Battery Supplements System When Adapter is Fully-Loaded

8.4.1.1 System Voltage Regulation with Narrow VDC Architecture
The bq25703A employs Narrow VDC architecture (NVDC) with BATFET separating system from battery. The
minimum system voltage is set by MinSystemVoltage(). Even with a deeply depleted battery, the system is
regulated above the minimum system voltage.
When the battery is below minimum system voltage setting, the BATFET operates in linear mode (LDO mode).
As the battery voltage rises above the minimum system voltage, BATFET is fully on when charging or in
supplement mode and the voltage difference between the system and battery is the VDS of BATFET. System
voltage is regulated 160 mV above battery voltage when BATFET is off (no charging or no supplement current).

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

 

대충 충전 모드/방전 모드 간의 전환이 빠르고, 소비전력이 적다라는건가?

Narrow VDC (NVDC) Battery Charger

This figure shows the Narrow VDC (NVDC) topology. Here, the system bus (Vsys) is not connected directly to the adapter. It is connected to the output of the buck converter. Hence, NVDC operates only as a buck converter, both when NVDC charges the battery and when the battery supplements the adapter and provides power to the system. NVDC implementation reduces the switch-over period between the charging mode and the hybrid power mode. NVDC implementation allows the system to minimize the period of overloading the input power source when CPU is in Turbo Boost mode.

The advantage of using the NVDC system is that the overall system efficiency is better compared to the Hybrid Power Boost (HPB) charger. The system can be designed for a smaller voltage rating since the system has a lower Vin. The disadvantage is that the charger components’ size and power dissipation increases.

[링크 : https://en-support.renesas.com/knowledgeBase/6680047]

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

BQ25703A input voltage 갱신하기  (0) 2024.12.02
배터리 충전  (0) 2024.11.28
bq25703A i2c 읽기, 쓰기  (0) 2024.11.22
Posted by 구차니
회사일/BQ25703A2024. 11. 28. 11:00

CC mode(정전류 Constant Current) / CV(정전압 Constant Voltage) mode

[링크 : https://m.post.naver.com/viewer/postView.naver?volumeNo=32510484&memberNo=53051877]

 

배터리 스펙에 충전완료 전류라는게 있다.

충전시에 충전이 끝나는게 아니라 꾸준히 밀면(?) 들어가는데

그렇기에 gauge 쪽에서 해당 전류까지 떨어지는걸 측정하면 멈추던가

charging ic 쪽에서 넣는 전류가 떨어지는걸 측정하면 멈추던가 해야하낟.

 

[링크 : https://www.mouser.com/datasheet/2/855/ASR00050_18650_2500mAh-3078640.pdf]

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

BQ25703A input voltage 갱신하기  (0) 2024.12.02
bq25703A NVDC  (0) 2024.11.29
bq25703A i2c 읽기, 쓰기  (0) 2024.11.22
Posted by 구차니
회사일/USB PD2024. 11. 27. 12:47

데이터 시트 보고 대충 만든 녀석이라

하나하나의 의미는 모르겠는데..

REG_TCPC_CONTROL 에서 Plug Orientation 비트가 설정되고

REG_ROLE_CONTROL 에서 CC1과 CC2의 Rd / Open이 바뀌는 걸 확인할 수 있다

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

linux kernel USB PD 관련 검색  (0) 2024.12.04
USB PD 용어 정리중  (0) 2024.12.03
USB PD SOP*?  (0) 2024.12.03
USB PD - DRP?  (0) 2024.11.25
TCPC, TCPM  (0) 2024.11.22
Posted by 구차니
회사일/USB PD2024. 11. 25. 11:53

USB는 Upstream 과 Downstream 으로 되는데

USB-C 되면서 양방향으로 작동하는게 추가된 듯 한데 그게 바로 DRP(Dual Role) 인 듯

그러니까.. DRP를 지원하면 충전할 수도 있고, 남을 위해 전기도 내어줄수 있...다?

DFP(Downstream Facing Port)는 호스트 또는 허브에 설치되고 장치에 연결되는 USB Type-C 포트입니다.
UFP(Upstream Facing Port)는 호스트 또는 허브에 연결된 USB Type-C 포트, 장치 또는 허브의 DFP입니다.
DRP(Dual Role Port, 이중 목적 전원 역할은 USB Type-C 포트에서 소스 또는 싱크 역할로 사용할 수 있는 정의입니다.

[링크 : https://www.seminet.co.kr/ti/micro_content.html?category=article&no=2105]

'회사일 > 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
TCPC, TCPM  (0) 2024.11.22
Posted by 구차니
회사일/USB PD2024. 11. 22. 17:20

데이터시트 보다가 이상한(?) 단어가 나오길래 검색

PTN5110 is a single-port TCPC compliant USB Power Delivery (PD) PHY IC that implements Type-C Configuration Channel (CC) interface and USB PD Physical layer functions to a Type-C Port Manager (TCPM) that handles PD Policy management

[링크 : https://www.nxp.com/docs/en/data-sheet/PTN5110.pdf]

 

USB Type-C Port Controller(TCPC)

[링크 : https://docs.zephyrproject.org/latest/hardware/peripherals/tcpc.html]

 

'회사일 > 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 구차니