| Ports Used | Device Type | IC1 Power (W) | U1, U2 Power (W) | Diode Power (W) | USB Load (W) | Total Power (W) |
|------------|--------------|---------------|------------------|-----------------|--------------|-----------------|
| 0 | Idle | 0.396 | 0.25 | 0.25 | 0 | 0.896 |
| Ports Used | Device Type | IC1 Power (W) | U1, U2 Power (W) | Diode Power (W) | USB Load (W) | Total Power (W) |
|------------|--------------|---------------|------------------|-----------------|--------------|-----------------|
| 1 | Low Power | 0.396 | 0.25 | 0.25 | 0.5 | 1.396 |
| 1 | Medium Power | 0.396 | 0.25 | 0.25 | 1.25 | 2.146 |
| 1 | High Power | 0.396 | 0.25 | 0.25 | 2.5 | 3.396 |
2 USB Ports Used
| Ports Used | Device Type | IC1 Power (W) | U1, U2 Power (W) | Diode Power (W) | USB Load (W) | Total Power (W) |
|------------|--------------|---------------|------------------|-----------------|--------------|-----------------|
| 2 | Low Power | 0.396 | 0.25 | 0.25 | 1 | 1.896 |
| 2 | Medium Power | 0.396 | 0.25 | 0.25 | 2.5 | 3.396 |
| 2 | High Power | 0.396 | 0.25 | 0.25 | 5 | 5.896 |
3 USB Ports Used
| Ports Used | Device Type | IC1 Power (W) | U1, U2 Power (W) | Diode Power (W) | USB Load (W) | Total Power (W) |
|------------|--------------|---------------|------------------|-----------------|--------------|-----------------|
| 3 | Low Power | 0.396 | 0.25 | 0.25 | 1.5 | 2.396 |
| 3 | Medium Power | 0.396 | 0.25 | 0.25 | 3.75 | 4.646 |
| 3 | High Power | 0.396 | 0.25 | 0.25 | 7.5 | 8.396 |
4 USB Ports Used
| Ports Used | Device Type | IC1 Power (W) | U1, U2 Power (W) | Diode Power (W) | USB Load (W) | Total Power (W) |
|------------|--------------|---------------|------------------|-----------------|--------------|-----------------|
| 4 | Low Power | 0.396 | 0.25 | 0.25 | 2 | 2.896 |
| 4 | Medium Power | 0.396 | 0.25 | 0.25 | 5 | 5.896 |
| 4 | High Power | 0.396 | 0.25 | 0.25 | 10 | 10.896 |
Conclusion
1
Table
Pin Number | Pin Name | Function |
---|---|---|
1 | VUSB | Power |
2 | D- | Data Negative |
3 | D+ | Data Positive |
4 | GND | Ground |
5 | SHIELD | Shielding |
6 | SHIELD__1 | Shielding |
USB-C
, here are all the mentioned pins in a table format:Table
Pin Number | Pin Name | Function |
---|---|---|
1 | GNDA1 | Ground Analog |
2 | SSTXP1 | SuperSpeed Transmitter Positive |
3 | SSTXN1 | SuperSpeed Transmitter Negative |
4 | VBUSA1 | VBUS Analog |
5 | CC1 | Configuration Channel |
6 | DP1 | Data Positive |
7 | DN1 | Data Negative |
8 | SBU1 | Sideband Use (1) |
9 | VBUSA2 | VBUS Analog |
10 | SSRXN2 | SuperSpeed Receiver Negative |
11 | SSRXP2 | SuperSpeed Receiver Positive |
12 | GNDA2 | Ground Analog |
13 | GND/SHIELD | Ground/ Shield |
14 | GND/SHIELD | Ground/ Shield |
15 | GND/SHIELD | Ground/ Shield |
16 | GND/SHIELD | Ground/ Shield |
17 | GND/SHIELD | Ground/ Shield |
18 | GND/SHIELD | Ground/ Shield |
19 | GND/SHIELD | Ground/ Shield |
20 | GND/SHIELD | Ground/ Shield |
21 | GNDB2 | Ground Body |
22 | SSRXP1 | SuperSpeed Receiver Positive |
23 | SSRXN1 | SuperSpeed Receiver Negative |
24 | VBUSB2 | VBUS USB |
25 | SBU2 | Sideband Use (2) |
26 | DN2 | Data Negative |
27 | DP2 | Data Positive |
28 | CC2 | Configuration Channel |
29 | VBUSB1 | VBUS USB |
30 | SSTXN2 | SuperSpeed Transmitter Negative |
31 | SSTXP2 | SuperSpeed Transmitter Positive |
32 | GNDB1 | Ground Body |
Table
Pin Number | Pin Name | Potential Function |
---|---|---|
1 | USBDM_DN1/PRT_DIS_M1 | USB D- signal 1 or Port disable signal 1 |
2 | USBDP_DN1/PRT_DIS_P1 | USB D+ signal 1 or Port disable signal 1 |
3 | USBDM_DN2/PRT_DIS_M2 | USB D- signal 2 or Port disable signal 2 |
4 | USBDP_DN2/PRT_DIS_P2 | USB D+ signal 2 or Port disable signal 2 |
5 | VDDA33 | 3.3V Power Supply |
6 | USBDM_DN3/PRT_DIS_M3 | USB D- signal 3 or Port disable signal 3 |
7 | USBDP_DN3/PRT_DIS_P3 | USB D+ signal 3 or Port disable signal 3 |
8 | USBDM_DN4/PRT_DIS_M4 | USB D- signal 4 or Port disable signal 4 |
9 | USBDP_DN4/PRT_DIS_P4 | USB D+ signal 4 or Port disable signal 4 |
10 | VDDA33 | 3.3V Power Supply |
11 | TEST | Test pin |
12 | PRTPWR1/BC_EN1 | Port power enable 1 or Battery Charging Enable signal 1 |
13 | OCS_N1 | Over-current sense for port 1 |
14 | CRFILT | PLL filter for the crystal or external clock |
15 | VDD33 | 3.3V Power Supply |
16 | PRTPWR2/BC_EN2 | Port power enable 2 or Battery Charging Enable signal 2 |
17 | OCS_N2 | Over-current sense for port 2 |
18 | PRTPWR3/BC_EN3 | Port power enable 3 or Battery Charging Enable signal 3 |
19 | OCS_N3 | Over-current sense for port 3 |
20 | PRTPWR4/BC_EN4 | Port power enable 4 or Battery Charging Enable signal 4 |
21 | OCS_N4 | Over-current sense for port 4 |
22 | SDA/SMBDATA/NON_REM1 | I2C Serial Data pin or Port Non-Removable flag 1 |
23 | VDD33 | 3.3V Power Supply |
24 | SCL/SMBCLK/CFG_SEL0 | I2C Serial Clock or Hardware Configuration Select 0 |
25 | HS_IND/CFG_SEL1 | High Speed Indicator or Hardware Configuration Select 1 |
26 | RESET_N | Reset pin (active low) |
27 | VBUS_DET | VBus detection pin |
28 | SUSP_IND/LOCAL_PWR/NON_REM0 | Suspended State Indicator, Local Power or Port Non-Removable flag 0 |
29 | VDDA33 | 3.3V Power Supply |
30 | USBDM_UP | USB D- upward signal |
31 | USBDP_UP | USB D+ upward signal |
32 | XTALOUT | Crystal Oscillator Output, Connects to one terminal of the crystal |
33 | XTALIN/CLKIN | Crystal Oscillator Input or external clock input |
34 | PLLFILT | PLL filter. Used for filtering the Phase Lock Loop |
35 | RBIAS | Bias resistor. A resistor to ground sets the input impedance |
36 | VDDA33 | 3.3V Power Supply |
37 | VSS | Ground pin |
In_1+
pin (Pin 1) and In_1-
pin (Pin 2) of the EMI2121MTTAG (D2) to the D+ and D- lines coming from the USB connector (USB1), respectively.Out_1+
pin (Pin 8) and Out_1-
pin (Pin 7) of the EMI2121MTTAG to IC1's D+ and D- input lines, respectively.GND
pins (Pins 3, 4, 5, 9) should all be connected to system ground as they play a crucial role in the device’s EMC performance.VDD
pin (Pin 6) should be connected to a 3.3V power source. Capacitors to ground might be added for decoupling, with typical values in the 100nF - 1uF range. The exact placement and value might need experimenting for optimal performance - refer to your specific circuit context and constraint and the component's datasheet for more precise guidance.45.3
Python
# Constants VOLTAGE_USB = 5 # Voltage in Volts CURRENT_PER_IPHONE = 2 # Current per iPhone in Amps CURRENT_ONBOARD_ELECTRONICS = 0.5 # Current consumption of onboard electronics in Amps NUM_PORTS = 4 # Number of USB-A ports # Total Current total_current = (CURRENT_PER_IPHONE * NUM_PORTS) + CURRENT_ONBOARD_ELECTRONICS # Total Power Consumption total_power = VOLTAGE_USB * total_current # Power in Watts total_power
Python
# Constants VOLTAGE_USB = 5 # Voltage in Volts CURRENT_PER_IPHONE = 2 # Current per iPhone in Amps CURRENT_ONBOARD_ELECTRONICS = 0.5 # Current consumption of onboard electronics in Amps NUM_PORTS = 4 # Number of USB-A ports # Total Current total_current = (CURRENT_PER_IPHONE * NUM_PORTS) + CURRENT_ONBOARD_ELECTRONICS # Total Power Consumption total_power = VOLTAGE_USB * total_current # Power in Watts total_power
Output
42.5
Python
import matplotlib.pyplot as plt import numpy as np # Constants BATTERY_CAPACITY_WH = 200 # Battery capacity in Watt-hours POWER_CONSUMPTION_W = 42.5 # Constant power draw in Watts # Total Discharge Time in hours total_discharge_time_h = BATTERY_CAPACITY_WH / POWER_CONSUMPTION_W # Generate time data (let's simulate every minute) time_data = np.linspace(0, total_discharge_time_h, int(total_discharge_time_h * 60) + 1) # Generate battery capacity data over time battery_capacity_data = BATTERY_CAPACITY_WH - (POWER_CONSUMPTION_W * time_data) # Plotting the discharge curve plt.figure(figsize=(10, 6)) plt.plot(time_data, battery_capacity_data, label='Battery Capacity') plt.xlabel('Time (hours)') plt.ylabel('Remaining Battery Capacity (Wh)') plt.title('Battery Discharge Curve') plt.grid(True) plt.legend() plt.show()
Python
import matplotlib.pyplot as plt import numpy as np # Constants BATTERY_CAPACITY_WH = 200 # Battery capacity in Watt-hours POWER_CONSUMPTION_W = 42.5 # Constant power draw in Watts # Total Discharge Time in hours total_discharge_time_h = BATTERY_CAPACITY_WH / POWER_CONSUMPTION_W # Generate time data (let's simulate every minute) time_data = np.linspace(0, total_discharge_time_h, int(total_discharge_time_h * 60) + 1) # Generate battery capacity data over time battery_capacity_data = BATTERY_CAPACITY_WH - (POWER_CONSUMPTION_W * time_data) # Plotting the discharge curve plt.figure(figsize=(10, 6)) plt.plot(time_data, battery_capacity_data, label='Battery Capacity', color='blue') plt.xlabel('Time (hours)') plt.ylabel('Remaining Battery Capacity (Wh)') plt.title('Battery Discharge Curve') plt.grid(True) plt.legend() plt.show()
Python
import matplotlib.pyplot as plt import numpy as np # Constants BATTERY_CAPACITY_WH = 200 # Battery capacity in Watt-hours POWER_CONSUMPTION_W = 42.5 # Constant power draw in Watts # Total Discharge Time in hours total_discharge_time_h = BATTERY_CAPACITY_WH / POWER_CONSUMPTION_W # Generate time data (let's simulate every minute) time_data = np.linspace(0, total_discharge_time_h, int(total_discharge_time_h * 60) + 1) # Generate battery capacity data over time battery_capacity_data = BATTERY_CAPACITY_WH - (POWER_CONSUMPTION_W * time_data) # Plotting the discharge curve plt.figure(figsize=(10, 6)) plt.plot(time_data, battery_capacity_data, label='Battery Capacity', color='blue') plt.xlabel('Time (hours)') plt.ylabel('Remaining Battery Capacity (Wh)') plt.title('Battery Discharge Curve') plt.grid(True) plt.legend() plt.show()
Image
Python
# Charging constants CHARGING_POWER_W = 60 # Charging power in Watts CHARGING_EFFICIENCY = 0.85 # Charging efficiency # Calculate the effective charging power after efficiency loss effective_charging_power = CHARGING_POWER_W * CHARGING_EFFICIENCY # Time to Charge in hours time_to_charge_h = BATTERY_CAPACITY_WH / effective_charging_power # Velocity of charge (Wh per hour) is constant velocity_of_charge = effective_charging_power # Generate time data for charging (from 0 to the time to charge) time_data_charging = np.linspace(0, time_to_charge_h, int(time_to_charge_h * 60) + 1) # Velocity data (constant) velocity_data = [velocity_of_charge] * len(time_data_charging) # Plotting the velocity curve plt.figure(figsize=(10, 6)) plt.plot(time_data_charging, velocity_data, label='Charging Velocity', color='green', linestyle='--') plt.xlabel('Time (hours)') plt.ylabel('Charging Velocity (Wh/h)') plt.title('Battery Charging Velocity Curve') plt.grid(True) plt.legend() plt.ylim(0, CHARGING_POWER_W + 10) # set y-limit to see the horizontal line clearly plt.show()
Python
# Assumptions CC_charging_current = effective_charging_power / VOLTAGE_USB # Assuming USB voltage level for simplicity CV_charging_current_start = CC_charging_current # Starting current for CV phase CV_charging_current_end = 0 # Ending current for CV phase transition_point = 0.7 * BATTERY_CAPACITY_WH # Transition when battery is 70% charged # Generate charging data charging_data = [] current_time = 0.0 accumulated_charge = 0.0 charging_current = CC_charging_current while accumulated_charge < BATTERY_CAPACITY_WH: if accumulated_charge < transition_point: # CC phase charging_current = CC_charging_current else: # CV phase # Here we linearly decrease the current to simplify the model charging_current = $$\frac{(BATTERY_CAPACITY_WH - accumulated_charge)}{(BATTERY_CAPACITY_WH - transition_point)}$$ * CV_charging_current_start # Calculate new charge charge_this_minute = $$\frac{(charging_current * VOLTAGE_USB)}{60}$$ # Charge in Wh accumulated_charge += charge_this_minute # Append data points charging_data.append(accumulated_charge) current_time += 1 / 60 # Increment time by 1 minute # Time data time_data_charging = np.linspace(0, current_time, len(charging_data)) # Plotting the charging curve plt.figure(figsize=(10, 6)) plt.plot(time_data_charging, charging_data, label='Charging Status', color='orange') plt.xlabel('Time (hours)') plt.ylabel('Charged Capacity (Wh)') plt.title('Battery Charging Curve') plt.grid(True) plt.legend() plt.show()
Python
import matplotlib.pyplot as plt import numpy as np # Constants assuming a 3.7V nominal voltage for a lithium ion battery BATTERY_CAPACITY_WH = 200 # Battery capacity in Watt-hours CHARGING_POWER_W = 60 # Charging power in Watts CHARGING_EFFICIENCY = 0.85 # Charging efficiency NOMINAL_BATTERY_VOLTAGE = 3.7 # Nominal battery voltage in Volts # Effective charging power after accounting for efficiency effective_charging_power = CHARGING_POWER_W * CHARGING_EFFICIENCY # Charge accumulated, in Wh (starts at 0 and goes up to the battery capacity) charge_accumulated = 0 # Lists to keep track of charge accumulated and time elapsed for plotting charge_data = [] time_data = [] # Initial charge rate at maximum charging power adjusted for efficiency and voltage charge_rate = effective_charging_power / NOMINAL_BATTERY_VOLTAGE # Time step for simulation, in hours (1 minute) time_step = 1 / 60 # Current time current_time = 0 while charge_accumulated < BATTERY_CAPACITY_WH: # Append current charge and time to lists charge_data.append(charge_accumulated) time_data.append(current_time) # Increment the charge accumulated charge_increment = charge_rate * NOMINAL_BATTERY_VOLTAGE * time_step charge_accumulated += charge_increment # Adjust charge rate as necessary for CV phase if charge_accumulated > $$transition_point$$: # Linearly decrease charge rate as battery nears full capacity charge_rate = $$(1 - (($charge_accumulated - transition_point$$) / ($$BATTERY_CAPACITY_WH - transition_point$$))) * effective_charging_power / NOMINAL_BATTERY_VOLTAGE$$ # Increment current time by time step current_time += time_step # Plotting the charging curve plt.figure(figsize=(10, 6)) plt.plot(time_data, charge_data, label='Charging Data', color='orange') plt.xlabel('Time (Hours)') plt.ylabel('Charged Capacity (Wh)') plt.title('Battery Charging Curve Showing Decrease in Velocity') plt.grid(True) plt.legend() plt.show()
Python
# Define the connections for each USB port to the hub IC1 usb_connections = { "USB1": {"D+": "IC1:USBDP_DN1/PRT_DIS_P1", "D-": "IC1:USBDM_DN1/PRT_DIS_M1"}, "USB2": {"D+": "IC1:USBDP_DN2/PRT_DIS_P2", "D-": "IC1:USBDM_DN2/PRT_DIS_M2"}, "USB3": {"D+": "IC1:USBDP_DN3/PRT_DIS_P3", "D-": "IC1:USBDM_DN3/PRT_DIS_M3"}, "USB4": {"D+": "IC1:USBDP_DN4/PRT_DIS_P4", "D-": "IC1:USBDM_DN4/PRT_DIS_M4"}, } # Define the current connections listed in the project project_connections = { "USB1": {"D+": "D2:$Out_1+$", "D-": "D2:$Out_1-$"}, "USB2": {"D+": "D3:$Out_1+$", "D-": "D3:$Out_1-$"}, "USB3": {"D+": "D4:$Out_1+$", "D-": "D4:$Out_1-$"}, "USB4": {"D+": "D5:$Out_1+$", "D-": "D5:$Out_1-$"}, } # Check connections for usb_port, connections in usb_connections.items(): for pin, expected_connection in connections.items(): if project_connections[usb_port][pin] == expected_connection: print(f"{usb_port} {pin} correctly connected.") else: print(f"{usb_port} {pin} incorrectly connected. Expected {expected_connection} but got {project_connections[usb_port][pin]}.")
Python
# Define the connections for each USB port to the hub IC1 usb_connections = { "USB1": {"D+": "IC1:$$USBDP_DN1/PRT_DIS_P1$$", "D-": "IC1:$$USBDM_DN1/PRT_DIS_M1$$"}, "USB2": {"D+": "IC1:$$USBDP_DN2/PRT_DIS_P2$$", "D-": "IC1:$$USBDM_DN2/PRT_DIS_M2$$"}, "USB3": {"D+": "IC1:$$USBDP_DN3/PRT_DIS_P3$$", "D-": "IC1:$$USBDM_DN3/PRT_DIS_M3$$"}, "USB4": {"D+": "IC1:$$USBDP_DN4/PRT_DIS_P4$$", "D-": "IC1:$$USBDM_DN4/PRT_DIS_M4$$"}, } # Define the current connections listed in the project project_connections = { "USB1": {"D+": "D2:$$Out_1+$$", "D-": "D2:$$Out_1-$$"}, "USB2": {"D+": "D3:$$Out_1+$$", "D-": "D3:$$Out_1-$$"}, "USB3": {"D+": "D4:$$Out_1+$$", "D-": "D4:$$Out_1-$$"}, "USB4": {"D+": "D5:$$Out_1+$$", "D-": "D5:$$Out_1-$$"}, } # Check connections results = [] for usb_port, connections in usb_connections.items(): for pin, expected_connection in connections.items(): actual_connection = project_connections[usb_port][pin] if actual_connection == expected_connection: results.append(f"{usb_port} {pin} correctly connected.") else: results.append(f"{usb_port} {pin} incorrectly connected. Expected {expected_connection} but got {actual_connection}.") results
Output
['USB1 D+ incorrectly connected. Expected IC1:$$USBDP_DN1/PRT_DIS_P1$$ but got D2:$$Out_1+$$.', 'USB1 D- incorrectly connected. Expected IC1:$$USBDM_DN1/PRT_DIS_M1$$ but got D2:$$Out_1-$$.', 'USB2 D+ incorrectly connected. Expected IC1:$$USBDP_DN2/PRT_DIS_P2$$ but got D3:$$Out_1+$$.', 'USB2 D- incorrectly connected. Expected IC1:$$USBDM_DN2/PRT_DIS_M2$$ but got D3:$$Out_1-$$.', 'USB3 D+ incorrectly connected. Expected IC1:$$USBDP_DN3/PRT_DIS_P3$$ but got D4:$$Out_1+$$.', 'USB3 D- incorrectly connected. Expected IC1:$$USBDM_DN3/PRT_DIS_M3$$ but got D4:$$Out_1-$$.', 'USB4 D+ incorrectly connected. Expected IC1:$$USBDP_DN4/PRT_DIS_P4$$ but got D5:$$Out_1+$$.', 'USB4 D- incorrectly connected. Expected IC1:$$USBDM_DN4/PRT_DIS_M4$$ but got D5:$$Out_1-$$.']
Python
# Define the connections from the EMI filters to the hub IC1 emi_to_ic1_connections = { "D2": {"Out_1+": "IC1:$$USBDP_DN1/PRT_DIS_P1$$", "Out_1-": "IC1:$$USBDM_DN1/PRT_DIS_M1$$"}, "D3": {"Out_1+": "IC1:$$USBDP_DN2/PRT_DIS_P2$$", "Out_1-": "IC1:$$USBDM_DN2/PRT_DIS_M2$$"}, "D4": {"Out_1+": "IC1:$$USBDP_DN3/PRT_DIS_P3$$", "Out_1-": "IC1:$$USBDM_DN3/PRT_DIS_M3$$"}, "D5": {"Out_1+": "IC1:$$USBDP_DN4/PRT_DIS_P4$$", "Out_1-": "IC1:$$USBDM_DN4/PRT_DIS_M4$$"}, } # Define the actual connections from the project project_emi_connections = { "D2": {"Out_1+": "IC1:$$USBDP_DN1/PRT_DIS_P1$$", "Out_1-": "IC1:$$USBDM_DN1/PRT_DIS_M1$$"}, "D3": {"Out_1+": "IC1:$$USBDP_DN2/PRT_DIS_P2$$", "Out_1-": "IC1:$$USBDM_DN2/PRT_DIS_M2$$"}, "D4": {"Out_1+": "IC1:$$USBDP_DN3/PRT_DIS_P3$$", "Out_1-": "IC1:$$USBDM_DN3/PRT_DIS_M3$$"}, "D5": {"Out_1+": "IC1:$$USBDP_DN4/PRT_DIS_P4$$", "Out_1-": "IC1:$$USBDM_DN4/PRT_DIS_M4$$"}, } # Check EMI filter connections emi_results = [] for emi_filter, connections in emi_to_ic1_connections.items(): for pin, expected_connection in connections.items(): actual_connection = project_emi_connections[emi_filter][pin] if actual_connection == expected_connection: emi_results.append(f"{emi_filter} {pin} correctly connected.") else: emi_results.append(f"{emi_filter} {pin} incorrectly connected. Expected {expected_connection} but got {actual_connection}.") emi_results
USB2
in your project:USB2
will receive power.USB2
is one of the USB-A ports in your USB hub, allowing you to connect USB-A peripherals (like flash drives, keyboards, etc.) and interface them with the USB hub controller IC1:USB2514B−I/M2. This port interfaces with the hub controller's data lines and is supplied with power to ensure the connected devices operate correctly.USB2
port in your design functions as one of the four USB-A ports in the USB hub, facilitating the connection and communication of USB-A devices to the single USB-C upstream port.Table
Pin Number | Pin Name | Function |
---|---|---|
1 | ENA | Enable Input for Channel A |
2 | FLGA | Fault Indicator for Channel A |
3 | FLGB | Fault Indicator for Channel B |
4 | ENB | Enable Input for Channel B |
5 | OUTB | Output for Channel B |
6 | GND | Ground |
7 | IN | Input Power Supply |
8 | OUTA | Output for Channel A |
Python
import matplotlib.pyplot as plt # Define the pin types and how many there are of each pin_types = { 'USBDM_DN': 4, 'USBDP_DN': 4, 'VDDA33': 4, 'VDD33': 2, 'TEST': 1, 'PRTPWR/BC_EN': 4, 'OCS_N': 4, 'CRFILT': 1, 'SDA/SMBDATA/NON_REM': 1, 'SCL/SMBCLK/CFG_SEL': 1, 'HS_IND/CFG_SEL': 1, 'RESET_N': 1, 'VBUS_DET': 1, 'SUSP_IND/LOCAL_PWR/NON_REM': 1, 'USBDM_UP': 1, 'USBDP_UP': 1, 'XTALOUT': 1, 'XTALIN/CLKIN': 1, 'PLLFILT': 1, 'RBIAS': 1, 'VSS': 1 } # Create the pie chart fig, ax = plt.subplots() ax.pie(pin_types.values(), labels=pin_types.keys(), autopct='%1.1f%%', startangle=90) ax.axis('equal') # Equal aspect ratio ensures that pie is drawn as a circle. # Title plt.title('Breakdown of Pin Types for IC1') # Display the chart plt.show()
Image
natarius
copilot
natarius
copilot