Compare commits

..

16 Commits

Author SHA1 Message Date
e7b152307a Update AON5820 datasheet and correct C3 capacitor function description
- Downloaded correct AON5820 datasheet from AOS semiconductor
- Fixed C3 function description: Critical for QON-reset recovery
- C3 bridges VSYS interruption (~400ms) during charger system reset
- Ensures DC/DC re-enables when VSYS returns to prevent MCU power loss
- Technical accuracy improvement for power management documentation
2025-10-19 09:12:49 +02:00
7c9a534289 Professional overhaul of DC/DC Enable logic and heading structure
- Replaced Wake-up-Logic with comprehensive DC/DC-Enable-Logik description
- Converted all bold titles (**Title:**) to proper markdown headings (##### Title:)
- Added detailed technical description of Soft-Latch system functionality
- Documented multi-input OR-gate logic for various wake-up sources
- Explained self-latching mechanism and shutdown logic
- Added component function descriptions for complete understanding
- Improved document structure for better TOC generation
2025-10-19 09:02:17 +02:00
bceea347ed Complete PowerProfiler hardware documentation overhaul
- Restructured Hardware_PowerSupply.de.md with professional formatting
- Updated component selection back to BQ25672 system architecture
- Added comprehensive thermal calculations for MOSFET selection
- Implemented detailed RC soft-start calculations for SD card power switching
- Organized datasheets in structured folder hierarchy
- Added system architecture diagrams and technical specifications
- Optimized RC dimensioning with flexible formula for various component values
2025-10-12 10:31:56 +02:00
c50bd085d5 snyc 2025-10-12 08:10:02 +02:00
e9196db5fb docs: Correct VBackup-Multiplexer component in system architecture diagram
- Updated VBackup-Multiplexer from TPS2116 to discrete solution
- Reflects actual implementation using discrete components instead of IC
2025-10-08 17:56:10 +02:00
177ed5ed57 docs: Refine power multiplexer descriptions and formatting
- Enhanced VBackup-Multiplexer section with corrected technical details
- Fixed component reference priorities (VDD supply via Q2, not Q1)
- Improved Power-Multiplexer (External Sources) technical description
- Added comprehensive component references in code format throughout
- Clarified sequential activation logic and power-good signal behavior
- Enhanced system advantages with voltage spike prevention details
- Improved professional technical terminology and structure
2025-10-08 17:51:21 +02:00
7c53764696 docs: Comprehensive overhaul of Hardware_PowerSupply.de.md
- Restructured document with improved layout and consistent internal linking
- Updated component specifications (bq25672  bq24296M, added bq24239)
- Corrected MOSFET specifications (AO3401A  AO3400A for N-channel)
- Added new power multiplexer for external sources with discrete implementation
- Renamed power multiplexer to VBackup-multiplexer for clarity
- Enhanced system architecture diagram with correct component chain
- Unified BQ component naming convention (all lowercase)
- Added RC gate control for SD card switch to prevent current spikes
- Updated wake-up logic diagram with proper diode placement
- Reorganized datasheets: added new components, removed obsolete ones
- Converted German ß to Swiss ss throughout document
- Added placeholder sections for new discrete implementations
2025-10-08 15:55:56 +02:00
67c72b6c9f sync 2025-10-08 11:24:14 +02:00
d553539b4a docs: Fix datasheet links and reorganize documentation structure
- Removed datasheet links from mermaid diagrams to fix rendering issues
- Moved all datasheet references from inline text to dedicated section
- Added comprehensive 'Datenblätter' section with categorized component links:
  * Energieversorgung (XB4908A, BQ27441-G1, BQ25672)
  * Spannungswandlung (TPS63020, XC6206P332MR-G, TPS2116)
  * Diskrete Bauteile (HL3416)
- Updated table of contents to include new datasheet section
- Improved readability by removing link clutter from technical text
- Fixed flowchart diagram functionality in Hardware_PowerSupply.de.md
2025-10-06 15:20:12 +02:00
ad9859ed79 fix: doc link 2025-10-06 15:11:21 +02:00
ed4cb8058b fix: TOC 2025-10-06 15:10:28 +02:00
08757c0688 docs: Improve Hardware_PowerSupply.de.md styling and add component datasheets
- Stylistic improvements:
  - Bold formatting for used components (XB4908A, BQ27441-G1, BQ25672, TPS63020, XC6206P332MR-G, TPS2116, HL3416)
  - Italic formatting for unused/comparison components (FM2113, AO3400A, MDD2302, BQ27427)
  - Consistent units formatting with proper spacing (μA, mV, mΩ, K/W)
  - Improved mathematical formulas and typography
  - Fixed German spelling and punctuation
  - Completed internal cross-references

- Added datasheets for all used components:
  - BQ25672 charger IC (doc/datasheets/Charger/)
  - TPS63020 buck-boost converter (doc/datasheets/DC-DC Converter/)
  - XC6206P332MR-G 3.3V LDO (doc/datasheets/LDO/)
  - TPS2116 power multiplexer (doc/datasheets/Power Mux/)
  - HL3416 N-FET MOSFET (doc/datasheets/MOSFET/)

- Linked all component references to their respective datasheets
- Fixed corrupted table of contents
2025-10-06 15:06:46 +02:00
55245b12d6 feat: improving documentation 2025-10-06 14:28:51 +02:00
de5b4b52cb feat: added KiCad project 2025-10-06 08:33:28 +02:00
70aa121395 Merge branch 'main' of https://gitea.iten.pro/edi/PowerProfiler 2025-10-05 21:43:19 +02:00
561cbade1f EDIT: Documentation 2025-10-05 17:16:16 +02:00
36 changed files with 161925 additions and 209 deletions

52
Hardware/.gitignore vendored
View File

@@ -3,52 +3,16 @@
*.bak
*.bck
*~
#*
\#*
.#*
*.kicad_pcb-bak
*.kicad_pro.bak
*.kicad_sch.bak
# Ignore automatically generated files
*.erc
*.net
*-cache.lib
*-rescue.lib
*.dcm
*.lib
*.mod
*.cmp
*.gbr
*.drl
*.pos
*.rpt
*.log
*.zip
*.pdf
*.svg
*.png
*.json
*.html
*.xml
*.csv
*.txt
*.bom
*.kicad_wks
*.kicad_dru
*.kicad_sym
*.kicad_mod
*.fpc
*.lck
sym-lib-table
fp-lib-table
fp-info-cache
*.cache
*-backups
*.kicad_prl
# Project local settings files and backups
*.kicad_prl
# macOS specific files
.DS_Store
._*
# Windows specific files
Thumbs.db
# Editor/OS fluff
*.swp
_autosave*

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,682 @@
{
"board": {
"3dviewports": [],
"design_settings": {
"defaults": {
"apply_defaults_to_fp_fields": false,
"apply_defaults_to_fp_shapes": false,
"apply_defaults_to_fp_text": false,
"board_outline_line_width": 0.05,
"copper_line_width": 0.2,
"copper_text_italic": false,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"copper_text_upright": false,
"courtyard_line_width": 0.05,
"dimension_precision": 4,
"dimension_units": 3,
"dimensions": {
"arrow_length": 1270000,
"extension_offset": 500000,
"keep_text_aligned": true,
"suppress_zeroes": true,
"text_position": 0,
"units_format": 0
},
"fab_line_width": 0.1,
"fab_text_italic": false,
"fab_text_size_h": 1.0,
"fab_text_size_v": 1.0,
"fab_text_thickness": 0.15,
"fab_text_upright": false,
"other_line_width": 0.1,
"other_text_italic": false,
"other_text_size_h": 1.0,
"other_text_size_v": 1.0,
"other_text_thickness": 0.15,
"other_text_upright": false,
"pads": {
"drill": 0.8,
"height": 1.27,
"width": 2.54
},
"silk_line_width": 0.1,
"silk_text_italic": false,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.1,
"silk_text_upright": false,
"zones": {
"min_clearance": 0.1
}
},
"diff_pair_dimensions": [
{
"gap": 0.0,
"via_gap": 0.0,
"width": 0.0
}
],
"drc_exclusions": [],
"meta": {
"version": 2
},
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"connection_width": "warning",
"copper_edge_clearance": "error",
"copper_sliver": "warning",
"courtyards_overlap": "error",
"creepage": "error",
"diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error",
"duplicate_footprints": "warning",
"extra_footprint": "warning",
"footprint": "error",
"footprint_filters_mismatch": "ignore",
"footprint_symbol_mismatch": "warning",
"footprint_type_mismatch": "ignore",
"hole_clearance": "error",
"hole_to_hole": "warning",
"holes_co_located": "warning",
"invalid_outline": "error",
"isolated_copper": "warning",
"item_on_disabled_layer": "error",
"items_not_allowed": "error",
"length_out_of_range": "error",
"lib_footprint_issues": "warning",
"lib_footprint_mismatch": "warning",
"malformed_courtyard": "error",
"microvia_drill_out_of_range": "error",
"mirrored_text_on_front_layer": "warning",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"nonmirrored_text_on_back_layer": "warning",
"npth_inside_courtyard": "ignore",
"padstack": "warning",
"pth_inside_courtyard": "ignore",
"shorting_items": "error",
"silk_edge_clearance": "warning",
"silk_over_copper": "warning",
"silk_overlap": "warning",
"skew_out_of_range": "error",
"solder_mask_bridge": "error",
"starved_thermal": "error",
"text_height": "warning",
"text_on_edge_cuts": "error",
"text_thickness": "warning",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_angle": "error",
"track_dangling": "warning",
"track_segment_length": "error",
"track_width": "error",
"tracks_crossing": "error",
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
"zones_intersect": "error"
},
"rules": {
"max_error": 0.005,
"min_clearance": 0.09,
"min_connection": 0.0,
"min_copper_edge_clearance": 0.3,
"min_groove_width": 0.0,
"min_hole_clearance": 0.15,
"min_hole_to_hole": 0.2,
"min_microvia_diameter": 0.2,
"min_microvia_drill": 0.1,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.0,
"min_text_height": 1.0,
"min_text_thickness": 0.15,
"min_through_hole_diameter": 0.2,
"min_track_width": 0.09,
"min_via_annular_width": 0.1,
"min_via_diameter": 0.4,
"solder_mask_to_copper_clearance": 0.0,
"use_height_for_length_calcs": true
},
"teardrop_options": [
{
"td_onpthpad": true,
"td_onroundshapesonly": false,
"td_onsmdpad": true,
"td_ontrackend": false,
"td_onvia": true
}
],
"teardrop_parameters": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [
0.0,
0.2,
0.4,
0.6
],
"tuning_pattern_settings": {
"diff_pair_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 1.0
},
"diff_pair_skew_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
},
"single_track_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
}
},
"via_dimensions": [
{
"diameter": 0.0,
"drill": 0.0
},
{
"diameter": 0.4,
"drill": 0.2
}
],
"zones_allow_external_fillets": false
},
"ipc2581": {
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
},
"layer_pairs": [],
"layer_presets": [],
"viewports": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"erc": {
"erc_exclusions": [],
"meta": {
"version": 0
},
"pin_map": [
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
1,
2
],
[
0,
1,
0,
0,
0,
0,
1,
1,
2,
1,
1,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2
],
[
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
2
],
[
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
1,
2,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
0,
2,
1,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
]
],
"rule_severities": {
"bus_definition_conflict": "error",
"bus_entry_needed": "error",
"bus_to_bus_conflict": "error",
"bus_to_net_conflict": "error",
"different_unit_footprint": "error",
"different_unit_net": "error",
"duplicate_reference": "error",
"duplicate_sheet_names": "error",
"endpoint_off_grid": "warning",
"extra_units": "error",
"footprint_filter": "ignore",
"footprint_link_issues": "warning",
"four_way_junction": "ignore",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"label_multiple_wires": "warning",
"lib_symbol_issues": "warning",
"lib_symbol_mismatch": "warning",
"missing_bidi_pin": "warning",
"missing_input_pin": "warning",
"missing_power_pin": "error",
"missing_unit": "warning",
"multiple_net_names": "warning",
"net_not_bus_member": "warning",
"no_connect_connected": "warning",
"no_connect_dangling": "warning",
"pin_not_connected": "error",
"pin_not_driven": "error",
"pin_to_pin": "warning",
"power_pin_not_driven": "error",
"same_local_global_label": "warning",
"similar_label_and_power": "warning",
"similar_labels": "warning",
"similar_power": "warning",
"simulation_model_issue": "ignore",
"single_global_label": "ignore",
"unannotated": "error",
"unconnected_wire_endpoint": "warning",
"undefined_netclass": "error",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "PowerProfiler.kicad_pro",
"version": 3
},
"net_settings": {
"classes": [
{
"bus_width": 12,
"clearance": 0.15,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"priority": 2147483647,
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.2,
"via_diameter": 0.5,
"via_drill": 0.2,
"wire_width": 6
}
],
"meta": {
"version": 4
},
"net_colors": null,
"netclass_assignments": null,
"netclass_patterns": []
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"plot": "",
"pos_files": "",
"specctra_dsn": "",
"step": "",
"svg": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"annotate_start_num": 0,
"bom_export_filename": "${PROJECTNAME}.csv",
"bom_fmt_presets": [],
"bom_fmt_settings": {
"field_delimiter": ",",
"keep_line_breaks": false,
"keep_tabs": false,
"name": "CSV",
"ref_delimiter": ",",
"ref_range_delimiter": "",
"string_delimiter": "\""
},
"bom_presets": [],
"bom_settings": {
"exclude_dnp": false,
"fields_ordered": [
{
"group_by": false,
"label": "Reference",
"name": "Reference",
"show": true
},
{
"group_by": false,
"label": "Qty",
"name": "${QUANTITY}",
"show": true
},
{
"group_by": true,
"label": "Value",
"name": "Value",
"show": true
},
{
"group_by": true,
"label": "DNP",
"name": "${DNP}",
"show": true
},
{
"group_by": true,
"label": "Exclude from BOM",
"name": "${EXCLUDE_FROM_BOM}",
"show": true
},
{
"group_by": true,
"label": "Exclude from Board",
"name": "${EXCLUDE_FROM_BOARD}",
"show": true
},
{
"group_by": true,
"label": "Footprint",
"name": "Footprint",
"show": true
},
{
"group_by": false,
"label": "Datasheet",
"name": "Datasheet",
"show": true
},
{
"group_by": false,
"label": "Beschreibung",
"name": "Description",
"show": false
},
{
"group_by": false,
"label": "#",
"name": "${ITEM_NUMBER}",
"show": false
},
{
"group_by": false,
"label": "Manufacturer Part #",
"name": "Manufacturer Part #",
"show": false
},
{
"group_by": false,
"label": "Manufacturer",
"name": "Manufacturer",
"show": false
}
],
"filter_string": "",
"group_symbols": true,
"include_excluded_from_bom": true,
"name": "",
"sort_asc": true,
"sort_field": "Reference"
},
"connection_grid_size": 50.0,
"drawing": {
"dashed_lines_dash_length_ratio": 12.0,
"dashed_lines_gap_length_ratio": 3.0,
"default_line_thickness": 6.0,
"default_text_size": 50.0,
"field_names": [
{
"name": "Manufacturer",
"url": false,
"visible": false
},
{
"name": "Manufacturer Part #",
"url": false,
"visible": false
}
],
"intersheets_ref_own_page": false,
"intersheets_ref_prefix": "",
"intersheets_ref_short": false,
"intersheets_ref_show": false,
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.375,
"operating_point_overlay_i_precision": 3,
"operating_point_overlay_i_range": "~A",
"operating_point_overlay_v_precision": 3,
"operating_point_overlay_v_range": "~V",
"overbar_offset_ratio": 1.23,
"pin_symbol_size": 25.0,
"text_offset_ratio": 0.15
},
"legacy_lib_dir": "",
"legacy_lib_list": [],
"meta": {
"version": 1
},
"net_format_name": "",
"page_layout_descr_file": "",
"plot_directory": "",
"space_save_all_events": true,
"spice_current_sheet_as_root": false,
"spice_external_command": "spice \"%I\"",
"spice_model_current_sheet_as_root": true,
"spice_save_all_currents": false,
"spice_save_all_dissipations": false,
"spice_save_all_voltages": false,
"subpart_first_id": 65,
"subpart_id_separator": 0
},
"sheets": [
[
"e4bfa966-4d19-41fd-8230-f213f4db5fbf",
"Root"
],
[
"c0628d30-5a3b-4320-aa2a-0a2a91f3280a",
"Battery"
],
[
"af48f4a0-596a-45d5-9bf2-f5a9cf70b281",
"Charger"
]
],
"text_variables": {}
}

View File

@@ -0,0 +1,178 @@
(kicad_sch
(version 20250114)
(generator "eeschema")
(generator_version "9.0")
(uuid "e4bfa966-4d19-41fd-8230-f213f4db5fbf")
(paper "A4")
(lib_symbols)
(wire
(pts
(xy 95.25 74.93) (xy 104.14 74.93)
)
(stroke
(width 0)
(type default)
)
(uuid "0846c22c-382c-423a-8aa6-e7f511060e9b")
)
(sheet
(at 104.14 53.34)
(size 30.48 40.64)
(exclude_from_sim no)
(in_bom yes)
(on_board yes)
(dnp no)
(fields_autoplaced yes)
(stroke
(width 0.1524)
(type solid)
)
(fill
(color 0 0 0 0.0000)
)
(uuid "af48f4a0-596a-45d5-9bf2-f5a9cf70b281")
(property "Sheetname" "Charger"
(at 104.14 52.6284 0)
(effects
(font
(size 1.27 1.27)
)
(justify left bottom)
)
)
(property "Sheetfile" "charger.kicad_sch"
(at 104.14 94.5646 0)
(effects
(font
(size 1.27 1.27)
)
(justify left top)
)
)
(pin "VDEBUG" passive
(at 104.14 58.42 180)
(uuid "b533256a-68a2-425f-ad28-f75ab8285532")
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
)
(pin "VNTC" passive
(at 104.14 74.93 180)
(uuid "233db376-b10f-4254-8d6a-5566042cc843")
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
)
(pin "VUSB" passive
(at 104.14 55.88 180)
(uuid "29f84392-43bf-4fe2-ad8a-c37c6bb87e76")
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
)
(instances
(project "PowerProfiler"
(path "/e4bfa966-4d19-41fd-8230-f213f4db5fbf"
(page "3")
)
)
)
)
(sheet
(at 73.66 53.34)
(size 21.59 36.83)
(exclude_from_sim no)
(in_bom yes)
(on_board yes)
(dnp no)
(fields_autoplaced yes)
(stroke
(width 0.1524)
(type solid)
)
(fill
(color 0 0 0 0.0000)
)
(uuid "c0628d30-5a3b-4320-aa2a-0a2a91f3280a")
(property "Sheetname" "Battery"
(at 73.66 52.6284 0)
(effects
(font
(size 1.27 1.27)
)
(justify left bottom)
)
)
(property "Sheetfile" "battery.kicad_sch"
(at 73.66 90.7546 0)
(effects
(font
(size 1.27 1.27)
)
(justify left top)
)
)
(pin "GPOUT" bidirectional
(at 95.25 62.23 0)
(uuid "a71c4cc5-5b39-42f7-991d-854c720daaf4")
(effects
(font
(size 1.27 1.27)
)
(justify right)
)
)
(pin "SCL" input
(at 95.25 66.04 0)
(uuid "aa4d22ff-0e58-4f45-8d96-f5a497063981")
(effects
(font
(size 1.27 1.27)
)
(justify right)
)
)
(pin "SDA" bidirectional
(at 95.25 68.58 0)
(uuid "f4df937d-0469-4613-922a-e513e36ebac9")
(effects
(font
(size 1.27 1.27)
)
(justify right)
)
)
(pin "VNTC" passive
(at 95.25 74.93 0)
(uuid "b85f8b4e-d520-4f53-b215-2bff033f90ac")
(effects
(font
(size 1.27 1.27)
)
(justify right)
)
)
(instances
(project "PowerProfiler"
(path "/e4bfa966-4d19-41fd-8230-f213f4db5fbf"
(page "2")
)
)
)
)
(sheet_instances
(path "/"
(page "1")
)
)
(embedded_fonts no)
)

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,578 @@
ISO-10303-21;
HEADER;
/* Generated by software containing ST-Developer
* from STEP Tools, Inc. (www.steptools.com)
*/
/* OPTION: using custom renumber hook */
FILE_DESCRIPTION(
/* description */ ('STEP AP242',
'CAx-IF Rec.Pracs.---Representation and Presentation of Product Manufa
cturing Information (PMI)---4.0---2014-10-13',
'CAx-IF Rec.Pracs.---3D Tessellated Geometry---0.4---2014-09-14','2;1'),
/* implementation_level */ '2;1');
FILE_NAME(
/* name */ '68f088965aba2cec144d3804',
/* time_stamp */ '2025-10-16T05:54:31Z',
/* author */ (''),
/* organization */ (''),
/* preprocessor_version */ 'ST-DEVELOPER v20',
/* originating_system */ 'ONSHAPE BY PTC INC, 1.205',
/* authorisation */ ' ');
FILE_SCHEMA (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF { 1 0 10303 442 1 1 4 }'));
ENDSEC;
DATA;
#10=SHAPE_REPRESENTATION_RELATIONSHIP('','',#299,#11);
#11=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#297),#521);
#12=TOROIDAL_SURFACE('',#329,0.0001,5.E-5);
#13=TOROIDAL_SURFACE('',#332,0.0001,5.E-5);
#14=TOROIDAL_SURFACE('',#335,0.0001,5.E-5);
#15=TOROIDAL_SURFACE('',#338,0.0001,5.E-5);
#16=CYLINDRICAL_SURFACE('',#315,5.E-5);
#17=CYLINDRICAL_SURFACE('',#318,5.E-5);
#18=CYLINDRICAL_SURFACE('',#321,5.E-5);
#19=CYLINDRICAL_SURFACE('',#324,5.E-5);
#20=CYLINDRICAL_SURFACE('',#327,0.00015);
#21=CYLINDRICAL_SURFACE('',#330,0.00015);
#22=CYLINDRICAL_SURFACE('',#333,0.00015);
#23=CYLINDRICAL_SURFACE('',#336,0.00015);
#24=LINE('',#442,#44);
#25=LINE('',#446,#45);
#26=LINE('',#450,#46);
#27=LINE('',#454,#47);
#28=LINE('',#456,#48);
#29=LINE('',#459,#49);
#30=LINE('',#461,#50);
#31=LINE('',#463,#51);
#32=LINE('',#465,#52);
#33=LINE('',#468,#53);
#34=LINE('',#470,#54);
#35=LINE('',#472,#55);
#36=LINE('',#474,#56);
#37=LINE('',#477,#57);
#38=LINE('',#479,#58);
#39=LINE('',#481,#59);
#40=LINE('',#483,#60);
#41=LINE('',#486,#61);
#42=LINE('',#488,#62);
#43=LINE('',#490,#63);
#44=VECTOR('',#345,1.);
#45=VECTOR('',#348,1.);
#46=VECTOR('',#351,1.);
#47=VECTOR('',#354,1.);
#48=VECTOR('',#357,1.);
#49=VECTOR('',#358,1.);
#50=VECTOR('',#359,1.);
#51=VECTOR('',#360,1.);
#52=VECTOR('',#363,1.);
#53=VECTOR('',#364,1.);
#54=VECTOR('',#365,1.);
#55=VECTOR('',#366,1.);
#56=VECTOR('',#369,1.);
#57=VECTOR('',#370,1.);
#58=VECTOR('',#371,1.);
#59=VECTOR('',#372,1.);
#60=VECTOR('',#375,1.);
#61=VECTOR('',#376,1.);
#62=VECTOR('',#377,1.);
#63=VECTOR('',#378,1.);
#64=ORIENTED_EDGE('',*,*,#144,.F.);
#65=ORIENTED_EDGE('',*,*,#145,.T.);
#66=ORIENTED_EDGE('',*,*,#146,.F.);
#67=ORIENTED_EDGE('',*,*,#147,.T.);
#68=ORIENTED_EDGE('',*,*,#148,.F.);
#69=ORIENTED_EDGE('',*,*,#149,.T.);
#70=ORIENTED_EDGE('',*,*,#150,.F.);
#71=ORIENTED_EDGE('',*,*,#151,.T.);
#72=ORIENTED_EDGE('',*,*,#152,.F.);
#73=ORIENTED_EDGE('',*,*,#153,.T.);
#74=ORIENTED_EDGE('',*,*,#154,.T.);
#75=ORIENTED_EDGE('',*,*,#155,.T.);
#76=ORIENTED_EDGE('',*,*,#156,.T.);
#77=ORIENTED_EDGE('',*,*,#157,.T.);
#78=ORIENTED_EDGE('',*,*,#158,.T.);
#79=ORIENTED_EDGE('',*,*,#159,.T.);
#80=ORIENTED_EDGE('',*,*,#160,.T.);
#81=ORIENTED_EDGE('',*,*,#161,.T.);
#82=ORIENTED_EDGE('',*,*,#162,.T.);
#83=ORIENTED_EDGE('',*,*,#163,.T.);
#84=ORIENTED_EDGE('',*,*,#164,.T.);
#85=ORIENTED_EDGE('',*,*,#165,.T.);
#86=ORIENTED_EDGE('',*,*,#166,.F.);
#87=ORIENTED_EDGE('',*,*,#167,.T.);
#88=ORIENTED_EDGE('',*,*,#166,.T.);
#89=ORIENTED_EDGE('',*,*,#168,.T.);
#90=ORIENTED_EDGE('',*,*,#160,.F.);
#91=ORIENTED_EDGE('',*,*,#169,.T.);
#92=ORIENTED_EDGE('',*,*,#156,.F.);
#93=ORIENTED_EDGE('',*,*,#170,.T.);
#94=ORIENTED_EDGE('',*,*,#152,.T.);
#95=ORIENTED_EDGE('',*,*,#171,.T.);
#96=ORIENTED_EDGE('',*,*,#158,.F.);
#97=ORIENTED_EDGE('',*,*,#172,.T.);
#98=ORIENTED_EDGE('',*,*,#147,.F.);
#99=ORIENTED_EDGE('',*,*,#173,.T.);
#100=ORIENTED_EDGE('',*,*,#154,.F.);
#101=ORIENTED_EDGE('',*,*,#174,.T.);
#102=ORIENTED_EDGE('',*,*,#145,.F.);
#103=ORIENTED_EDGE('',*,*,#175,.T.);
#104=ORIENTED_EDGE('',*,*,#162,.F.);
#105=ORIENTED_EDGE('',*,*,#176,.T.);
#106=ORIENTED_EDGE('',*,*,#149,.F.);
#107=ORIENTED_EDGE('',*,*,#177,.T.);
#108=ORIENTED_EDGE('',*,*,#164,.F.);
#109=ORIENTED_EDGE('',*,*,#178,.T.);
#110=ORIENTED_EDGE('',*,*,#151,.F.);
#111=ORIENTED_EDGE('',*,*,#179,.T.);
#112=ORIENTED_EDGE('',*,*,#171,.F.);
#113=ORIENTED_EDGE('',*,*,#155,.F.);
#114=ORIENTED_EDGE('',*,*,#180,.F.);
#115=ORIENTED_EDGE('',*,*,#167,.F.);
#116=ORIENTED_EDGE('',*,*,#175,.F.);
#117=ORIENTED_EDGE('',*,*,#144,.T.);
#118=ORIENTED_EDGE('',*,*,#178,.F.);
#119=ORIENTED_EDGE('',*,*,#180,.T.);
#120=ORIENTED_EDGE('',*,*,#170,.F.);
#121=ORIENTED_EDGE('',*,*,#159,.F.);
#122=ORIENTED_EDGE('',*,*,#181,.F.);
#123=ORIENTED_EDGE('',*,*,#153,.F.);
#124=ORIENTED_EDGE('',*,*,#173,.F.);
#125=ORIENTED_EDGE('',*,*,#146,.T.);
#126=ORIENTED_EDGE('',*,*,#174,.F.);
#127=ORIENTED_EDGE('',*,*,#181,.T.);
#128=ORIENTED_EDGE('',*,*,#169,.F.);
#129=ORIENTED_EDGE('',*,*,#163,.F.);
#130=ORIENTED_EDGE('',*,*,#182,.F.);
#131=ORIENTED_EDGE('',*,*,#157,.F.);
#132=ORIENTED_EDGE('',*,*,#172,.F.);
#133=ORIENTED_EDGE('',*,*,#182,.T.);
#134=ORIENTED_EDGE('',*,*,#177,.F.);
#135=ORIENTED_EDGE('',*,*,#148,.T.);
#136=ORIENTED_EDGE('',*,*,#168,.F.);
#137=ORIENTED_EDGE('',*,*,#165,.F.);
#138=ORIENTED_EDGE('',*,*,#183,.F.);
#139=ORIENTED_EDGE('',*,*,#161,.F.);
#140=ORIENTED_EDGE('',*,*,#176,.F.);
#141=ORIENTED_EDGE('',*,*,#183,.T.);
#142=ORIENTED_EDGE('',*,*,#179,.F.);
#143=ORIENTED_EDGE('',*,*,#150,.T.);
#144=EDGE_CURVE('',#184,#185,#208,.F.);
#145=EDGE_CURVE('',#184,#186,#24,.F.);
#146=EDGE_CURVE('',#187,#186,#209,.F.);
#147=EDGE_CURVE('',#187,#188,#25,.T.);
#148=EDGE_CURVE('',#189,#188,#210,.F.);
#149=EDGE_CURVE('',#189,#190,#26,.T.);
#150=EDGE_CURVE('',#191,#190,#211,.F.);
#151=EDGE_CURVE('',#191,#185,#27,.F.);
#152=EDGE_CURVE('',#192,#193,#28,.T.);
#153=EDGE_CURVE('',#192,#194,#29,.F.);
#154=EDGE_CURVE('',#194,#195,#30,.T.);
#155=EDGE_CURVE('',#195,#193,#31,.T.);
#156=EDGE_CURVE('',#196,#197,#32,.T.);
#157=EDGE_CURVE('',#197,#198,#33,.F.);
#158=EDGE_CURVE('',#198,#199,#34,.F.);
#159=EDGE_CURVE('',#199,#196,#35,.T.);
#160=EDGE_CURVE('',#200,#201,#36,.T.);
#161=EDGE_CURVE('',#201,#202,#37,.F.);
#162=EDGE_CURVE('',#202,#203,#38,.F.);
#163=EDGE_CURVE('',#203,#200,#39,.T.);
#164=EDGE_CURVE('',#204,#205,#40,.T.);
#165=EDGE_CURVE('',#205,#206,#41,.T.);
#166=EDGE_CURVE('',#207,#206,#42,.T.);
#167=EDGE_CURVE('',#207,#204,#43,.F.);
#168=EDGE_CURVE('',#206,#201,#212,.F.);
#169=EDGE_CURVE('',#200,#197,#213,.F.);
#170=EDGE_CURVE('',#196,#192,#214,.F.);
#171=EDGE_CURVE('',#193,#207,#215,.F.);
#172=EDGE_CURVE('',#198,#188,#216,.T.);
#173=EDGE_CURVE('',#187,#199,#217,.T.);
#174=EDGE_CURVE('',#194,#186,#218,.T.);
#175=EDGE_CURVE('',#184,#195,#219,.T.);
#176=EDGE_CURVE('',#202,#190,#220,.T.);
#177=EDGE_CURVE('',#189,#203,#221,.T.);
#178=EDGE_CURVE('',#204,#185,#222,.T.);
#179=EDGE_CURVE('',#191,#205,#223,.T.);
#180=EDGE_CURVE('',#204,#195,#224,.T.);
#181=EDGE_CURVE('',#194,#199,#225,.T.);
#182=EDGE_CURVE('',#198,#203,#226,.T.);
#183=EDGE_CURVE('',#202,#205,#227,.T.);
#184=VERTEX_POINT('',#440);
#185=VERTEX_POINT('',#441);
#186=VERTEX_POINT('',#443);
#187=VERTEX_POINT('',#445);
#188=VERTEX_POINT('',#447);
#189=VERTEX_POINT('',#449);
#190=VERTEX_POINT('',#451);
#191=VERTEX_POINT('',#453);
#192=VERTEX_POINT('',#457);
#193=VERTEX_POINT('',#458);
#194=VERTEX_POINT('',#460);
#195=VERTEX_POINT('',#462);
#196=VERTEX_POINT('',#466);
#197=VERTEX_POINT('',#467);
#198=VERTEX_POINT('',#469);
#199=VERTEX_POINT('',#471);
#200=VERTEX_POINT('',#475);
#201=VERTEX_POINT('',#476);
#202=VERTEX_POINT('',#478);
#203=VERTEX_POINT('',#480);
#204=VERTEX_POINT('',#484);
#205=VERTEX_POINT('',#485);
#206=VERTEX_POINT('',#487);
#207=VERTEX_POINT('',#489);
#208=CIRCLE('',#302,0.0001);
#209=CIRCLE('',#303,0.0001);
#210=CIRCLE('',#304,0.0001);
#211=CIRCLE('',#305,0.0001);
#212=CIRCLE('',#311,0.00015);
#213=CIRCLE('',#312,0.00015);
#214=CIRCLE('',#313,0.00015);
#215=CIRCLE('',#314,0.00015);
#216=CIRCLE('',#316,5.E-5);
#217=CIRCLE('',#317,5.E-5);
#218=CIRCLE('',#319,5.E-5);
#219=CIRCLE('',#320,5.E-5);
#220=CIRCLE('',#322,5.E-5);
#221=CIRCLE('',#323,5.E-5);
#222=CIRCLE('',#325,5.E-5);
#223=CIRCLE('',#326,5.E-5);
#224=CIRCLE('',#328,0.00015);
#225=CIRCLE('',#331,0.00015);
#226=CIRCLE('',#334,0.00015);
#227=CIRCLE('',#337,0.00015);
#228=EDGE_LOOP('',(#64,#65,#66,#67,#68,#69,#70,#71));
#229=EDGE_LOOP('',(#72,#73,#74,#75));
#230=EDGE_LOOP('',(#76,#77,#78,#79));
#231=EDGE_LOOP('',(#80,#81,#82,#83));
#232=EDGE_LOOP('',(#84,#85,#86,#87));
#233=EDGE_LOOP('',(#88,#89,#90,#91,#92,#93,#94,#95));
#234=EDGE_LOOP('',(#96,#97,#98,#99));
#235=EDGE_LOOP('',(#100,#101,#102,#103));
#236=EDGE_LOOP('',(#104,#105,#106,#107));
#237=EDGE_LOOP('',(#108,#109,#110,#111));
#238=EDGE_LOOP('',(#112,#113,#114,#115));
#239=EDGE_LOOP('',(#116,#117,#118,#119));
#240=EDGE_LOOP('',(#120,#121,#122,#123));
#241=EDGE_LOOP('',(#124,#125,#126,#127));
#242=EDGE_LOOP('',(#128,#129,#130,#131));
#243=EDGE_LOOP('',(#132,#133,#134,#135));
#244=EDGE_LOOP('',(#136,#137,#138,#139));
#245=EDGE_LOOP('',(#140,#141,#142,#143));
#246=FACE_BOUND('',#228,.T.);
#247=FACE_BOUND('',#229,.T.);
#248=FACE_BOUND('',#230,.T.);
#249=FACE_BOUND('',#231,.T.);
#250=FACE_BOUND('',#232,.T.);
#251=FACE_BOUND('',#233,.T.);
#252=FACE_BOUND('',#234,.T.);
#253=FACE_BOUND('',#235,.T.);
#254=FACE_BOUND('',#236,.T.);
#255=FACE_BOUND('',#237,.T.);
#256=FACE_BOUND('',#238,.T.);
#257=FACE_BOUND('',#239,.T.);
#258=FACE_BOUND('',#240,.T.);
#259=FACE_BOUND('',#241,.T.);
#260=FACE_BOUND('',#242,.T.);
#261=FACE_BOUND('',#243,.T.);
#262=FACE_BOUND('',#244,.T.);
#263=FACE_BOUND('',#245,.T.);
#264=PLANE('',#301);
#265=PLANE('',#306);
#266=PLANE('',#307);
#267=PLANE('',#308);
#268=PLANE('',#309);
#269=PLANE('',#310);
#270=ADVANCED_FACE('',(#246),#264,.T.);
#271=ADVANCED_FACE('',(#247),#265,.T.);
#272=ADVANCED_FACE('',(#248),#266,.F.);
#273=ADVANCED_FACE('',(#249),#267,.F.);
#274=ADVANCED_FACE('',(#250),#268,.T.);
#275=ADVANCED_FACE('',(#251),#269,.F.);
#276=ADVANCED_FACE('',(#252),#16,.T.);
#277=ADVANCED_FACE('',(#253),#17,.T.);
#278=ADVANCED_FACE('',(#254),#18,.T.);
#279=ADVANCED_FACE('',(#255),#19,.T.);
#280=ADVANCED_FACE('',(#256),#20,.T.);
#281=ADVANCED_FACE('',(#257),#12,.T.);
#282=ADVANCED_FACE('',(#258),#21,.T.);
#283=ADVANCED_FACE('',(#259),#13,.T.);
#284=ADVANCED_FACE('',(#260),#22,.T.);
#285=ADVANCED_FACE('',(#261),#14,.T.);
#286=ADVANCED_FACE('',(#262),#23,.T.);
#287=ADVANCED_FACE('',(#263),#15,.T.);
#288=CLOSED_SHELL('',(#270,#271,#272,#273,#274,#275,#276,#277,#278,#279,
#280,#281,#282,#283,#284,#285,#286,#287));
#289=STYLED_ITEM('',(#290),#297);
#290=PRESENTATION_STYLE_ASSIGNMENT((#291));
#291=SURFACE_STYLE_USAGE(.BOTH.,#292);
#292=SURFACE_SIDE_STYLE('',(#293));
#293=SURFACE_STYLE_FILL_AREA(#294);
#294=FILL_AREA_STYLE('',(#295));
#295=FILL_AREA_STYLE_COLOUR('',#296);
#296=COLOUR_RGB('',0.0392156862745098,0.0392156862745098,0.0392156862745098);
#297=MANIFOLD_SOLID_BREP('FTC252010',#288);
#298=SHAPE_DEFINITION_REPRESENTATION(#526,#299);
#299=SHAPE_REPRESENTATION('FTC252010',(#300),#521);
#300=AXIS2_PLACEMENT_3D('',#437,#339,#340);
#301=AXIS2_PLACEMENT_3D('',#438,#341,#342);
#302=AXIS2_PLACEMENT_3D('',#439,#343,#344);
#303=AXIS2_PLACEMENT_3D('',#444,#346,#347);
#304=AXIS2_PLACEMENT_3D('',#448,#349,#350);
#305=AXIS2_PLACEMENT_3D('',#452,#352,#353);
#306=AXIS2_PLACEMENT_3D('',#455,#355,#356);
#307=AXIS2_PLACEMENT_3D('',#464,#361,#362);
#308=AXIS2_PLACEMENT_3D('',#473,#367,#368);
#309=AXIS2_PLACEMENT_3D('',#482,#373,#374);
#310=AXIS2_PLACEMENT_3D('',#491,#379,#380);
#311=AXIS2_PLACEMENT_3D('',#492,#381,#382);
#312=AXIS2_PLACEMENT_3D('',#493,#383,#384);
#313=AXIS2_PLACEMENT_3D('',#494,#385,#386);
#314=AXIS2_PLACEMENT_3D('',#495,#387,#388);
#315=AXIS2_PLACEMENT_3D('',#496,#389,#390);
#316=AXIS2_PLACEMENT_3D('',#497,#391,#392);
#317=AXIS2_PLACEMENT_3D('',#498,#393,#394);
#318=AXIS2_PLACEMENT_3D('',#499,#395,#396);
#319=AXIS2_PLACEMENT_3D('',#500,#397,#398);
#320=AXIS2_PLACEMENT_3D('',#501,#399,#400);
#321=AXIS2_PLACEMENT_3D('',#502,#401,#402);
#322=AXIS2_PLACEMENT_3D('',#503,#403,#404);
#323=AXIS2_PLACEMENT_3D('',#504,#405,#406);
#324=AXIS2_PLACEMENT_3D('',#505,#407,#408);
#325=AXIS2_PLACEMENT_3D('',#506,#409,#410);
#326=AXIS2_PLACEMENT_3D('',#507,#411,#412);
#327=AXIS2_PLACEMENT_3D('',#508,#413,#414);
#328=AXIS2_PLACEMENT_3D('',#509,#415,#416);
#329=AXIS2_PLACEMENT_3D('',#510,#417,#418);
#330=AXIS2_PLACEMENT_3D('',#511,#419,#420);
#331=AXIS2_PLACEMENT_3D('',#512,#421,#422);
#332=AXIS2_PLACEMENT_3D('',#513,#423,#424);
#333=AXIS2_PLACEMENT_3D('',#514,#425,#426);
#334=AXIS2_PLACEMENT_3D('',#515,#427,#428);
#335=AXIS2_PLACEMENT_3D('',#516,#429,#430);
#336=AXIS2_PLACEMENT_3D('',#517,#431,#432);
#337=AXIS2_PLACEMENT_3D('',#518,#433,#434);
#338=AXIS2_PLACEMENT_3D('',#519,#435,#436);
#339=DIRECTION('',(0.,0.,1.));
#340=DIRECTION('',(1.,0.,0.));
#341=DIRECTION('',(0.,1.,0.));
#342=DIRECTION('',(1.,0.,0.));
#343=DIRECTION('',(0.,1.,0.));
#344=DIRECTION('',(1.,0.,0.));
#345=DIRECTION('',(-1.,0.,8.67361737988403E-17));
#346=DIRECTION('',(0.,1.,0.));
#347=DIRECTION('',(1.,0.,0.));
#348=DIRECTION('',(1.0842021724855E-16,0.,-1.));
#349=DIRECTION('',(0.,1.,0.));
#350=DIRECTION('',(1.,0.,0.));
#351=DIRECTION('',(-1.,0.,1.7347234759768E-16));
#352=DIRECTION('',(0.,1.,0.));
#353=DIRECTION('',(1.,0.,0.));
#354=DIRECTION('',(1.0842021724855E-16,0.,-1.));
#355=DIRECTION('',(8.67361737988403E-17,0.,1.));
#356=DIRECTION('',(1.,0.,-8.67361737988403E-17));
#357=DIRECTION('',(-1.,0.,8.67361737988403E-17));
#358=DIRECTION('',(0.,-1.,0.));
#359=DIRECTION('',(-1.,0.,8.67361737988403E-17));
#360=DIRECTION('',(0.,-1.,0.));
#361=DIRECTION('',(-1.,0.,-1.0842021724855E-16));
#362=DIRECTION('',(-1.0842021724855E-16,0.,1.));
#363=DIRECTION('',(1.0842021724855E-16,0.,-1.));
#364=DIRECTION('',(0.,-1.,0.));
#365=DIRECTION('',(1.0842021724855E-16,0.,-1.));
#366=DIRECTION('',(0.,-1.,0.));
#367=DIRECTION('',(1.7347234759768E-16,0.,1.));
#368=DIRECTION('',(1.,0.,-1.7347234759768E-16));
#369=DIRECTION('',(-1.,0.,1.7347234759768E-16));
#370=DIRECTION('',(0.,-1.,0.));
#371=DIRECTION('',(-1.,0.,1.7347234759768E-16));
#372=DIRECTION('',(0.,-1.,0.));
#373=DIRECTION('',(-1.,0.,-1.0842021724855E-16));
#374=DIRECTION('',(-1.0842021724855E-16,0.,1.));
#375=DIRECTION('',(1.0842021724855E-16,0.,-1.));
#376=DIRECTION('',(0.,-1.,0.));
#377=DIRECTION('',(1.0842021724855E-16,0.,-1.));
#378=DIRECTION('',(0.,-1.,0.));
#379=DIRECTION('',(0.,1.,0.));
#380=DIRECTION('',(1.,0.,0.));
#381=DIRECTION('',(0.,1.,0.));
#382=DIRECTION('',(1.,0.,0.));
#383=DIRECTION('',(0.,1.,0.));
#384=DIRECTION('',(1.,0.,0.));
#385=DIRECTION('',(0.,1.,0.));
#386=DIRECTION('',(1.,0.,0.));
#387=DIRECTION('',(0.,1.,0.));
#388=DIRECTION('',(1.,0.,0.));
#389=DIRECTION('',(-1.0842021724855E-16,0.,1.));
#390=DIRECTION('',(1.,0.,1.0842021724855E-16));
#391=DIRECTION('',(0.,0.,1.));
#392=DIRECTION('',(0.,-1.,0.));
#393=DIRECTION('',(0.,0.,-1.));
#394=DIRECTION('',(0.,1.,0.));
#395=DIRECTION('',(-1.,0.,8.67361737988403E-17));
#396=DIRECTION('',(8.67361737988403E-17,0.,1.));
#397=DIRECTION('',(-1.,0.,0.));
#398=DIRECTION('',(0.,1.,0.));
#399=DIRECTION('',(1.,0.,0.));
#400=DIRECTION('',(0.,-1.,0.));
#401=DIRECTION('',(1.,0.,-1.7347234759768E-16));
#402=DIRECTION('',(-1.7347234759768E-16,0.,-1.));
#403=DIRECTION('',(1.,0.,0.));
#404=DIRECTION('',(0.,-1.,0.));
#405=DIRECTION('',(-1.,0.,0.));
#406=DIRECTION('',(0.,1.,0.));
#407=DIRECTION('',(1.0842021724855E-16,0.,-1.));
#408=DIRECTION('',(-1.,0.,-1.0842021724855E-16));
#409=DIRECTION('',(0.,0.,-1.));
#410=DIRECTION('',(0.,1.,0.));
#411=DIRECTION('',(0.,0.,1.));
#412=DIRECTION('',(0.,-1.,0.));
#413=DIRECTION('',(0.,-1.,0.));
#414=DIRECTION('',(-1.,0.,0.));
#415=DIRECTION('',(0.,1.,0.));
#416=DIRECTION('',(1.,0.,0.));
#417=DIRECTION('',(0.,1.,0.));
#418=DIRECTION('',(1.,0.,0.));
#419=DIRECTION('',(0.,1.,0.));
#420=DIRECTION('',(1.,0.,0.));
#421=DIRECTION('',(0.,1.,0.));
#422=DIRECTION('',(1.,0.,0.));
#423=DIRECTION('',(0.,1.,0.));
#424=DIRECTION('',(1.,0.,0.));
#425=DIRECTION('',(0.,-1.,0.));
#426=DIRECTION('',(-1.,0.,0.));
#427=DIRECTION('',(0.,1.,0.));
#428=DIRECTION('',(1.,0.,0.));
#429=DIRECTION('',(0.,1.,0.));
#430=DIRECTION('',(1.,0.,0.));
#431=DIRECTION('',(0.,1.,0.));
#432=DIRECTION('',(1.,0.,0.));
#433=DIRECTION('',(0.,1.,0.));
#434=DIRECTION('',(1.,0.,0.));
#435=DIRECTION('',(0.,1.,0.));
#436=DIRECTION('',(1.,0.,0.));
#437=CARTESIAN_POINT('',(0.,0.,0.));
#438=CARTESIAN_POINT('',(0.,0.001,0.));
#439=CARTESIAN_POINT('',(-0.0011,0.001,0.00085));
#440=CARTESIAN_POINT('',(-0.0011,0.001,0.00095));
#441=CARTESIAN_POINT('',(-0.0012,0.001,0.00085));
#442=CARTESIAN_POINT('',(8.23993651088984E-20,0.001,0.00095));
#443=CARTESIAN_POINT('',(0.0011,0.001,0.00095));
#444=CARTESIAN_POINT('',(0.0011,0.001,0.00085));
#445=CARTESIAN_POINT('',(0.0012,0.001,0.00085));
#446=CARTESIAN_POINT('',(0.0012,0.001,-0.001));
#447=CARTESIAN_POINT('',(0.0012,0.001,-0.00085));
#448=CARTESIAN_POINT('',(0.0011,0.001,-0.00085));
#449=CARTESIAN_POINT('',(0.0011,0.001,-0.00095));
#450=CARTESIAN_POINT('',(-0.00125,0.001,-0.00095));
#451=CARTESIAN_POINT('',(-0.0011,0.001,-0.00095));
#452=CARTESIAN_POINT('',(-0.0011,0.001,-0.00085));
#453=CARTESIAN_POINT('',(-0.0012,0.001,-0.00085));
#454=CARTESIAN_POINT('',(-0.0012,0.001,-1.3010426069826E-19));
#455=CARTESIAN_POINT('',(0.,0.001,0.001));
#456=CARTESIAN_POINT('',(0.,0.,0.001));
#457=CARTESIAN_POINT('',(0.0011,0.,0.001));
#458=CARTESIAN_POINT('',(-0.0011,0.,0.001));
#459=CARTESIAN_POINT('',(0.0011,0.00095,0.001));
#460=CARTESIAN_POINT('',(0.0011,0.00095,0.001));
#461=CARTESIAN_POINT('',(0.,0.00095,0.001));
#462=CARTESIAN_POINT('',(-0.0011,0.00095,0.001));
#463=CARTESIAN_POINT('',(-0.0011,0.001,0.001));
#464=CARTESIAN_POINT('',(0.00125,0.001,0.));
#465=CARTESIAN_POINT('',(0.00125,0.,0.));
#466=CARTESIAN_POINT('',(0.00125,0.,0.00085));
#467=CARTESIAN_POINT('',(0.00125,0.,-0.00085));
#468=CARTESIAN_POINT('',(0.00125,0.001,-0.00085));
#469=CARTESIAN_POINT('',(0.00125,0.00095,-0.00085));
#470=CARTESIAN_POINT('',(0.00125,0.00095,0.001));
#471=CARTESIAN_POINT('',(0.00125,0.00095,0.00085));
#472=CARTESIAN_POINT('',(0.00125,0.,0.00085));
#473=CARTESIAN_POINT('',(2.16840434497101E-19,0.001,-0.001));
#474=CARTESIAN_POINT('',(2.16840434497101E-19,0.,-0.001));
#475=CARTESIAN_POINT('',(0.0011,0.,-0.001));
#476=CARTESIAN_POINT('',(-0.0011,0.,-0.001));
#477=CARTESIAN_POINT('',(-0.0011,0.00095,-0.001));
#478=CARTESIAN_POINT('',(-0.0011,0.00095,-0.001));
#479=CARTESIAN_POINT('',(0.00125,0.00095,-0.001));
#480=CARTESIAN_POINT('',(0.0011,0.00095,-0.001));
#481=CARTESIAN_POINT('',(0.0011,0.001,-0.001));
#482=CARTESIAN_POINT('',(-0.00125,0.001,0.));
#483=CARTESIAN_POINT('',(-0.00125,0.00095,0.));
#484=CARTESIAN_POINT('',(-0.00125,0.00095,0.00085));
#485=CARTESIAN_POINT('',(-0.00125,0.00095,-0.00085));
#486=CARTESIAN_POINT('',(-0.00125,0.,-0.00085));
#487=CARTESIAN_POINT('',(-0.00125,0.,-0.00085));
#488=CARTESIAN_POINT('',(-0.00125,0.,0.));
#489=CARTESIAN_POINT('',(-0.00125,0.,0.00085));
#490=CARTESIAN_POINT('',(-0.00125,0.001,0.00085));
#491=CARTESIAN_POINT('',(0.,0.,0.));
#492=CARTESIAN_POINT('',(-0.0011,0.,-0.00085));
#493=CARTESIAN_POINT('',(0.0011,0.,-0.00085));
#494=CARTESIAN_POINT('',(0.0011,0.,0.00085));
#495=CARTESIAN_POINT('',(-0.0011,0.,0.00085));
#496=CARTESIAN_POINT('',(0.0012,0.00095,1.3010426069826E-19));
#497=CARTESIAN_POINT('',(0.0012,0.00095,-0.00085));
#498=CARTESIAN_POINT('',(0.0012,0.00095,0.00085));
#499=CARTESIAN_POINT('',(-4.33680868994202E-21,0.00095,0.00095));
#500=CARTESIAN_POINT('',(0.0011,0.00095,0.00095));
#501=CARTESIAN_POINT('',(-0.0011,0.00095,0.00095));
#502=CARTESIAN_POINT('',(-1.64798730217795E-19,0.00095,-0.00095));
#503=CARTESIAN_POINT('',(-0.0011,0.00095,-0.00095));
#504=CARTESIAN_POINT('',(0.0011,0.00095,-0.00095));
#505=CARTESIAN_POINT('',(-0.0012,0.00095,5.42101086242752E-21));
#506=CARTESIAN_POINT('',(-0.0012,0.00095,0.00085));
#507=CARTESIAN_POINT('',(-0.0012,0.00095,-0.00085));
#508=CARTESIAN_POINT('',(-0.0011,0.001,0.00085));
#509=CARTESIAN_POINT('',(-0.0011,0.00095,0.00085));
#510=CARTESIAN_POINT('',(-0.0011,0.00095,0.00085));
#511=CARTESIAN_POINT('',(0.0011,0.001,0.00085));
#512=CARTESIAN_POINT('',(0.0011,0.00095,0.00085));
#513=CARTESIAN_POINT('',(0.0011,0.00095,0.00085));
#514=CARTESIAN_POINT('',(0.0011,0.001,-0.00085));
#515=CARTESIAN_POINT('',(0.0011,0.00095,-0.00085));
#516=CARTESIAN_POINT('',(0.0011,0.00095,-0.00085));
#517=CARTESIAN_POINT('',(-0.0011,0.001,-0.00085));
#518=CARTESIAN_POINT('',(-0.0011,0.00095,-0.00085));
#519=CARTESIAN_POINT('',(-0.0011,0.00095,-0.00085));
#520=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#289),
#521);
#521=(
GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#522))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#525,#524,#523))
REPRESENTATION_CONTEXT('FTC252010','TOP_LEVEL_ASSEMBLY_PART')
);
#522=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-8),#525,
'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model');
#523=(
NAMED_UNIT(*)
SI_UNIT($,.STERADIAN.)
SOLID_ANGLE_UNIT()
);
#524=(
NAMED_UNIT(*)
PLANE_ANGLE_UNIT()
SI_UNIT($,.RADIAN.)
);
#525=(
LENGTH_UNIT()
NAMED_UNIT(*)
SI_UNIT($,.METRE.)
);
#526=PRODUCT_DEFINITION_SHAPE('','',#527);
#527=PRODUCT_DEFINITION('','',#529,#528);
#528=PRODUCT_DEFINITION_CONTEXT('',#535,'design');
#529=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#531,
.NOT_KNOWN.);
#530=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#531));
#531=PRODUCT('FTC252010','FTC252010','FTC252010',(#533));
#532=PRODUCT_CATEGORY('','');
#533=PRODUCT_CONTEXT('',#535,'mechanical');
#534=APPLICATION_PROTOCOL_DEFINITION('international standard',
'ap242_managed_model_based_3d_engineering',2011,#535);
#535=APPLICATION_CONTEXT('managed model based 3d engineering');
ENDSEC;
END-ISO-10303-21;

View File

@@ -0,0 +1,578 @@
ISO-10303-21;
HEADER;
/* Generated by software containing ST-Developer
* from STEP Tools, Inc. (www.steptools.com)
*/
/* OPTION: using custom renumber hook */
FILE_DESCRIPTION(
/* description */ ('STEP AP242',
'CAx-IF Rec.Pracs.---Representation and Presentation of Product Manufa
cturing Information (PMI)---4.0---2014-10-13',
'CAx-IF Rec.Pracs.---3D Tessellated Geometry---0.4---2014-09-14','2;1'),
/* implementation_level */ '2;1');
FILE_NAME(
/* name */ '68cd521d3b7a5739942a4ac7',
/* time_stamp */ '2025-09-19T12:52:46Z',
/* author */ (''),
/* organization */ (''),
/* preprocessor_version */ 'ST-DEVELOPER v20',
/* originating_system */ 'ONSHAPE BY PTC INC, 1.203',
/* authorisation */ ' ');
FILE_SCHEMA (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF { 1 0 10303 442 1 1 4 }'));
ENDSEC;
DATA;
#10=SHAPE_REPRESENTATION_RELATIONSHIP('','',#299,#11);
#11=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#297),#521);
#12=TOROIDAL_SURFACE('',#329,0.0001,5.E-5);
#13=TOROIDAL_SURFACE('',#332,0.0001,5.E-5);
#14=TOROIDAL_SURFACE('',#335,0.0001,5.E-5);
#15=TOROIDAL_SURFACE('',#338,0.0001,5.E-5);
#16=CYLINDRICAL_SURFACE('',#315,5.E-5);
#17=CYLINDRICAL_SURFACE('',#318,5.E-5);
#18=CYLINDRICAL_SURFACE('',#321,5.E-5);
#19=CYLINDRICAL_SURFACE('',#324,5.E-5);
#20=CYLINDRICAL_SURFACE('',#327,0.00015);
#21=CYLINDRICAL_SURFACE('',#330,0.00015);
#22=CYLINDRICAL_SURFACE('',#333,0.00015);
#23=CYLINDRICAL_SURFACE('',#336,0.00015);
#24=LINE('',#442,#44);
#25=LINE('',#446,#45);
#26=LINE('',#450,#46);
#27=LINE('',#454,#47);
#28=LINE('',#456,#48);
#29=LINE('',#459,#49);
#30=LINE('',#461,#50);
#31=LINE('',#463,#51);
#32=LINE('',#465,#52);
#33=LINE('',#468,#53);
#34=LINE('',#470,#54);
#35=LINE('',#472,#55);
#36=LINE('',#474,#56);
#37=LINE('',#477,#57);
#38=LINE('',#479,#58);
#39=LINE('',#481,#59);
#40=LINE('',#483,#60);
#41=LINE('',#486,#61);
#42=LINE('',#488,#62);
#43=LINE('',#490,#63);
#44=VECTOR('',#345,1.);
#45=VECTOR('',#348,1.);
#46=VECTOR('',#351,1.);
#47=VECTOR('',#354,1.);
#48=VECTOR('',#357,1.);
#49=VECTOR('',#358,1.);
#50=VECTOR('',#359,1.);
#51=VECTOR('',#360,1.);
#52=VECTOR('',#363,1.);
#53=VECTOR('',#364,1.);
#54=VECTOR('',#365,1.);
#55=VECTOR('',#366,1.);
#56=VECTOR('',#369,1.);
#57=VECTOR('',#370,1.);
#58=VECTOR('',#371,1.);
#59=VECTOR('',#372,1.);
#60=VECTOR('',#375,1.);
#61=VECTOR('',#376,1.);
#62=VECTOR('',#377,1.);
#63=VECTOR('',#378,1.);
#64=ORIENTED_EDGE('',*,*,#144,.F.);
#65=ORIENTED_EDGE('',*,*,#145,.T.);
#66=ORIENTED_EDGE('',*,*,#146,.F.);
#67=ORIENTED_EDGE('',*,*,#147,.T.);
#68=ORIENTED_EDGE('',*,*,#148,.F.);
#69=ORIENTED_EDGE('',*,*,#149,.T.);
#70=ORIENTED_EDGE('',*,*,#150,.F.);
#71=ORIENTED_EDGE('',*,*,#151,.T.);
#72=ORIENTED_EDGE('',*,*,#152,.F.);
#73=ORIENTED_EDGE('',*,*,#153,.T.);
#74=ORIENTED_EDGE('',*,*,#154,.T.);
#75=ORIENTED_EDGE('',*,*,#155,.T.);
#76=ORIENTED_EDGE('',*,*,#156,.T.);
#77=ORIENTED_EDGE('',*,*,#157,.T.);
#78=ORIENTED_EDGE('',*,*,#158,.T.);
#79=ORIENTED_EDGE('',*,*,#159,.T.);
#80=ORIENTED_EDGE('',*,*,#160,.T.);
#81=ORIENTED_EDGE('',*,*,#161,.T.);
#82=ORIENTED_EDGE('',*,*,#162,.T.);
#83=ORIENTED_EDGE('',*,*,#163,.T.);
#84=ORIENTED_EDGE('',*,*,#164,.T.);
#85=ORIENTED_EDGE('',*,*,#165,.T.);
#86=ORIENTED_EDGE('',*,*,#166,.F.);
#87=ORIENTED_EDGE('',*,*,#167,.T.);
#88=ORIENTED_EDGE('',*,*,#166,.T.);
#89=ORIENTED_EDGE('',*,*,#168,.T.);
#90=ORIENTED_EDGE('',*,*,#160,.F.);
#91=ORIENTED_EDGE('',*,*,#169,.T.);
#92=ORIENTED_EDGE('',*,*,#156,.F.);
#93=ORIENTED_EDGE('',*,*,#170,.T.);
#94=ORIENTED_EDGE('',*,*,#152,.T.);
#95=ORIENTED_EDGE('',*,*,#171,.T.);
#96=ORIENTED_EDGE('',*,*,#158,.F.);
#97=ORIENTED_EDGE('',*,*,#172,.T.);
#98=ORIENTED_EDGE('',*,*,#147,.F.);
#99=ORIENTED_EDGE('',*,*,#173,.T.);
#100=ORIENTED_EDGE('',*,*,#154,.F.);
#101=ORIENTED_EDGE('',*,*,#174,.T.);
#102=ORIENTED_EDGE('',*,*,#145,.F.);
#103=ORIENTED_EDGE('',*,*,#175,.T.);
#104=ORIENTED_EDGE('',*,*,#162,.F.);
#105=ORIENTED_EDGE('',*,*,#176,.T.);
#106=ORIENTED_EDGE('',*,*,#149,.F.);
#107=ORIENTED_EDGE('',*,*,#177,.T.);
#108=ORIENTED_EDGE('',*,*,#164,.F.);
#109=ORIENTED_EDGE('',*,*,#178,.T.);
#110=ORIENTED_EDGE('',*,*,#151,.F.);
#111=ORIENTED_EDGE('',*,*,#179,.T.);
#112=ORIENTED_EDGE('',*,*,#171,.F.);
#113=ORIENTED_EDGE('',*,*,#155,.F.);
#114=ORIENTED_EDGE('',*,*,#180,.F.);
#115=ORIENTED_EDGE('',*,*,#167,.F.);
#116=ORIENTED_EDGE('',*,*,#175,.F.);
#117=ORIENTED_EDGE('',*,*,#144,.T.);
#118=ORIENTED_EDGE('',*,*,#178,.F.);
#119=ORIENTED_EDGE('',*,*,#180,.T.);
#120=ORIENTED_EDGE('',*,*,#170,.F.);
#121=ORIENTED_EDGE('',*,*,#159,.F.);
#122=ORIENTED_EDGE('',*,*,#181,.F.);
#123=ORIENTED_EDGE('',*,*,#153,.F.);
#124=ORIENTED_EDGE('',*,*,#173,.F.);
#125=ORIENTED_EDGE('',*,*,#146,.T.);
#126=ORIENTED_EDGE('',*,*,#174,.F.);
#127=ORIENTED_EDGE('',*,*,#181,.T.);
#128=ORIENTED_EDGE('',*,*,#169,.F.);
#129=ORIENTED_EDGE('',*,*,#163,.F.);
#130=ORIENTED_EDGE('',*,*,#182,.F.);
#131=ORIENTED_EDGE('',*,*,#157,.F.);
#132=ORIENTED_EDGE('',*,*,#172,.F.);
#133=ORIENTED_EDGE('',*,*,#182,.T.);
#134=ORIENTED_EDGE('',*,*,#177,.F.);
#135=ORIENTED_EDGE('',*,*,#148,.T.);
#136=ORIENTED_EDGE('',*,*,#168,.F.);
#137=ORIENTED_EDGE('',*,*,#165,.F.);
#138=ORIENTED_EDGE('',*,*,#183,.F.);
#139=ORIENTED_EDGE('',*,*,#161,.F.);
#140=ORIENTED_EDGE('',*,*,#176,.F.);
#141=ORIENTED_EDGE('',*,*,#183,.T.);
#142=ORIENTED_EDGE('',*,*,#179,.F.);
#143=ORIENTED_EDGE('',*,*,#150,.T.);
#144=EDGE_CURVE('',#184,#185,#208,.F.);
#145=EDGE_CURVE('',#184,#186,#24,.F.);
#146=EDGE_CURVE('',#187,#186,#209,.F.);
#147=EDGE_CURVE('',#187,#188,#25,.T.);
#148=EDGE_CURVE('',#189,#188,#210,.F.);
#149=EDGE_CURVE('',#189,#190,#26,.T.);
#150=EDGE_CURVE('',#191,#190,#211,.F.);
#151=EDGE_CURVE('',#191,#185,#27,.F.);
#152=EDGE_CURVE('',#192,#193,#28,.T.);
#153=EDGE_CURVE('',#192,#194,#29,.F.);
#154=EDGE_CURVE('',#194,#195,#30,.T.);
#155=EDGE_CURVE('',#195,#193,#31,.T.);
#156=EDGE_CURVE('',#196,#197,#32,.T.);
#157=EDGE_CURVE('',#197,#198,#33,.F.);
#158=EDGE_CURVE('',#198,#199,#34,.F.);
#159=EDGE_CURVE('',#199,#196,#35,.T.);
#160=EDGE_CURVE('',#200,#201,#36,.T.);
#161=EDGE_CURVE('',#201,#202,#37,.F.);
#162=EDGE_CURVE('',#202,#203,#38,.F.);
#163=EDGE_CURVE('',#203,#200,#39,.T.);
#164=EDGE_CURVE('',#204,#205,#40,.T.);
#165=EDGE_CURVE('',#205,#206,#41,.T.);
#166=EDGE_CURVE('',#207,#206,#42,.T.);
#167=EDGE_CURVE('',#207,#204,#43,.F.);
#168=EDGE_CURVE('',#206,#201,#212,.F.);
#169=EDGE_CURVE('',#200,#197,#213,.F.);
#170=EDGE_CURVE('',#196,#192,#214,.F.);
#171=EDGE_CURVE('',#193,#207,#215,.F.);
#172=EDGE_CURVE('',#198,#188,#216,.T.);
#173=EDGE_CURVE('',#187,#199,#217,.T.);
#174=EDGE_CURVE('',#194,#186,#218,.T.);
#175=EDGE_CURVE('',#184,#195,#219,.T.);
#176=EDGE_CURVE('',#202,#190,#220,.T.);
#177=EDGE_CURVE('',#189,#203,#221,.T.);
#178=EDGE_CURVE('',#204,#185,#222,.T.);
#179=EDGE_CURVE('',#191,#205,#223,.T.);
#180=EDGE_CURVE('',#204,#195,#224,.T.);
#181=EDGE_CURVE('',#194,#199,#225,.T.);
#182=EDGE_CURVE('',#198,#203,#226,.T.);
#183=EDGE_CURVE('',#202,#205,#227,.T.);
#184=VERTEX_POINT('',#440);
#185=VERTEX_POINT('',#441);
#186=VERTEX_POINT('',#443);
#187=VERTEX_POINT('',#445);
#188=VERTEX_POINT('',#447);
#189=VERTEX_POINT('',#449);
#190=VERTEX_POINT('',#451);
#191=VERTEX_POINT('',#453);
#192=VERTEX_POINT('',#457);
#193=VERTEX_POINT('',#458);
#194=VERTEX_POINT('',#460);
#195=VERTEX_POINT('',#462);
#196=VERTEX_POINT('',#466);
#197=VERTEX_POINT('',#467);
#198=VERTEX_POINT('',#469);
#199=VERTEX_POINT('',#471);
#200=VERTEX_POINT('',#475);
#201=VERTEX_POINT('',#476);
#202=VERTEX_POINT('',#478);
#203=VERTEX_POINT('',#480);
#204=VERTEX_POINT('',#484);
#205=VERTEX_POINT('',#485);
#206=VERTEX_POINT('',#487);
#207=VERTEX_POINT('',#489);
#208=CIRCLE('',#302,0.0001);
#209=CIRCLE('',#303,0.0001);
#210=CIRCLE('',#304,0.0001);
#211=CIRCLE('',#305,0.0001);
#212=CIRCLE('',#311,0.00015);
#213=CIRCLE('',#312,0.00015);
#214=CIRCLE('',#313,0.00015);
#215=CIRCLE('',#314,0.00015);
#216=CIRCLE('',#316,5.E-5);
#217=CIRCLE('',#317,5.E-5);
#218=CIRCLE('',#319,5.E-5);
#219=CIRCLE('',#320,5.E-5);
#220=CIRCLE('',#322,5.E-5);
#221=CIRCLE('',#323,5.E-5);
#222=CIRCLE('',#325,5.E-5);
#223=CIRCLE('',#326,5.E-5);
#224=CIRCLE('',#328,0.00015);
#225=CIRCLE('',#331,0.00015);
#226=CIRCLE('',#334,0.00015);
#227=CIRCLE('',#337,0.00015);
#228=EDGE_LOOP('',(#64,#65,#66,#67,#68,#69,#70,#71));
#229=EDGE_LOOP('',(#72,#73,#74,#75));
#230=EDGE_LOOP('',(#76,#77,#78,#79));
#231=EDGE_LOOP('',(#80,#81,#82,#83));
#232=EDGE_LOOP('',(#84,#85,#86,#87));
#233=EDGE_LOOP('',(#88,#89,#90,#91,#92,#93,#94,#95));
#234=EDGE_LOOP('',(#96,#97,#98,#99));
#235=EDGE_LOOP('',(#100,#101,#102,#103));
#236=EDGE_LOOP('',(#104,#105,#106,#107));
#237=EDGE_LOOP('',(#108,#109,#110,#111));
#238=EDGE_LOOP('',(#112,#113,#114,#115));
#239=EDGE_LOOP('',(#116,#117,#118,#119));
#240=EDGE_LOOP('',(#120,#121,#122,#123));
#241=EDGE_LOOP('',(#124,#125,#126,#127));
#242=EDGE_LOOP('',(#128,#129,#130,#131));
#243=EDGE_LOOP('',(#132,#133,#134,#135));
#244=EDGE_LOOP('',(#136,#137,#138,#139));
#245=EDGE_LOOP('',(#140,#141,#142,#143));
#246=FACE_BOUND('',#228,.T.);
#247=FACE_BOUND('',#229,.T.);
#248=FACE_BOUND('',#230,.T.);
#249=FACE_BOUND('',#231,.T.);
#250=FACE_BOUND('',#232,.T.);
#251=FACE_BOUND('',#233,.T.);
#252=FACE_BOUND('',#234,.T.);
#253=FACE_BOUND('',#235,.T.);
#254=FACE_BOUND('',#236,.T.);
#255=FACE_BOUND('',#237,.T.);
#256=FACE_BOUND('',#238,.T.);
#257=FACE_BOUND('',#239,.T.);
#258=FACE_BOUND('',#240,.T.);
#259=FACE_BOUND('',#241,.T.);
#260=FACE_BOUND('',#242,.T.);
#261=FACE_BOUND('',#243,.T.);
#262=FACE_BOUND('',#244,.T.);
#263=FACE_BOUND('',#245,.T.);
#264=PLANE('',#301);
#265=PLANE('',#306);
#266=PLANE('',#307);
#267=PLANE('',#308);
#268=PLANE('',#309);
#269=PLANE('',#310);
#270=ADVANCED_FACE('',(#246),#264,.T.);
#271=ADVANCED_FACE('',(#247),#265,.T.);
#272=ADVANCED_FACE('',(#248),#266,.F.);
#273=ADVANCED_FACE('',(#249),#267,.F.);
#274=ADVANCED_FACE('',(#250),#268,.T.);
#275=ADVANCED_FACE('',(#251),#269,.F.);
#276=ADVANCED_FACE('',(#252),#16,.T.);
#277=ADVANCED_FACE('',(#253),#17,.T.);
#278=ADVANCED_FACE('',(#254),#18,.T.);
#279=ADVANCED_FACE('',(#255),#19,.T.);
#280=ADVANCED_FACE('',(#256),#20,.T.);
#281=ADVANCED_FACE('',(#257),#12,.T.);
#282=ADVANCED_FACE('',(#258),#21,.T.);
#283=ADVANCED_FACE('',(#259),#13,.T.);
#284=ADVANCED_FACE('',(#260),#22,.T.);
#285=ADVANCED_FACE('',(#261),#14,.T.);
#286=ADVANCED_FACE('',(#262),#23,.T.);
#287=ADVANCED_FACE('',(#263),#15,.T.);
#288=CLOSED_SHELL('',(#270,#271,#272,#273,#274,#275,#276,#277,#278,#279,
#280,#281,#282,#283,#284,#285,#286,#287));
#289=STYLED_ITEM('',(#290),#297);
#290=PRESENTATION_STYLE_ASSIGNMENT((#291));
#291=SURFACE_STYLE_USAGE(.BOTH.,#292);
#292=SURFACE_SIDE_STYLE('',(#293));
#293=SURFACE_STYLE_FILL_AREA(#294);
#294=FILL_AREA_STYLE('',(#295));
#295=FILL_AREA_STYLE_COLOUR('',#296);
#296=COLOUR_RGB('',0.0392156862745098,0.0392156862745098,0.0392156862745098);
#297=MANIFOLD_SOLID_BREP('FTC303020',#288);
#298=SHAPE_DEFINITION_REPRESENTATION(#526,#299);
#299=SHAPE_REPRESENTATION('FTC303020',(#300),#521);
#300=AXIS2_PLACEMENT_3D('',#437,#339,#340);
#301=AXIS2_PLACEMENT_3D('',#438,#341,#342);
#302=AXIS2_PLACEMENT_3D('',#439,#343,#344);
#303=AXIS2_PLACEMENT_3D('',#444,#346,#347);
#304=AXIS2_PLACEMENT_3D('',#448,#349,#350);
#305=AXIS2_PLACEMENT_3D('',#452,#352,#353);
#306=AXIS2_PLACEMENT_3D('',#455,#355,#356);
#307=AXIS2_PLACEMENT_3D('',#464,#361,#362);
#308=AXIS2_PLACEMENT_3D('',#473,#367,#368);
#309=AXIS2_PLACEMENT_3D('',#482,#373,#374);
#310=AXIS2_PLACEMENT_3D('',#491,#379,#380);
#311=AXIS2_PLACEMENT_3D('',#492,#381,#382);
#312=AXIS2_PLACEMENT_3D('',#493,#383,#384);
#313=AXIS2_PLACEMENT_3D('',#494,#385,#386);
#314=AXIS2_PLACEMENT_3D('',#495,#387,#388);
#315=AXIS2_PLACEMENT_3D('',#496,#389,#390);
#316=AXIS2_PLACEMENT_3D('',#497,#391,#392);
#317=AXIS2_PLACEMENT_3D('',#498,#393,#394);
#318=AXIS2_PLACEMENT_3D('',#499,#395,#396);
#319=AXIS2_PLACEMENT_3D('',#500,#397,#398);
#320=AXIS2_PLACEMENT_3D('',#501,#399,#400);
#321=AXIS2_PLACEMENT_3D('',#502,#401,#402);
#322=AXIS2_PLACEMENT_3D('',#503,#403,#404);
#323=AXIS2_PLACEMENT_3D('',#504,#405,#406);
#324=AXIS2_PLACEMENT_3D('',#505,#407,#408);
#325=AXIS2_PLACEMENT_3D('',#506,#409,#410);
#326=AXIS2_PLACEMENT_3D('',#507,#411,#412);
#327=AXIS2_PLACEMENT_3D('',#508,#413,#414);
#328=AXIS2_PLACEMENT_3D('',#509,#415,#416);
#329=AXIS2_PLACEMENT_3D('',#510,#417,#418);
#330=AXIS2_PLACEMENT_3D('',#511,#419,#420);
#331=AXIS2_PLACEMENT_3D('',#512,#421,#422);
#332=AXIS2_PLACEMENT_3D('',#513,#423,#424);
#333=AXIS2_PLACEMENT_3D('',#514,#425,#426);
#334=AXIS2_PLACEMENT_3D('',#515,#427,#428);
#335=AXIS2_PLACEMENT_3D('',#516,#429,#430);
#336=AXIS2_PLACEMENT_3D('',#517,#431,#432);
#337=AXIS2_PLACEMENT_3D('',#518,#433,#434);
#338=AXIS2_PLACEMENT_3D('',#519,#435,#436);
#339=DIRECTION('',(0.,0.,1.));
#340=DIRECTION('',(1.,0.,0.));
#341=DIRECTION('',(0.,0.,1.));
#342=DIRECTION('',(1.,0.,0.));
#343=DIRECTION('',(0.,0.,1.));
#344=DIRECTION('',(1.,0.,0.));
#345=DIRECTION('',(-1.,-7.22801448323669E-17,0.));
#346=DIRECTION('',(0.,0.,1.));
#347=DIRECTION('',(1.,0.,0.));
#348=DIRECTION('',(7.22801448323669E-17,1.,0.));
#349=DIRECTION('',(0.,0.,1.));
#350=DIRECTION('',(1.,0.,0.));
#351=DIRECTION('',(-1.,-1.44560289664734E-16,0.));
#352=DIRECTION('',(0.,0.,1.));
#353=DIRECTION('',(1.,0.,0.));
#354=DIRECTION('',(7.2280144832367E-17,1.,0.));
#355=DIRECTION('',(7.22801448323669E-17,-1.,0.));
#356=DIRECTION('',(1.,7.22801448323669E-17,0.));
#357=DIRECTION('',(-1.,-7.22801448323669E-17,0.));
#358=DIRECTION('',(0.,0.,-1.));
#359=DIRECTION('',(-1.,-7.22801448323669E-17,0.));
#360=DIRECTION('',(0.,0.,-1.));
#361=DIRECTION('',(-1.,7.22801448323669E-17,0.));
#362=DIRECTION('',(-7.22801448323669E-17,-1.,0.));
#363=DIRECTION('',(7.22801448323669E-17,1.,0.));
#364=DIRECTION('',(0.,0.,-1.));
#365=DIRECTION('',(7.22801448323669E-17,1.,0.));
#366=DIRECTION('',(0.,0.,-1.));
#367=DIRECTION('',(1.44560289664734E-16,-1.,0.));
#368=DIRECTION('',(1.,1.44560289664734E-16,0.));
#369=DIRECTION('',(-1.,-1.44560289664734E-16,0.));
#370=DIRECTION('',(0.,0.,-1.));
#371=DIRECTION('',(-1.,-1.44560289664734E-16,0.));
#372=DIRECTION('',(0.,0.,-1.));
#373=DIRECTION('',(-1.,7.2280144832367E-17,0.));
#374=DIRECTION('',(-7.2280144832367E-17,-1.,0.));
#375=DIRECTION('',(7.2280144832367E-17,1.,0.));
#376=DIRECTION('',(0.,0.,-1.));
#377=DIRECTION('',(7.2280144832367E-17,1.,0.));
#378=DIRECTION('',(0.,0.,-1.));
#379=DIRECTION('',(0.,0.,1.));
#380=DIRECTION('',(1.,0.,0.));
#381=DIRECTION('',(0.,0.,1.));
#382=DIRECTION('',(1.,0.,0.));
#383=DIRECTION('',(0.,0.,1.));
#384=DIRECTION('',(1.,0.,0.));
#385=DIRECTION('',(0.,0.,1.));
#386=DIRECTION('',(1.,0.,0.));
#387=DIRECTION('',(0.,0.,1.));
#388=DIRECTION('',(1.,0.,0.));
#389=DIRECTION('',(-7.22801448323669E-17,-1.,0.));
#390=DIRECTION('',(1.,-7.22801448323669E-17,0.));
#391=DIRECTION('',(0.,-1.,0.));
#392=DIRECTION('',(0.,0.,-1.));
#393=DIRECTION('',(0.,1.,0.));
#394=DIRECTION('',(0.,0.,1.));
#395=DIRECTION('',(-1.,-7.22801448323669E-17,0.));
#396=DIRECTION('',(7.22801448323669E-17,-1.,0.));
#397=DIRECTION('',(-1.,0.,0.));
#398=DIRECTION('',(0.,0.,1.));
#399=DIRECTION('',(1.,0.,0.));
#400=DIRECTION('',(0.,0.,-1.));
#401=DIRECTION('',(1.,1.44560289664734E-16,0.));
#402=DIRECTION('',(-1.44560289664734E-16,1.,0.));
#403=DIRECTION('',(1.,0.,0.));
#404=DIRECTION('',(0.,0.,-1.));
#405=DIRECTION('',(-1.,0.,0.));
#406=DIRECTION('',(0.,0.,1.));
#407=DIRECTION('',(7.2280144832367E-17,1.,0.));
#408=DIRECTION('',(-1.,7.2280144832367E-17,0.));
#409=DIRECTION('',(0.,1.,0.));
#410=DIRECTION('',(0.,0.,1.));
#411=DIRECTION('',(0.,-1.,0.));
#412=DIRECTION('',(0.,0.,-1.));
#413=DIRECTION('',(0.,0.,-1.));
#414=DIRECTION('',(-1.,0.,0.));
#415=DIRECTION('',(0.,0.,1.));
#416=DIRECTION('',(1.,0.,0.));
#417=DIRECTION('',(0.,0.,1.));
#418=DIRECTION('',(1.,0.,0.));
#419=DIRECTION('',(0.,0.,1.));
#420=DIRECTION('',(1.,0.,0.));
#421=DIRECTION('',(0.,0.,1.));
#422=DIRECTION('',(1.,0.,0.));
#423=DIRECTION('',(0.,0.,1.));
#424=DIRECTION('',(1.,0.,0.));
#425=DIRECTION('',(0.,0.,-1.));
#426=DIRECTION('',(-1.,0.,0.));
#427=DIRECTION('',(0.,0.,1.));
#428=DIRECTION('',(1.,0.,0.));
#429=DIRECTION('',(0.,0.,1.));
#430=DIRECTION('',(1.,0.,0.));
#431=DIRECTION('',(0.,0.,1.));
#432=DIRECTION('',(1.,0.,0.));
#433=DIRECTION('',(0.,0.,1.));
#434=DIRECTION('',(1.,0.,0.));
#435=DIRECTION('',(0.,0.,1.));
#436=DIRECTION('',(1.,0.,0.));
#437=CARTESIAN_POINT('',(0.,0.,0.));
#438=CARTESIAN_POINT('',(-8.67361737988404E-19,3.46944695195361E-18,0.002));
#439=CARTESIAN_POINT('',(-0.00135,-0.00135,0.002));
#440=CARTESIAN_POINT('',(-0.00135,-0.00145,0.002));
#441=CARTESIAN_POINT('',(-0.00145,-0.00135,0.002));
#442=CARTESIAN_POINT('',(-7.62555527981471E-19,-0.00145,0.002));
#443=CARTESIAN_POINT('',(0.00135,-0.00145,0.002));
#444=CARTESIAN_POINT('',(0.00135,-0.00135,0.002));
#445=CARTESIAN_POINT('',(0.00145,-0.00135,0.002));
#446=CARTESIAN_POINT('',(0.00145,0.0015,0.002));
#447=CARTESIAN_POINT('',(0.00145,0.00135,0.002));
#448=CARTESIAN_POINT('',(0.00135,0.00135,0.002));
#449=CARTESIAN_POINT('',(0.00135,0.00145,0.002));
#450=CARTESIAN_POINT('',(-0.0015,0.00145,0.002));
#451=CARTESIAN_POINT('',(-0.00135,0.00145,0.002));
#452=CARTESIAN_POINT('',(-0.00135,0.00135,0.002));
#453=CARTESIAN_POINT('',(-0.00145,0.00135,0.002));
#454=CARTESIAN_POINT('',(-0.00145,3.57425316196054E-18,0.002));
#455=CARTESIAN_POINT('',(0.,-0.0015,0.002));
#456=CARTESIAN_POINT('',(0.,-0.0015,0.));
#457=CARTESIAN_POINT('',(0.00135,-0.0015,0.));
#458=CARTESIAN_POINT('',(-0.00135,-0.0015,0.));
#459=CARTESIAN_POINT('',(0.00135,-0.0015,0.00195));
#460=CARTESIAN_POINT('',(0.00135,-0.0015,0.00195));
#461=CARTESIAN_POINT('',(0.,-0.0015,0.00195));
#462=CARTESIAN_POINT('',(-0.00135,-0.0015,0.00195));
#463=CARTESIAN_POINT('',(-0.00135,-0.0015,0.002));
#464=CARTESIAN_POINT('',(0.0015,3.46944695195361E-18,0.002));
#465=CARTESIAN_POINT('',(0.0015,3.46944695195361E-18,0.));
#466=CARTESIAN_POINT('',(0.0015,-0.00135,0.));
#467=CARTESIAN_POINT('',(0.0015,0.00135,0.));
#468=CARTESIAN_POINT('',(0.0015,0.00135,0.002));
#469=CARTESIAN_POINT('',(0.0015,0.00135,0.00195));
#470=CARTESIAN_POINT('',(0.0015,-0.0015,0.00195));
#471=CARTESIAN_POINT('',(0.0015,-0.00135,0.00195));
#472=CARTESIAN_POINT('',(0.0015,-0.00135,0.));
#473=CARTESIAN_POINT('',(-1.7347234759768E-18,0.0015,0.002));
#474=CARTESIAN_POINT('',(-1.7347234759768E-18,0.0015,0.));
#475=CARTESIAN_POINT('',(0.00135,0.0015,0.));
#476=CARTESIAN_POINT('',(-0.00135,0.0015,0.));
#477=CARTESIAN_POINT('',(-0.00135,0.0015,0.00195));
#478=CARTESIAN_POINT('',(-0.00135,0.0015,0.00195));
#479=CARTESIAN_POINT('',(0.0015,0.0015,0.00195));
#480=CARTESIAN_POINT('',(0.00135,0.0015,0.00195));
#481=CARTESIAN_POINT('',(0.00135,0.0015,0.002));
#482=CARTESIAN_POINT('',(-0.0015,1.7347234759768E-18,0.002));
#483=CARTESIAN_POINT('',(-0.0015,1.7347234759768E-18,0.00195));
#484=CARTESIAN_POINT('',(-0.0015,-0.00135,0.00195));
#485=CARTESIAN_POINT('',(-0.0015,0.00135,0.00195));
#486=CARTESIAN_POINT('',(-0.0015,0.00135,0.));
#487=CARTESIAN_POINT('',(-0.0015,0.00135,0.));
#488=CARTESIAN_POINT('',(-0.0015,1.7347234759768E-18,0.));
#489=CARTESIAN_POINT('',(-0.0015,-0.00135,0.));
#490=CARTESIAN_POINT('',(-0.0015,-0.00135,0.002));
#491=CARTESIAN_POINT('',(-8.67361737988404E-19,3.46944695195361E-18,0.));
#492=CARTESIAN_POINT('',(-0.00135,0.00135,0.));
#493=CARTESIAN_POINT('',(0.00135,0.00135,0.));
#494=CARTESIAN_POINT('',(0.00135,-0.00135,0.));
#495=CARTESIAN_POINT('',(-0.00135,-0.00135,0.));
#496=CARTESIAN_POINT('',(0.00145,3.36464074194668E-18,0.00195));
#497=CARTESIAN_POINT('',(0.00145,0.00135,0.00195));
#498=CARTESIAN_POINT('',(0.00145,-0.00135,0.00195));
#499=CARTESIAN_POINT('',(-3.61400724161835E-21,-0.00145,0.00195));
#500=CARTESIAN_POINT('',(0.00135,-0.00145,0.00195));
#501=CARTESIAN_POINT('',(-0.00135,-0.00145,0.00195));
#502=CARTESIAN_POINT('',(-1.07697415800227E-18,0.00145,0.00195));
#503=CARTESIAN_POINT('',(-0.00135,0.00145,0.00195));
#504=CARTESIAN_POINT('',(0.00135,0.00145,0.00195));
#505=CARTESIAN_POINT('',(-0.00145,1.73110946873519E-18,0.00195));
#506=CARTESIAN_POINT('',(-0.00145,-0.00135,0.00195));
#507=CARTESIAN_POINT('',(-0.00145,0.00135,0.00195));
#508=CARTESIAN_POINT('',(-0.00135,-0.00135,0.002));
#509=CARTESIAN_POINT('',(-0.00135,-0.00135,0.00195));
#510=CARTESIAN_POINT('',(-0.00135,-0.00135,0.00195));
#511=CARTESIAN_POINT('',(0.00135,-0.00135,0.002));
#512=CARTESIAN_POINT('',(0.00135,-0.00135,0.00195));
#513=CARTESIAN_POINT('',(0.00135,-0.00135,0.00195));
#514=CARTESIAN_POINT('',(0.00135,0.00135,0.002));
#515=CARTESIAN_POINT('',(0.00135,0.00135,0.00195));
#516=CARTESIAN_POINT('',(0.00135,0.00135,0.00195));
#517=CARTESIAN_POINT('',(-0.00135,0.00135,0.002));
#518=CARTESIAN_POINT('',(-0.00135,0.00135,0.00195));
#519=CARTESIAN_POINT('',(-0.00135,0.00135,0.00195));
#520=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#289),
#521);
#521=(
GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#522))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#525,#524,#523))
REPRESENTATION_CONTEXT('FTC303020','TOP_LEVEL_ASSEMBLY_PART')
);
#522=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-8),#525,
'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model');
#523=(
NAMED_UNIT(*)
SI_UNIT($,.STERADIAN.)
SOLID_ANGLE_UNIT()
);
#524=(
NAMED_UNIT(*)
PLANE_ANGLE_UNIT()
SI_UNIT($,.RADIAN.)
);
#525=(
LENGTH_UNIT()
NAMED_UNIT(*)
SI_UNIT($,.METRE.)
);
#526=PRODUCT_DEFINITION_SHAPE('','',#527);
#527=PRODUCT_DEFINITION('','',#529,#528);
#528=PRODUCT_DEFINITION_CONTEXT('',#535,'design');
#529=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#531,
.NOT_KNOWN.);
#530=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#531));
#531=PRODUCT('FTC303020','FTC303020','FTC303020',(#533));
#532=PRODUCT_CATEGORY('','');
#533=PRODUCT_CONTEXT('',#535,'mechanical');
#534=APPLICATION_PROTOCOL_DEFINITION('international standard',
'ap242_managed_model_based_3d_engineering',2011,#535);
#535=APPLICATION_CONTEXT('managed model based 3d engineering');
ENDSEC;
END-ISO-10303-21;

View File

@@ -0,0 +1,578 @@
ISO-10303-21;
HEADER;
/* Generated by software containing ST-Developer
* from STEP Tools, Inc. (www.steptools.com)
*/
/* OPTION: using custom renumber hook */
FILE_DESCRIPTION(
/* description */ ('STEP AP242',
'CAx-IF Rec.Pracs.---Representation and Presentation of Product Manufa
cturing Information (PMI)---4.0---2014-10-13',
'CAx-IF Rec.Pracs.---3D Tessellated Geometry---0.4---2014-09-14','2;1'),
/* implementation_level */ '2;1');
FILE_NAME(
/* name */ '68f088745aba2cec144d37df',
/* time_stamp */ '2025-10-16T05:53:57Z',
/* author */ (''),
/* organization */ (''),
/* preprocessor_version */ 'ST-DEVELOPER v20',
/* originating_system */ 'ONSHAPE BY PTC INC, 1.205',
/* authorisation */ ' ');
FILE_SCHEMA (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF { 1 0 10303 442 1 1 4 }'));
ENDSEC;
DATA;
#10=SHAPE_REPRESENTATION_RELATIONSHIP('','',#299,#11);
#11=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#297),#521);
#12=TOROIDAL_SURFACE('',#329,0.0001,5.E-5);
#13=TOROIDAL_SURFACE('',#332,0.0001,5.E-5);
#14=TOROIDAL_SURFACE('',#335,0.0001,5.E-5);
#15=TOROIDAL_SURFACE('',#338,0.0001,5.E-5);
#16=CYLINDRICAL_SURFACE('',#315,5.E-5);
#17=CYLINDRICAL_SURFACE('',#318,5.E-5);
#18=CYLINDRICAL_SURFACE('',#321,5.E-5);
#19=CYLINDRICAL_SURFACE('',#324,5.E-5);
#20=CYLINDRICAL_SURFACE('',#327,0.00015);
#21=CYLINDRICAL_SURFACE('',#330,0.00015);
#22=CYLINDRICAL_SURFACE('',#333,0.00015);
#23=CYLINDRICAL_SURFACE('',#336,0.00015);
#24=LINE('',#442,#44);
#25=LINE('',#446,#45);
#26=LINE('',#450,#46);
#27=LINE('',#454,#47);
#28=LINE('',#456,#48);
#29=LINE('',#459,#49);
#30=LINE('',#461,#50);
#31=LINE('',#463,#51);
#32=LINE('',#465,#52);
#33=LINE('',#468,#53);
#34=LINE('',#470,#54);
#35=LINE('',#472,#55);
#36=LINE('',#474,#56);
#37=LINE('',#477,#57);
#38=LINE('',#479,#58);
#39=LINE('',#481,#59);
#40=LINE('',#483,#60);
#41=LINE('',#486,#61);
#42=LINE('',#488,#62);
#43=LINE('',#490,#63);
#44=VECTOR('',#345,1.);
#45=VECTOR('',#348,1.);
#46=VECTOR('',#351,1.);
#47=VECTOR('',#354,1.);
#48=VECTOR('',#357,1.);
#49=VECTOR('',#358,1.);
#50=VECTOR('',#359,1.);
#51=VECTOR('',#360,1.);
#52=VECTOR('',#363,1.);
#53=VECTOR('',#364,1.);
#54=VECTOR('',#365,1.);
#55=VECTOR('',#366,1.);
#56=VECTOR('',#369,1.);
#57=VECTOR('',#370,1.);
#58=VECTOR('',#371,1.);
#59=VECTOR('',#372,1.);
#60=VECTOR('',#375,1.);
#61=VECTOR('',#376,1.);
#62=VECTOR('',#377,1.);
#63=VECTOR('',#378,1.);
#64=ORIENTED_EDGE('',*,*,#144,.F.);
#65=ORIENTED_EDGE('',*,*,#145,.T.);
#66=ORIENTED_EDGE('',*,*,#146,.F.);
#67=ORIENTED_EDGE('',*,*,#147,.T.);
#68=ORIENTED_EDGE('',*,*,#148,.F.);
#69=ORIENTED_EDGE('',*,*,#149,.T.);
#70=ORIENTED_EDGE('',*,*,#150,.F.);
#71=ORIENTED_EDGE('',*,*,#151,.T.);
#72=ORIENTED_EDGE('',*,*,#152,.F.);
#73=ORIENTED_EDGE('',*,*,#153,.T.);
#74=ORIENTED_EDGE('',*,*,#154,.T.);
#75=ORIENTED_EDGE('',*,*,#155,.T.);
#76=ORIENTED_EDGE('',*,*,#156,.T.);
#77=ORIENTED_EDGE('',*,*,#157,.T.);
#78=ORIENTED_EDGE('',*,*,#158,.T.);
#79=ORIENTED_EDGE('',*,*,#159,.T.);
#80=ORIENTED_EDGE('',*,*,#160,.T.);
#81=ORIENTED_EDGE('',*,*,#161,.T.);
#82=ORIENTED_EDGE('',*,*,#162,.T.);
#83=ORIENTED_EDGE('',*,*,#163,.T.);
#84=ORIENTED_EDGE('',*,*,#164,.T.);
#85=ORIENTED_EDGE('',*,*,#165,.T.);
#86=ORIENTED_EDGE('',*,*,#166,.F.);
#87=ORIENTED_EDGE('',*,*,#167,.T.);
#88=ORIENTED_EDGE('',*,*,#166,.T.);
#89=ORIENTED_EDGE('',*,*,#168,.T.);
#90=ORIENTED_EDGE('',*,*,#160,.F.);
#91=ORIENTED_EDGE('',*,*,#169,.T.);
#92=ORIENTED_EDGE('',*,*,#156,.F.);
#93=ORIENTED_EDGE('',*,*,#170,.T.);
#94=ORIENTED_EDGE('',*,*,#152,.T.);
#95=ORIENTED_EDGE('',*,*,#171,.T.);
#96=ORIENTED_EDGE('',*,*,#158,.F.);
#97=ORIENTED_EDGE('',*,*,#172,.T.);
#98=ORIENTED_EDGE('',*,*,#147,.F.);
#99=ORIENTED_EDGE('',*,*,#173,.T.);
#100=ORIENTED_EDGE('',*,*,#154,.F.);
#101=ORIENTED_EDGE('',*,*,#174,.T.);
#102=ORIENTED_EDGE('',*,*,#145,.F.);
#103=ORIENTED_EDGE('',*,*,#175,.T.);
#104=ORIENTED_EDGE('',*,*,#162,.F.);
#105=ORIENTED_EDGE('',*,*,#176,.T.);
#106=ORIENTED_EDGE('',*,*,#149,.F.);
#107=ORIENTED_EDGE('',*,*,#177,.T.);
#108=ORIENTED_EDGE('',*,*,#164,.F.);
#109=ORIENTED_EDGE('',*,*,#178,.T.);
#110=ORIENTED_EDGE('',*,*,#151,.F.);
#111=ORIENTED_EDGE('',*,*,#179,.T.);
#112=ORIENTED_EDGE('',*,*,#171,.F.);
#113=ORIENTED_EDGE('',*,*,#155,.F.);
#114=ORIENTED_EDGE('',*,*,#180,.F.);
#115=ORIENTED_EDGE('',*,*,#167,.F.);
#116=ORIENTED_EDGE('',*,*,#175,.F.);
#117=ORIENTED_EDGE('',*,*,#144,.T.);
#118=ORIENTED_EDGE('',*,*,#178,.F.);
#119=ORIENTED_EDGE('',*,*,#180,.T.);
#120=ORIENTED_EDGE('',*,*,#170,.F.);
#121=ORIENTED_EDGE('',*,*,#159,.F.);
#122=ORIENTED_EDGE('',*,*,#181,.F.);
#123=ORIENTED_EDGE('',*,*,#153,.F.);
#124=ORIENTED_EDGE('',*,*,#173,.F.);
#125=ORIENTED_EDGE('',*,*,#146,.T.);
#126=ORIENTED_EDGE('',*,*,#174,.F.);
#127=ORIENTED_EDGE('',*,*,#181,.T.);
#128=ORIENTED_EDGE('',*,*,#169,.F.);
#129=ORIENTED_EDGE('',*,*,#163,.F.);
#130=ORIENTED_EDGE('',*,*,#182,.F.);
#131=ORIENTED_EDGE('',*,*,#157,.F.);
#132=ORIENTED_EDGE('',*,*,#172,.F.);
#133=ORIENTED_EDGE('',*,*,#182,.T.);
#134=ORIENTED_EDGE('',*,*,#177,.F.);
#135=ORIENTED_EDGE('',*,*,#148,.T.);
#136=ORIENTED_EDGE('',*,*,#168,.F.);
#137=ORIENTED_EDGE('',*,*,#165,.F.);
#138=ORIENTED_EDGE('',*,*,#183,.F.);
#139=ORIENTED_EDGE('',*,*,#161,.F.);
#140=ORIENTED_EDGE('',*,*,#176,.F.);
#141=ORIENTED_EDGE('',*,*,#183,.T.);
#142=ORIENTED_EDGE('',*,*,#179,.F.);
#143=ORIENTED_EDGE('',*,*,#150,.T.);
#144=EDGE_CURVE('',#184,#185,#208,.F.);
#145=EDGE_CURVE('',#184,#186,#24,.F.);
#146=EDGE_CURVE('',#187,#186,#209,.F.);
#147=EDGE_CURVE('',#187,#188,#25,.T.);
#148=EDGE_CURVE('',#189,#188,#210,.F.);
#149=EDGE_CURVE('',#189,#190,#26,.T.);
#150=EDGE_CURVE('',#191,#190,#211,.F.);
#151=EDGE_CURVE('',#191,#185,#27,.F.);
#152=EDGE_CURVE('',#192,#193,#28,.T.);
#153=EDGE_CURVE('',#192,#194,#29,.F.);
#154=EDGE_CURVE('',#194,#195,#30,.T.);
#155=EDGE_CURVE('',#195,#193,#31,.T.);
#156=EDGE_CURVE('',#196,#197,#32,.T.);
#157=EDGE_CURVE('',#197,#198,#33,.F.);
#158=EDGE_CURVE('',#198,#199,#34,.F.);
#159=EDGE_CURVE('',#199,#196,#35,.T.);
#160=EDGE_CURVE('',#200,#201,#36,.T.);
#161=EDGE_CURVE('',#201,#202,#37,.F.);
#162=EDGE_CURVE('',#202,#203,#38,.F.);
#163=EDGE_CURVE('',#203,#200,#39,.T.);
#164=EDGE_CURVE('',#204,#205,#40,.T.);
#165=EDGE_CURVE('',#205,#206,#41,.T.);
#166=EDGE_CURVE('',#207,#206,#42,.T.);
#167=EDGE_CURVE('',#207,#204,#43,.F.);
#168=EDGE_CURVE('',#206,#201,#212,.F.);
#169=EDGE_CURVE('',#200,#197,#213,.F.);
#170=EDGE_CURVE('',#196,#192,#214,.F.);
#171=EDGE_CURVE('',#193,#207,#215,.F.);
#172=EDGE_CURVE('',#198,#188,#216,.T.);
#173=EDGE_CURVE('',#187,#199,#217,.T.);
#174=EDGE_CURVE('',#194,#186,#218,.T.);
#175=EDGE_CURVE('',#184,#195,#219,.T.);
#176=EDGE_CURVE('',#202,#190,#220,.T.);
#177=EDGE_CURVE('',#189,#203,#221,.T.);
#178=EDGE_CURVE('',#204,#185,#222,.T.);
#179=EDGE_CURVE('',#191,#205,#223,.T.);
#180=EDGE_CURVE('',#204,#195,#224,.T.);
#181=EDGE_CURVE('',#194,#199,#225,.T.);
#182=EDGE_CURVE('',#198,#203,#226,.T.);
#183=EDGE_CURVE('',#202,#205,#227,.T.);
#184=VERTEX_POINT('',#440);
#185=VERTEX_POINT('',#441);
#186=VERTEX_POINT('',#443);
#187=VERTEX_POINT('',#445);
#188=VERTEX_POINT('',#447);
#189=VERTEX_POINT('',#449);
#190=VERTEX_POINT('',#451);
#191=VERTEX_POINT('',#453);
#192=VERTEX_POINT('',#457);
#193=VERTEX_POINT('',#458);
#194=VERTEX_POINT('',#460);
#195=VERTEX_POINT('',#462);
#196=VERTEX_POINT('',#466);
#197=VERTEX_POINT('',#467);
#198=VERTEX_POINT('',#469);
#199=VERTEX_POINT('',#471);
#200=VERTEX_POINT('',#475);
#201=VERTEX_POINT('',#476);
#202=VERTEX_POINT('',#478);
#203=VERTEX_POINT('',#480);
#204=VERTEX_POINT('',#484);
#205=VERTEX_POINT('',#485);
#206=VERTEX_POINT('',#487);
#207=VERTEX_POINT('',#489);
#208=CIRCLE('',#302,0.0001);
#209=CIRCLE('',#303,0.0001);
#210=CIRCLE('',#304,0.0001);
#211=CIRCLE('',#305,0.0001);
#212=CIRCLE('',#311,0.00015);
#213=CIRCLE('',#312,0.00015);
#214=CIRCLE('',#313,0.00015);
#215=CIRCLE('',#314,0.00015);
#216=CIRCLE('',#316,5.E-5);
#217=CIRCLE('',#317,5.E-5);
#218=CIRCLE('',#319,5.E-5);
#219=CIRCLE('',#320,5.E-5);
#220=CIRCLE('',#322,5.E-5);
#221=CIRCLE('',#323,5.E-5);
#222=CIRCLE('',#325,5.E-5);
#223=CIRCLE('',#326,5.E-5);
#224=CIRCLE('',#328,0.00015);
#225=CIRCLE('',#331,0.00015);
#226=CIRCLE('',#334,0.00015);
#227=CIRCLE('',#337,0.00015);
#228=EDGE_LOOP('',(#64,#65,#66,#67,#68,#69,#70,#71));
#229=EDGE_LOOP('',(#72,#73,#74,#75));
#230=EDGE_LOOP('',(#76,#77,#78,#79));
#231=EDGE_LOOP('',(#80,#81,#82,#83));
#232=EDGE_LOOP('',(#84,#85,#86,#87));
#233=EDGE_LOOP('',(#88,#89,#90,#91,#92,#93,#94,#95));
#234=EDGE_LOOP('',(#96,#97,#98,#99));
#235=EDGE_LOOP('',(#100,#101,#102,#103));
#236=EDGE_LOOP('',(#104,#105,#106,#107));
#237=EDGE_LOOP('',(#108,#109,#110,#111));
#238=EDGE_LOOP('',(#112,#113,#114,#115));
#239=EDGE_LOOP('',(#116,#117,#118,#119));
#240=EDGE_LOOP('',(#120,#121,#122,#123));
#241=EDGE_LOOP('',(#124,#125,#126,#127));
#242=EDGE_LOOP('',(#128,#129,#130,#131));
#243=EDGE_LOOP('',(#132,#133,#134,#135));
#244=EDGE_LOOP('',(#136,#137,#138,#139));
#245=EDGE_LOOP('',(#140,#141,#142,#143));
#246=FACE_BOUND('',#228,.T.);
#247=FACE_BOUND('',#229,.T.);
#248=FACE_BOUND('',#230,.T.);
#249=FACE_BOUND('',#231,.T.);
#250=FACE_BOUND('',#232,.T.);
#251=FACE_BOUND('',#233,.T.);
#252=FACE_BOUND('',#234,.T.);
#253=FACE_BOUND('',#235,.T.);
#254=FACE_BOUND('',#236,.T.);
#255=FACE_BOUND('',#237,.T.);
#256=FACE_BOUND('',#238,.T.);
#257=FACE_BOUND('',#239,.T.);
#258=FACE_BOUND('',#240,.T.);
#259=FACE_BOUND('',#241,.T.);
#260=FACE_BOUND('',#242,.T.);
#261=FACE_BOUND('',#243,.T.);
#262=FACE_BOUND('',#244,.T.);
#263=FACE_BOUND('',#245,.T.);
#264=PLANE('',#301);
#265=PLANE('',#306);
#266=PLANE('',#307);
#267=PLANE('',#308);
#268=PLANE('',#309);
#269=PLANE('',#310);
#270=ADVANCED_FACE('',(#246),#264,.T.);
#271=ADVANCED_FACE('',(#247),#265,.T.);
#272=ADVANCED_FACE('',(#248),#266,.F.);
#273=ADVANCED_FACE('',(#249),#267,.F.);
#274=ADVANCED_FACE('',(#250),#268,.T.);
#275=ADVANCED_FACE('',(#251),#269,.F.);
#276=ADVANCED_FACE('',(#252),#16,.T.);
#277=ADVANCED_FACE('',(#253),#17,.T.);
#278=ADVANCED_FACE('',(#254),#18,.T.);
#279=ADVANCED_FACE('',(#255),#19,.T.);
#280=ADVANCED_FACE('',(#256),#20,.T.);
#281=ADVANCED_FACE('',(#257),#12,.T.);
#282=ADVANCED_FACE('',(#258),#21,.T.);
#283=ADVANCED_FACE('',(#259),#13,.T.);
#284=ADVANCED_FACE('',(#260),#22,.T.);
#285=ADVANCED_FACE('',(#261),#14,.T.);
#286=ADVANCED_FACE('',(#262),#23,.T.);
#287=ADVANCED_FACE('',(#263),#15,.T.);
#288=CLOSED_SHELL('',(#270,#271,#272,#273,#274,#275,#276,#277,#278,#279,
#280,#281,#282,#283,#284,#285,#286,#287));
#289=STYLED_ITEM('',(#290),#297);
#290=PRESENTATION_STYLE_ASSIGNMENT((#291));
#291=SURFACE_STYLE_USAGE(.BOTH.,#292);
#292=SURFACE_SIDE_STYLE('',(#293));
#293=SURFACE_STYLE_FILL_AREA(#294);
#294=FILL_AREA_STYLE('',(#295));
#295=FILL_AREA_STYLE_COLOUR('',#296);
#296=COLOUR_RGB('',0.0392156862745098,0.0392156862745098,0.0392156862745098);
#297=MANIFOLD_SOLID_BREP('FTC404030',#288);
#298=SHAPE_DEFINITION_REPRESENTATION(#526,#299);
#299=SHAPE_REPRESENTATION('FTC404030',(#300),#521);
#300=AXIS2_PLACEMENT_3D('',#437,#339,#340);
#301=AXIS2_PLACEMENT_3D('',#438,#341,#342);
#302=AXIS2_PLACEMENT_3D('',#439,#343,#344);
#303=AXIS2_PLACEMENT_3D('',#444,#346,#347);
#304=AXIS2_PLACEMENT_3D('',#448,#349,#350);
#305=AXIS2_PLACEMENT_3D('',#452,#352,#353);
#306=AXIS2_PLACEMENT_3D('',#455,#355,#356);
#307=AXIS2_PLACEMENT_3D('',#464,#361,#362);
#308=AXIS2_PLACEMENT_3D('',#473,#367,#368);
#309=AXIS2_PLACEMENT_3D('',#482,#373,#374);
#310=AXIS2_PLACEMENT_3D('',#491,#379,#380);
#311=AXIS2_PLACEMENT_3D('',#492,#381,#382);
#312=AXIS2_PLACEMENT_3D('',#493,#383,#384);
#313=AXIS2_PLACEMENT_3D('',#494,#385,#386);
#314=AXIS2_PLACEMENT_3D('',#495,#387,#388);
#315=AXIS2_PLACEMENT_3D('',#496,#389,#390);
#316=AXIS2_PLACEMENT_3D('',#497,#391,#392);
#317=AXIS2_PLACEMENT_3D('',#498,#393,#394);
#318=AXIS2_PLACEMENT_3D('',#499,#395,#396);
#319=AXIS2_PLACEMENT_3D('',#500,#397,#398);
#320=AXIS2_PLACEMENT_3D('',#501,#399,#400);
#321=AXIS2_PLACEMENT_3D('',#502,#401,#402);
#322=AXIS2_PLACEMENT_3D('',#503,#403,#404);
#323=AXIS2_PLACEMENT_3D('',#504,#405,#406);
#324=AXIS2_PLACEMENT_3D('',#505,#407,#408);
#325=AXIS2_PLACEMENT_3D('',#506,#409,#410);
#326=AXIS2_PLACEMENT_3D('',#507,#411,#412);
#327=AXIS2_PLACEMENT_3D('',#508,#413,#414);
#328=AXIS2_PLACEMENT_3D('',#509,#415,#416);
#329=AXIS2_PLACEMENT_3D('',#510,#417,#418);
#330=AXIS2_PLACEMENT_3D('',#511,#419,#420);
#331=AXIS2_PLACEMENT_3D('',#512,#421,#422);
#332=AXIS2_PLACEMENT_3D('',#513,#423,#424);
#333=AXIS2_PLACEMENT_3D('',#514,#425,#426);
#334=AXIS2_PLACEMENT_3D('',#515,#427,#428);
#335=AXIS2_PLACEMENT_3D('',#516,#429,#430);
#336=AXIS2_PLACEMENT_3D('',#517,#431,#432);
#337=AXIS2_PLACEMENT_3D('',#518,#433,#434);
#338=AXIS2_PLACEMENT_3D('',#519,#435,#436);
#339=DIRECTION('',(0.,0.,1.));
#340=DIRECTION('',(1.,0.,0.));
#341=DIRECTION('',(0.,1.,0.));
#342=DIRECTION('',(1.,0.,0.));
#343=DIRECTION('',(0.,1.,0.));
#344=DIRECTION('',(1.,0.,0.));
#345=DIRECTION('',(-1.,0.,1.0842021724855E-16));
#346=DIRECTION('',(0.,1.,0.));
#347=DIRECTION('',(1.,0.,0.));
#348=DIRECTION('',(1.0842021724855E-16,0.,-1.));
#349=DIRECTION('',(0.,1.,0.));
#350=DIRECTION('',(1.,0.,0.));
#351=DIRECTION('',(-1.,0.,2.16840434497101E-16));
#352=DIRECTION('',(0.,1.,0.));
#353=DIRECTION('',(1.,0.,0.));
#354=DIRECTION('',(1.0842021724855E-16,0.,-1.));
#355=DIRECTION('',(1.0842021724855E-16,0.,1.));
#356=DIRECTION('',(1.,0.,-1.0842021724855E-16));
#357=DIRECTION('',(-1.,0.,1.0842021724855E-16));
#358=DIRECTION('',(0.,-1.,0.));
#359=DIRECTION('',(-1.,0.,1.0842021724855E-16));
#360=DIRECTION('',(0.,-1.,0.));
#361=DIRECTION('',(-1.,0.,-1.0842021724855E-16));
#362=DIRECTION('',(-1.0842021724855E-16,0.,1.));
#363=DIRECTION('',(1.0842021724855E-16,0.,-1.));
#364=DIRECTION('',(0.,-1.,0.));
#365=DIRECTION('',(1.0842021724855E-16,0.,-1.));
#366=DIRECTION('',(0.,-1.,0.));
#367=DIRECTION('',(2.16840434497101E-16,0.,1.));
#368=DIRECTION('',(1.,0.,-2.16840434497101E-16));
#369=DIRECTION('',(-1.,0.,2.16840434497101E-16));
#370=DIRECTION('',(0.,-1.,0.));
#371=DIRECTION('',(-1.,0.,2.16840434497101E-16));
#372=DIRECTION('',(0.,-1.,0.));
#373=DIRECTION('',(-1.,0.,-1.0842021724855E-16));
#374=DIRECTION('',(-1.0842021724855E-16,0.,1.));
#375=DIRECTION('',(1.0842021724855E-16,0.,-1.));
#376=DIRECTION('',(0.,-1.,0.));
#377=DIRECTION('',(1.0842021724855E-16,0.,-1.));
#378=DIRECTION('',(0.,-1.,0.));
#379=DIRECTION('',(0.,1.,0.));
#380=DIRECTION('',(1.,0.,0.));
#381=DIRECTION('',(0.,1.,0.));
#382=DIRECTION('',(1.,0.,0.));
#383=DIRECTION('',(0.,1.,0.));
#384=DIRECTION('',(1.,0.,0.));
#385=DIRECTION('',(0.,1.,0.));
#386=DIRECTION('',(1.,0.,0.));
#387=DIRECTION('',(0.,1.,0.));
#388=DIRECTION('',(1.,0.,0.));
#389=DIRECTION('',(-1.0842021724855E-16,0.,1.));
#390=DIRECTION('',(1.,0.,1.0842021724855E-16));
#391=DIRECTION('',(0.,0.,1.));
#392=DIRECTION('',(0.,-1.,0.));
#393=DIRECTION('',(0.,0.,-1.));
#394=DIRECTION('',(0.,1.,0.));
#395=DIRECTION('',(-1.,0.,1.0842021724855E-16));
#396=DIRECTION('',(1.0842021724855E-16,0.,1.));
#397=DIRECTION('',(-1.,0.,0.));
#398=DIRECTION('',(0.,1.,0.));
#399=DIRECTION('',(1.,0.,0.));
#400=DIRECTION('',(0.,-1.,0.));
#401=DIRECTION('',(1.,0.,-2.16840434497101E-16));
#402=DIRECTION('',(-2.16840434497101E-16,0.,-1.));
#403=DIRECTION('',(1.,0.,0.));
#404=DIRECTION('',(0.,-1.,0.));
#405=DIRECTION('',(-1.,0.,0.));
#406=DIRECTION('',(0.,1.,0.));
#407=DIRECTION('',(1.0842021724855E-16,0.,-1.));
#408=DIRECTION('',(-1.,0.,-1.0842021724855E-16));
#409=DIRECTION('',(0.,0.,-1.));
#410=DIRECTION('',(0.,1.,0.));
#411=DIRECTION('',(0.,0.,1.));
#412=DIRECTION('',(0.,-1.,0.));
#413=DIRECTION('',(0.,-1.,0.));
#414=DIRECTION('',(-1.,0.,0.));
#415=DIRECTION('',(0.,1.,0.));
#416=DIRECTION('',(1.,0.,0.));
#417=DIRECTION('',(0.,1.,0.));
#418=DIRECTION('',(1.,0.,0.));
#419=DIRECTION('',(0.,1.,0.));
#420=DIRECTION('',(1.,0.,0.));
#421=DIRECTION('',(0.,1.,0.));
#422=DIRECTION('',(1.,0.,0.));
#423=DIRECTION('',(0.,1.,0.));
#424=DIRECTION('',(1.,0.,0.));
#425=DIRECTION('',(0.,-1.,0.));
#426=DIRECTION('',(-1.,0.,0.));
#427=DIRECTION('',(0.,1.,0.));
#428=DIRECTION('',(1.,0.,0.));
#429=DIRECTION('',(0.,1.,0.));
#430=DIRECTION('',(1.,0.,0.));
#431=DIRECTION('',(0.,1.,0.));
#432=DIRECTION('',(1.,0.,0.));
#433=DIRECTION('',(0.,1.,0.));
#434=DIRECTION('',(1.,0.,0.));
#435=DIRECTION('',(0.,1.,0.));
#436=DIRECTION('',(1.,0.,0.));
#437=CARTESIAN_POINT('',(0.,0.,0.));
#438=CARTESIAN_POINT('',(0.,0.003,0.));
#439=CARTESIAN_POINT('',(-0.00185,0.003,0.00185));
#440=CARTESIAN_POINT('',(-0.00185,0.003,0.00195));
#441=CARTESIAN_POINT('',(-0.00195,0.003,0.00185));
#442=CARTESIAN_POINT('',(2.11419423634674E-19,0.003,0.00195));
#443=CARTESIAN_POINT('',(0.00185,0.003,0.00195));
#444=CARTESIAN_POINT('',(0.00185,0.003,0.00185));
#445=CARTESIAN_POINT('',(0.00195,0.003,0.00185));
#446=CARTESIAN_POINT('',(0.00195,0.003,-0.002));
#447=CARTESIAN_POINT('',(0.00195,0.003,-0.00185));
#448=CARTESIAN_POINT('',(0.00185,0.003,-0.00185));
#449=CARTESIAN_POINT('',(0.00185,0.003,-0.00195));
#450=CARTESIAN_POINT('',(-0.002,0.003,-0.00195));
#451=CARTESIAN_POINT('',(-0.00185,0.003,-0.00195));
#452=CARTESIAN_POINT('',(-0.00185,0.003,-0.00185));
#453=CARTESIAN_POINT('',(-0.00195,0.003,-0.00185));
#454=CARTESIAN_POINT('',(-0.00195,0.003,-2.11419423634673E-19));
#455=CARTESIAN_POINT('',(0.,0.003,0.002));
#456=CARTESIAN_POINT('',(0.,0.,0.002));
#457=CARTESIAN_POINT('',(0.00185,0.,0.002));
#458=CARTESIAN_POINT('',(-0.00185,0.,0.002));
#459=CARTESIAN_POINT('',(0.00185,0.00295,0.002));
#460=CARTESIAN_POINT('',(0.00185,0.00295,0.002));
#461=CARTESIAN_POINT('',(0.,0.00295,0.002));
#462=CARTESIAN_POINT('',(-0.00185,0.00295,0.002));
#463=CARTESIAN_POINT('',(-0.00185,0.003,0.002));
#464=CARTESIAN_POINT('',(0.002,0.003,0.));
#465=CARTESIAN_POINT('',(0.002,0.,0.));
#466=CARTESIAN_POINT('',(0.002,0.,0.00185));
#467=CARTESIAN_POINT('',(0.002,0.,-0.00185));
#468=CARTESIAN_POINT('',(0.002,0.003,-0.00185));
#469=CARTESIAN_POINT('',(0.002,0.00295,-0.00185));
#470=CARTESIAN_POINT('',(0.002,0.00295,0.002));
#471=CARTESIAN_POINT('',(0.002,0.00295,0.00185));
#472=CARTESIAN_POINT('',(0.002,0.,0.00185));
#473=CARTESIAN_POINT('',(0.,0.003,-0.002));
#474=CARTESIAN_POINT('',(0.,0.,-0.002));
#475=CARTESIAN_POINT('',(0.00185,0.,-0.002));
#476=CARTESIAN_POINT('',(-0.00185,0.,-0.002));
#477=CARTESIAN_POINT('',(-0.00185,0.00295,-0.002));
#478=CARTESIAN_POINT('',(-0.00185,0.00295,-0.002));
#479=CARTESIAN_POINT('',(0.002,0.00295,-0.002));
#480=CARTESIAN_POINT('',(0.00185,0.00295,-0.002));
#481=CARTESIAN_POINT('',(0.00185,0.003,-0.002));
#482=CARTESIAN_POINT('',(-0.002,0.003,0.));
#483=CARTESIAN_POINT('',(-0.002,0.00295,0.));
#484=CARTESIAN_POINT('',(-0.002,0.00295,0.00185));
#485=CARTESIAN_POINT('',(-0.002,0.00295,-0.00185));
#486=CARTESIAN_POINT('',(-0.002,0.,-0.00185));
#487=CARTESIAN_POINT('',(-0.002,0.,-0.00185));
#488=CARTESIAN_POINT('',(-0.002,0.,0.));
#489=CARTESIAN_POINT('',(-0.002,0.,0.00185));
#490=CARTESIAN_POINT('',(-0.002,0.003,0.00185));
#491=CARTESIAN_POINT('',(0.,0.,0.));
#492=CARTESIAN_POINT('',(-0.00185,0.,-0.00185));
#493=CARTESIAN_POINT('',(0.00185,0.,-0.00185));
#494=CARTESIAN_POINT('',(0.00185,0.,0.00185));
#495=CARTESIAN_POINT('',(-0.00185,0.,0.00185));
#496=CARTESIAN_POINT('',(0.00195,0.00295,2.11419423634673E-19));
#497=CARTESIAN_POINT('',(0.00195,0.00295,-0.00185));
#498=CARTESIAN_POINT('',(0.00195,0.00295,0.00185));
#499=CARTESIAN_POINT('',(-5.42101086242753E-21,0.00295,0.00195));
#500=CARTESIAN_POINT('',(0.00185,0.00295,0.00195));
#501=CARTESIAN_POINT('',(-0.00185,0.00295,0.00195));
#502=CARTESIAN_POINT('',(-4.22838847269347E-19,0.00295,-0.00195));
#503=CARTESIAN_POINT('',(-0.00185,0.00295,-0.00195));
#504=CARTESIAN_POINT('',(0.00185,0.00295,-0.00195));
#505=CARTESIAN_POINT('',(-0.00195,0.00295,5.42101086242752E-21));
#506=CARTESIAN_POINT('',(-0.00195,0.00295,0.00185));
#507=CARTESIAN_POINT('',(-0.00195,0.00295,-0.00185));
#508=CARTESIAN_POINT('',(-0.00185,0.003,0.00185));
#509=CARTESIAN_POINT('',(-0.00185,0.00295,0.00185));
#510=CARTESIAN_POINT('',(-0.00185,0.00295,0.00185));
#511=CARTESIAN_POINT('',(0.00185,0.003,0.00185));
#512=CARTESIAN_POINT('',(0.00185,0.00295,0.00185));
#513=CARTESIAN_POINT('',(0.00185,0.00295,0.00185));
#514=CARTESIAN_POINT('',(0.00185,0.003,-0.00185));
#515=CARTESIAN_POINT('',(0.00185,0.00295,-0.00185));
#516=CARTESIAN_POINT('',(0.00185,0.00295,-0.00185));
#517=CARTESIAN_POINT('',(-0.00185,0.003,-0.00185));
#518=CARTESIAN_POINT('',(-0.00185,0.00295,-0.00185));
#519=CARTESIAN_POINT('',(-0.00185,0.00295,-0.00185));
#520=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#289),
#521);
#521=(
GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#522))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#525,#524,#523))
REPRESENTATION_CONTEXT('FTC404030','TOP_LEVEL_ASSEMBLY_PART')
);
#522=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-8),#525,
'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model');
#523=(
NAMED_UNIT(*)
SI_UNIT($,.STERADIAN.)
SOLID_ANGLE_UNIT()
);
#524=(
NAMED_UNIT(*)
PLANE_ANGLE_UNIT()
SI_UNIT($,.RADIAN.)
);
#525=(
LENGTH_UNIT()
NAMED_UNIT(*)
SI_UNIT($,.METRE.)
);
#526=PRODUCT_DEFINITION_SHAPE('','',#527);
#527=PRODUCT_DEFINITION('','',#529,#528);
#528=PRODUCT_DEFINITION_CONTEXT('',#535,'design');
#529=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#531,
.NOT_KNOWN.);
#530=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#531));
#531=PRODUCT('FTC404030','FTC404030','FTC404030',(#533));
#532=PRODUCT_CATEGORY('','');
#533=PRODUCT_CONTEXT('',#535,'mechanical');
#534=APPLICATION_PROTOCOL_DEFINITION('international standard',
'ap242_managed_model_based_3d_engineering',2011,#535);
#535=APPLICATION_CONTEXT('managed model based 3d engineering');
ENDSEC;
END-ISO-10303-21;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,382 @@
(footprint "DFN2x5_6L_EP1_P"
(version 20241229)
(generator "pcbnew")
(generator_version "9.0")
(layer "F.Cu")
(property "Reference" "REF**"
(at 0 -2.1 0)
(unlocked yes)
(layer "F.SilkS")
(uuid "44a0d549-1101-4d5b-ba2a-1266b607f3e3")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Value" "DFN2x5_6L_EP1_P"
(at 0 1 0)
(unlocked yes)
(layer "F.Fab")
(uuid "33b8d5c8-362e-4633-ba5d-21d5cca6502a")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Datasheet" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "822b0afe-f77f-43a2-b897-5557e49ebc2b")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Description" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "979c2977-32fb-47d1-8e02-ee9d1ad7f631")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(attr smd)
(fp_rect
(start -1.385 -0.9)
(end -0.9 0.9)
(stroke
(width 0)
(type solid)
)
(fill yes)
(layer "F.Mask")
(uuid "3f372a89-6b8b-4290-8e6e-37757aa97f79")
)
(fp_rect
(start -0.9 -0.9)
(end 0.9 -0.7)
(stroke
(width 0)
(type solid)
)
(fill yes)
(layer "F.Mask")
(uuid "437c4fe3-3b65-4498-8cbb-3092b20dea95")
)
(fp_rect
(start -0.9 -0.3)
(end 0.9 0.3)
(stroke
(width 0)
(type solid)
)
(fill yes)
(layer "F.Mask")
(uuid "17c54e19-eefb-4cb4-8a30-22769fa63e22")
)
(fp_rect
(start -0.9 0.7)
(end 0.9 0.9)
(stroke
(width 0)
(type solid)
)
(fill yes)
(layer "F.Mask")
(uuid "8c091947-de48-4bc0-8baa-99cee4714fca")
)
(fp_rect
(start -0.5 -0.9)
(end 0.5 0.9)
(stroke
(width 0)
(type solid)
)
(fill yes)
(layer "F.Mask")
(uuid "cf3122f2-1410-4ffa-bd3a-95e240a42250")
)
(fp_rect
(start 1.385 -0.9)
(end 0.9 0.9)
(stroke
(width 0)
(type solid)
)
(fill yes)
(layer "F.Mask")
(uuid "ebc6d5a1-7eef-4f5f-8baa-09a348a60ff0")
)
(fp_circle
(center -0.7 -0.5)
(end -0.45 -0.5)
(stroke
(width 0.1)
(type solid)
)
(fill no)
(layer "F.Mask")
(uuid "52574f56-bb94-4404-98ae-8acf527bf158")
)
(fp_circle
(center -0.7 0.5)
(end -0.45 0.5)
(stroke
(width 0.1)
(type solid)
)
(fill no)
(layer "F.Mask")
(uuid "ff337c18-50c8-4182-803e-34fcf5daaf88")
)
(fp_circle
(center 0.7 -0.5)
(end 0.95 -0.5)
(stroke
(width 0.1)
(type solid)
)
(fill no)
(layer "F.Mask")
(uuid "fd631b03-8a39-494f-92a6-7640a9c66c59")
)
(fp_circle
(center 0.7 0.5)
(end 0.95 0.5)
(stroke
(width 0.1)
(type solid)
)
(fill no)
(layer "F.Mask")
(uuid "98ae19ae-30e7-445d-8be0-9b34eabae267")
)
(fp_line
(start -2.3 1.05)
(end -2.3 0.8)
(stroke
(width 0.1)
(type default)
)
(layer "F.SilkS")
(uuid "42bf5688-e4a9-45a1-ad36-429bed749752")
)
(fp_line
(start -2.3 1.05)
(end 2.3 1.05)
(stroke
(width 0.1)
(type default)
)
(layer "F.SilkS")
(uuid "104eef33-86b8-4489-9056-9edb6bd92178")
)
(fp_line
(start -1.85 -1.05)
(end 2.3 -1.05)
(stroke
(width 0.1)
(type solid)
)
(layer "F.SilkS")
(uuid "ba0659d8-b83b-46ae-b3d3-402c6ef27017")
)
(fp_line
(start 2.3 -1.05)
(end 2.3 -0.8)
(stroke
(width 0.1)
(type default)
)
(layer "F.SilkS")
(uuid "921d3a9b-7420-48e0-a47f-cfcbaca36335")
)
(fp_line
(start 2.3 1.05)
(end 2.3 0.8)
(stroke
(width 0.1)
(type default)
)
(layer "F.SilkS")
(uuid "43b816cc-cfff-4d90-9de0-d61ec583d3fd")
)
(fp_poly
(pts
(xy -2.45 -0.8) (xy -2.55 -0.95) (xy -2.35 -0.95)
)
(stroke
(width 0.1)
(type solid)
)
(fill yes)
(layer "F.SilkS")
(uuid "c4927c74-802e-4214-806a-02e285ebbf56")
)
(fp_rect
(start -1.385 -0.9)
(end -0.9 0.9)
(stroke
(width 0)
(type solid)
)
(fill yes)
(layer "F.Paste")
(uuid "2b773e10-eb6f-449f-8e04-9c9c33bdbbf9")
)
(fp_rect
(start -0.9 -0.3)
(end 0.9 0.3)
(stroke
(width 0)
(type solid)
)
(fill yes)
(layer "F.Paste")
(uuid "989bde29-a11b-4306-9c5b-e0ac37b279b6")
)
(fp_rect
(start -0.5 -0.9)
(end 0.5 0.9)
(stroke
(width 0)
(type solid)
)
(fill yes)
(layer "F.Paste")
(uuid "d5e02262-62b7-412b-8b32-c21825bb6caa")
)
(fp_rect
(start 1.385 -0.9)
(end 0.9 0.9)
(stroke
(width 0)
(type solid)
)
(fill yes)
(layer "F.Paste")
(uuid "38ed4447-2b66-4a63-a6a9-82e261650bc2")
)
(fp_rect
(start -2.6 -1.1)
(end 2.6 1.1)
(stroke
(width 0.05)
(type default)
)
(fill no)
(layer "F.CrtYd")
(uuid "ec5bfc4d-edf6-40b0-8061-df21c3f33ca1")
)
(fp_text user "${REFERENCE}"
(at 0 2.5 0)
(unlocked yes)
(layer "F.Fab")
(uuid "85408de3-96a7-4e1d-9389-0fd0794572a5")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(pad "1" smd rect
(at -2.255 -0.5)
(size 0.6 0.25)
(layers "F.Cu" "F.Mask" "F.Paste")
(uuid "481f2b4d-c19e-46a0-a36c-65c16997edf3")
)
(pad "2" smd rect
(at -2.255 0)
(size 0.6 0.25)
(layers "F.Cu" "F.Mask" "F.Paste")
(uuid "3688eeed-5456-4dd5-9dcb-3ba46f0c9afa")
)
(pad "3" smd rect
(at -2.255 0.5)
(size 0.6 0.25)
(layers "F.Cu" "F.Mask" "F.Paste")
(uuid "33e39039-6c7b-4fe9-b007-3f5c1bfccc72")
)
(pad "4" smd rect
(at 2.255 0.5)
(size 0.6 0.25)
(layers "F.Cu" "F.Mask" "F.Paste")
(uuid "e2c8e7b4-7bc3-499f-b71c-59a69e9fed6a")
)
(pad "5" smd rect
(at 2.255 0)
(size 0.6 0.25)
(layers "F.Cu" "F.Mask" "F.Paste")
(uuid "fc806946-3c8b-4b95-bf35-f25535f24917")
)
(pad "6" smd rect
(at 2.255 -0.5)
(size 0.6 0.25)
(layers "F.Cu" "F.Mask" "F.Paste")
(uuid "6820b794-3cf0-4818-9a4a-2d9bb7babb63")
)
(pad "7" thru_hole circle
(at -0.7 -0.5)
(size 0.4 0.4)
(drill 0.2)
(layers "*.Cu" "B.Mask")
(remove_unused_layers no)
(uuid "614344d8-37d7-4e8e-a378-4a3971630a98")
)
(pad "7" thru_hole circle
(at -0.7 0.5)
(size 0.4 0.4)
(drill 0.2)
(layers "*.Cu" "B.Mask")
(remove_unused_layers no)
(uuid "195a91f6-13e1-4c7b-9754-0f95ecbe9a21")
)
(pad "7" smd rect
(at 0 0)
(size 2.77 1.8)
(layers "F.Cu")
(uuid "fb2847c7-0901-4ae1-8936-39546a6fdbaf")
)
(pad "7" thru_hole circle
(at 0.7 -0.5)
(size 0.4 0.4)
(drill 0.2)
(layers "*.Cu" "B.Mask")
(remove_unused_layers no)
(uuid "607aea58-68a7-4a00-8314-53e46ee8c282")
)
(pad "7" thru_hole circle
(at 0.7 0.5)
(size 0.4 0.4)
(drill 0.2)
(layers "*.Cu" "B.Mask")
(remove_unused_layers no)
(uuid "45dc9bc8-65c1-4c76-8a6b-fb082ecfca72")
)
(embedded_fonts no)
(model "${KIPRJMOD}/lib/3D/DFN2x5_6L_EP1_P.step"
(offset
(xyz 0 0 0)
)
(scale
(xyz 1 1 1)
)
(rotate
(xyz -90 -0 -90)
)
)
)

View File

@@ -0,0 +1,139 @@
(footprint "ESN4"
(version 20241229)
(generator "pcbnew")
(generator_version "9.0")
(layer "F.Cu")
(property "Reference" "REF**"
(at 0 -2.5 0)
(unlocked yes)
(layer "F.SilkS")
(uuid "7cfbc37f-4678-4ba3-8428-57b957a0fc94")
(effects
(font
(size 1 1)
(thickness 0.1)
)
)
)
(property "Value" "ESN4"
(at 0 -0.8 0)
(unlocked yes)
(layer "F.Fab")
(uuid "b3f537d9-bc6a-4cb1-904b-cc97d6bd2b8b")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Datasheet" "../../../../doc/datasheets/LiIon Protection/XB4908.pdf"
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "57392a18-2d0d-4687-b2a9-bbcecb3e94fc")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Description" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "6bc6ac70-16dc-4f04-9243-faee36cd5070")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(attr smd)
(fp_poly
(pts
(xy -1.85 -1.65) (xy -1.45 -1.65) (xy -1.65 -1.35)
)
(stroke
(width 0.1)
(type solid)
)
(fill yes)
(layer "F.SilkS")
(uuid "084cce54-6d9b-4eab-978f-b183c22588cf")
)
(fp_rect
(start -2.15 -1.675)
(end 2.15 1.675)
(stroke
(width 0.05)
(type solid)
)
(fill no)
(layer "F.CrtYd")
(uuid "ff77d0a4-c1cd-4cf7-a5e5-0eba6acb6670")
)
(fp_rect
(start -1.15 -1.4)
(end 1.15 1.4)
(stroke
(width 0.1)
(type solid)
)
(fill no)
(layer "F.Fab")
(uuid "e375870b-9f7b-44e0-950c-a6f973fcd63a")
)
(fp_text user "${REFERENCE}"
(at 0 0.7 0)
(unlocked yes)
(layer "F.Fab")
(uuid "75a216b8-c3e9-4c2e-a898-8ae4e80a6381")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(pad "1" smd rect
(at -1.632 -0.793)
(size 0.636 0.45)
(layers "F.Cu" "F.Mask" "F.Paste")
(uuid "ef4f3180-156b-4edd-8e8a-407b3d466b9e")
)
(pad "2" smd rect
(at -1.632 0.445)
(size 0.636 1.146)
(layers "F.Cu" "F.Mask" "F.Paste")
(uuid "ff8956fc-c762-47a6-a404-a45bb1832b93")
)
(pad "3" smd rect
(at 1.632 0.5365)
(size 0.663 0.873)
(layers "F.Cu" "F.Mask" "F.Paste")
(uuid "ef49f64d-beed-49be-aa46-87820fa9d145")
)
(pad "4" smd rect
(at 1.632 -0.5365)
(size 0.636 0.873)
(layers "F.Cu" "F.Mask" "F.Paste")
(uuid "af0dd650-7d84-4dff-ba2c-32a7398fd15a")
)
(embedded_fonts no)
(model "../3D/ESN4.step"
(offset
(xyz 0 0 0)
)
(scale
(xyz 1 1 1)
)
(rotate
(xyz -90 -0 -0)
)
)
)

View File

@@ -0,0 +1,446 @@
(footprint "Texas_VQNF_29_4x4"
(version 20241229)
(generator "pcbnew")
(generator_version "9.0")
(layer "F.Cu")
(property "Reference" "REF**"
(at 0 -3.1 0)
(unlocked yes)
(layer "F.SilkS")
(uuid "5afe991c-2ed6-40b6-96ce-acd28e23a30c")
(effects
(font
(size 1 1)
(thickness 0.1)
)
)
)
(property "Value" "Texas_VQNF_29_4x4"
(at 0 3.2 0)
(unlocked yes)
(layer "F.Fab")
(uuid "63be4e20-5ee7-47a3-81e3-e09a3a3f735d")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Datasheet" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "7d6da3bc-00a1-4a13-a3cb-ac90f6acd8e9")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Description" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "fe7ced8b-5f1b-4e43-8e7a-bd59a050875d")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(attr smd)
(fp_line
(start -2.05 -1.9)
(end -1.9 -2.05)
(stroke
(width 0.1)
(type default)
)
(layer "F.SilkS")
(uuid "91f17c19-5ddf-4500-b6dc-bfa526ab1698")
)
(fp_line
(start -2.05 -1.8)
(end -2.05 -1.9)
(stroke
(width 0.1)
(type default)
)
(layer "F.SilkS")
(uuid "d3bda032-ee1b-4374-a520-56bd603e67e6")
)
(fp_line
(start -2.05 2.05)
(end -2.05 1.8)
(stroke
(width 0.1)
(type default)
)
(layer "F.SilkS")
(uuid "fb023855-b4e5-402e-8cc6-b1ce8321b80a")
)
(fp_line
(start -2.05 2.05)
(end -1.8 2.05)
(stroke
(width 0.1)
(type default)
)
(layer "F.SilkS")
(uuid "d93ae045-b128-4d5e-9457-6b046cd21336")
)
(fp_line
(start -1.9 -2.05)
(end -1.8 -2.05)
(stroke
(width 0.1)
(type default)
)
(layer "F.SilkS")
(uuid "a3cba265-eb7c-4726-b44e-6d79323a8f38")
)
(fp_line
(start 2.05 -2.05)
(end 1.8 -2.05)
(stroke
(width 0.1)
(type default)
)
(layer "F.SilkS")
(uuid "16eae76f-321a-4a93-9250-a86ace004768")
)
(fp_line
(start 2.05 -2.05)
(end 2.05 -1.8)
(stroke
(width 0.1)
(type default)
)
(layer "F.SilkS")
(uuid "82ce2222-94f0-4092-8a42-0276f0464b78")
)
(fp_line
(start 2.05 2.05)
(end 1.8 2.05)
(stroke
(width 0.1)
(type default)
)
(layer "F.SilkS")
(uuid "78fdf60d-5d6e-4151-b146-2d2f1a13674f")
)
(fp_line
(start 2.05 2.05)
(end 2.05 1.8)
(stroke
(width 0.1)
(type default)
)
(layer "F.SilkS")
(uuid "a02df33a-87fd-418f-9c5a-f3ed61384364")
)
(fp_rect
(start -2.3 -2.3)
(end 2.3 2.3)
(stroke
(width 0.05)
(type default)
)
(fill no)
(layer "F.CrtYd")
(uuid "aa5f7882-f271-4003-82a1-5d1306751bb6")
)
(fp_text user "${REFERENCE}"
(at 0 4.8 0)
(unlocked yes)
(layer "F.Fab")
(uuid "03d3a19f-8fb7-46f2-8f44-b81de37c70c4")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(pad "1" smd roundrect
(at -1.725 -1.6)
(size 0.95 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "72127a4f-5170-4d5f-b63c-773105e85cdf")
)
(pad "1" smd roundrect
(at -1.35 -1.85 90)
(size 0.7 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "60200213-584a-4fe3-b1f9-84afb4c36b06")
)
(pad "2" smd roundrect
(at -1.9 -1.2 180)
(size 0.6 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "928d1bdf-5558-4096-8901-4c4592e49dfd")
)
(pad "3" smd roundrect
(at -1.9 -0.8 180)
(size 0.6 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "42abe885-85a1-4924-a011-654af210fc73")
)
(pad "4" smd roundrect
(at -1.9 -0.4 180)
(size 0.6 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "ace14d3f-e69e-4a67-babf-b9c72a3241f2")
)
(pad "5" smd roundrect
(at -1.9 0 180)
(size 0.6 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "1a2622a0-973f-471f-bdb9-e72926ba1de4")
)
(pad "6" smd roundrect
(at -1.9 0.4 180)
(size 0.6 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "471900f1-251c-41ea-b0e8-748347f30cee")
)
(pad "7" smd roundrect
(at -1.9 0.8 180)
(size 0.6 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "4739c9c4-0d94-43fd-9f03-b46749c16c8e")
)
(pad "8" smd roundrect
(at -1.9 1.2 180)
(size 0.6 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "b185bf5e-fceb-48d8-bca8-0ecb49bdd059")
)
(pad "9" smd roundrect
(at -1.75 1.6 180)
(size 0.9 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "ea5ab833-c272-4580-9c13-98ee591acadc")
)
(pad "9" smd roundrect
(at -1.4 1.85 270)
(size 0.7 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "46845a8b-f109-444e-9e44-80a9c1611973")
)
(pad "10" smd roundrect
(at -1 1.9 270)
(size 0.6 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "58f8073d-a266-494d-9607-d9e3b543e45a")
)
(pad "11" smd roundrect
(at -0.6 1.9 270)
(size 0.6 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "23983c0a-3a31-4c54-8083-aed144b21b0d")
)
(pad "12" smd roundrect
(at -0.2 1.9 270)
(size 0.6 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "3eb4238c-2139-458a-9452-a1806889add6")
)
(pad "13" smd roundrect
(at 0.2 1.9 270)
(size 0.6 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "d65e0cec-028e-432c-8b48-50171473aa15")
)
(pad "14" smd roundrect
(at 0.6 1.9 270)
(size 0.6 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "2918b1e8-1529-46d8-ab34-599fb83e9f9b")
)
(pad "15" smd roundrect
(at 1 1.9 270)
(size 0.6 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "a0b683e0-779c-457c-ace9-ec3ebe91daaf")
)
(pad "16" smd roundrect
(at 1.4 1.85 270)
(size 0.7 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "ae29fd18-9e2b-4314-a317-f98364e756a0")
)
(pad "16" smd roundrect
(at 1.75 1.6)
(size 0.9 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "389ba6c5-9f02-44ba-bfab-21cd5758e87d")
)
(pad "17" smd roundrect
(at 1.85 1.2)
(size 0.7 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "65cf7ea2-1ec0-4d2c-907e-fe00b40e09d6")
)
(pad "18" smd roundrect
(at 1.875 0.8)
(size 0.65 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "681e501b-d560-4073-a676-6731f8a5d3db")
)
(pad "19" smd roundrect
(at 1.8625 0.4)
(size 0.68 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "0e2944cd-b6e2-4dff-a409-efcda9c39467")
)
(pad "20" smd roundrect
(at 1.9 0)
(size 0.6 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "63967368-ece0-4498-b9fd-c466d5221073")
)
(pad "21" smd roundrect
(at 1.9 -0.4)
(size 0.6 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "cee7e747-3aa3-4286-9375-a87a272ac394")
)
(pad "22" smd roundrect
(at 1.9 -0.8)
(size 0.6 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "84a5d1cd-6b14-42db-8ffd-6b17942d2c2d")
)
(pad "23" smd roundrect
(at 1.9 -1.2)
(size 0.6 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "dd0f9297-9626-4eac-a319-515770ba20c8")
)
(pad "24" smd roundrect
(at 1.35 -1.85 90)
(size 0.7 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "84b094f5-53ea-4d87-a898-9a372d957870")
)
(pad "24" smd roundrect
(at 1.725 -1.6)
(size 0.95 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "54f7fa8e-b617-4c9b-9c9e-123662bc7130")
)
(pad "25" smd roundrect
(at 0.9 -1.7 90)
(size 1 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "45282fbf-9bb7-4aa1-9adb-408c2763a9bb")
)
(pad "26" smd roundrect
(at 0.45 -1.7 90)
(size 1 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "bf6b6183-571e-4e9c-b1c8-10ea4c76836b")
)
(pad "27" smd roundrect
(at 0 -1.7 90)
(size 1 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "39c4b646-f0fe-49dc-bb65-5c0e1714bd27")
)
(pad "28" smd roundrect
(at -0.45 -1.7 90)
(size 1 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "dd2a1b9d-1b19-4a91-a5e9-c99aa404fd1e")
)
(pad "29" smd roundrect
(at -0.9 -1.725 90)
(size 0.95 0.2)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(thermal_bridge_angle 45)
(uuid "4e1054d9-f68f-42a8-baae-9ef35ec1e418")
)
(embedded_fonts no)
(model "${KICAD9_3DMODEL_DIR}/Package_SON.3dshapes/WSON-8_4x4mm_P0.8mm.step"
(offset
(xyz 0 0 0)
)
(scale
(xyz 1 1 1)
)
(rotate
(xyz 0 0 0)
)
)
)

File diff suppressed because it is too large Load Diff

View File

@@ -1,217 +1,556 @@
# Energieversorgung
# Hardware-Dokumentation: Energieversorgung
## Inhaltsverzeichnis
<!-- @import "[TOC]" {cmd="toc" depthFrom=1 depthTo=6 orderedList=false} -->
<!-- code_chunk_output -->
- [Energieversorgung](#energieversorgung)
- [Hardware-Dokumentation: Energieversorgung](#hardware-dokumentation-energieversorgung)
- [Inhaltsverzeichnis](#inhaltsverzeichnis)
- [Übersicht](#übersicht)
- [Primäre Energiequellen](#primäre-energiequellen)
- [Interne Spannungsversorgungen](#interne-spannungsversorgungen)
- [Systemarchitektur](#systemarchitektur)
- [Detailbeschreibung](#detailbeschreibung)
- [Externe Quellen](#externe-quellen)
- [USB-C Port](#usb-c-port)
- [Debug Port](#debug-port)
- [Batterien](#batterien)
- [Externe Energiequellen](#externe-energiequellen)
- [USB-C-Anschluss](#usb-c-anschluss)
- [Debug-Anschluss](#debug-anschluss)
- [Batteriesystem](#batteriesystem)
- [Li-Ion-Akku](#li-ion-akku)
- [Akkuschutz](#akkuschutz)
- [Akkuschutzschaltung](#akkuschutzschaltung)
- [Fuel Gauge](#fuel-gauge)
- [CR1220](#cr1220)
- [Energiewandlung](#energiewandlung)
- [Lader](#lader)
- [3.3V Buck-Boost-Wandler (DC/DC-Wandler)](#33v-buck-boost-wandler-dcdc-wandler)
- [SD Schalter](#sd-schalter)
- [3.3V LDO](#33v-ldo)
- [Power-Mux](#power-mux)
- [Dimensionierungen](#dimensionierungen)
- [N-FETs](#n-fets)
- [Backup-Batterie (CR1220)](#backup-batterie-cr1220)
- [Energiebilanzierung](#energiebilanzierung)
- [Ausgangsdaten](#ausgangsdaten)
- [Verbrauchsanalyse](#verbrauchsanalyse)
- [Spannungswandlung](#spannungswandlung)
- [Power-Multiplexer (Externe Quellen)](#power-multiplexer-externe-quellen)
- [Ladeschaltung](#ladeschaltung)
- [Buck-Boost-Wandler (3,3 V)](#buck-boost-wandler-33-v)
- [SD-Karten-Schalter](#sd-karten-schalter)
- [Low-Dropout-Regulator (3,3 V)](#low-dropout-regulator-33-v)
- [VBackup-Multiplexer](#vbackup-multiplexer)
- [Bauteilauslegung](#bauteilauslegung)
- [N-Kanal-MOSFETs](#n-kanal-mosfets)
- [P-Kanal-MOSFETs](#p-kanal-mosfets)
- [Referenzen und Datenblätter](#referenzen-und-datenblätter)
- [Energiemanagement-ICs](#energiemanagement-ics)
- [USB-Erkennung](#usb-erkennung)
- [Spannungsregler](#spannungsregler)
- [Diskrete Halbleiter](#diskrete-halbleiter)
<!-- /code_chunk_output -->
## Übersicht
Die Energieversorgung des Geräts besteht aus drei Hauptkomponenten:
- Externe Energieversorgung (USB, Debug-Stecker)
- Interner 1S LiPo/LiIon-Akku
- Interne Knopfzelle (CR1220)
Aus diesen Quellen werden mehrere interne Spannungsversorgungen erzeugt:
- `VDD` ist die Hauptversorgung für den Mikrocontroller, den Sensor und den externen Flash-Speicher. Sie wird durch einen Buck-Boost-Wandler aus der externen Versorgung oder dem Li-Ion-Akku erzeugt. Der Wandler ist zur Energieeinsparung schaltbar.
- `VDDSD` versorgt den MicroSD-Kartenslot. Diese Versorgung ist schaltbar, da eine SD-Karte auch im Ruhezustand einen signifikanten Stromverbrauch hat.
- `VRTC` versorgt die Echtzeituhr (RTC) und den `VBAT`-Pin des Mikrocontrollers. Diese Spannung ist immer vorhanden, solange der Batterieschutz nicht ausgelöst hat. Die Versorgung erfolgt über einen Power-MUX, der priorisiert von `VDD` gespeist wird. Fällt `VDD` aus, erfolgt die Versorgung über einen LDO direkt vom Li-Ion-Akku (nach der Schutzschaltung).
- `VBACKUP` ist die Spannung der CR1220-Zelle. Sie dient als Backup-Versorgung für die RTC, falls der Akku entfernt wird oder der Tiefentladeschutz auslöst.
Das Energieversorgungssystem des PowerProfilers basiert auf einem dreistufigen Konzept:
### Primäre Energiequellen
- **Externe Versorgung:** USB-C-Anschluss und Debug-Anschluss
- **Hauptenergie:** 1S Li-Ion/LiPo-Akkupack (2×18650 parallel)
- **Backup-Versorgung:** CR1220-Knopfzelle für RTC-Erhaltung
### Interne Spannungsversorgungen
Das System generiert vier verschiedene Versorgungsspannungen:
| Versorgung | Funktion | Quelle | Schaltbar |
|------------|----------|---------|-----------|
| **VDD** | Hauptversorgung (MCU, Sensoren, Flash) | [Buck-Boost-Wandler](#buck-boost-wandler-33-v) | ✓ |
| **VDDSD** | MicroSD-Kartenslot | [Buck-Boost-Wandler](#buck-boost-wandler-33-v) | ✓ |
| **VRTC** | RTC und MCU-VBAT | [VRTC-Multiplexer](#vrtc-multiplexer) | |
| **VBACKUP** | RTC-Backup | [CR1220-Zelle](#backup-batterie-cr1220) | |
### Systemarchitektur
Das vereinfachte Blockschaltbild sieht wie folgt aus:
```mermaid
graph TD;
subgraph "Batterien"
LIPO[(Li-Ion Akku)];
PROTECTION[Akkuschutz];
GAUGE[Fuel Gauge];
CR1220[(CR1220)];
end
LIPO <--> PROTECTION;
PROTECTION <--> GAUGE;
CR1220 --> VBACKUP;
subgraph "Externe Quellen"
USBC[USB-C Port];
DEBUG[Programmier-Port];
graph TD
subgraph "Externe Energiequellen"
USBC[ USB-C-Anschluss ]
DEBUG[ Debug-Anschluss ]
end
subgraph "Energiewandlung"
LDO[3.3V LDO];
DCDC[3.3V Buck-Boost];
CHARGER[Lader];
SDSWITCH[SD Schalter];
MUX[Power-Mux]
subgraph "Batteriesystem"
LIPO[( Li-Ion Akkupack<br/>2×18650 parallel )]
PROTECTION[ Akkuschutzschaltung<br/>XB4908A ]
GAUGE[ Fuel Gauge<br/>bq27441-G1 ]
CR1220[( CR1220<br/>Backup-Batterie )]
end
USBC --> CHARGER;
DEBUG --> CHARGER;
GAUGE <--> CHARGER;
CHARGER --> DCDC --> VDD;
CHARGER --> LDO;
LDO --> MUX;
DCDC --> MUX --> VRTC;
DCDC --> SDSWITCH --> VDDSD;
subgraph "Verfügbare Versorgungen"
VBACKUP(VBACKUP);
VRTC(VRTC);
VDDSD(VDDSD);
VDD(VDD);
subgraph "Energiemanagement"
CHARGER[ Ladeschaltung<br/>BQ25672 ]
DCDC[ Buck-Boost-Wandler<br/>TPS63020 ]
LDO[ LDO-Regler<br/>XC6206P332MR-G ]
PMUX_BACKUP[ VRTC-Multiplexer<br/>Diskrete Lösung ]
SDSWITCH[ SD-Schalter<br/>P-MOSFET ]
end
subgraph "Versorgungsausgänge"
VDD[ VDD<br/>3,3V Haupt ]
VDDSD[ VDDSD<br/>3,3V SD-Karte ]
VRTC[ VRTC<br/>3,3V RTC ]
VBACKUP[ VBACKUP<br/>3V Backup ]
end
USBC --> CHARGER
DEBUG --> CHARGER
CHARGER <--> GAUGE
GAUGE <--> PROTECTION
PROTECTION <--> LIPO
CHARGER --> DCDC
CHARGER --> LDO
DCDC --> VDD
DCDC --> SDSWITCH --> VDDSD
DCDC --> PMUX_BACKUP
LDO --> PMUX_BACKUP
PMUX_BACKUP --> VRTC
CR1220 --> VBACKUP
```
## Detailbeschreibung
### Externe Quellen
#### USB-C Port
Das Gerät verfügt über einen USB-C-Port, der sowohl der Datenübertragung als auch der Energieversorgung dient. Es kann an einem PC/Laptop sowie an gängigen Netzteilen (Handy-Ladegerät, USB-C Laptop-Netzteil etc.) geladen werden. Dabei muss der jeweils verfügbare Strom beachtet werden. Mehr dazu unter [Lader](#lader).
#### Debug Port
Damit das Gerät auch bei ausschließlich gesteckter Debug-Verbindung funktioniert, können 5V auf den Debug-Port eingespeist werden. Bei den meisten Debug-Adaptern ist der verfügbare Strom begrenzt, weshalb von diesem Eingang maximal 300mA bezogen werden dürfen.
### Externe Energiequellen
#### USB-C-Anschluss
Der USB-C-Anschluss dient der Datenübertragung und Energieversorgung. Das Gerät ist kompatibel mit:
- Standard-PC/Laptop-USB-Anschlüssen
- USB-C-Ladegeräten (Smartphone, Laptop)
- USB Power Delivery (USB-PD) Quellen
Die Ladeschaltung erkennt automatisch die verfügbare Stromstärke über:
- **CC-Leitungen:** USB-C-konforme Stromerkennung (bis 3 A)
- **Datenleitung-Analyse:** USB Battery Charging Detection (BCD) über bq24239
#### Debug-Anschluss
Für den Betrieb mit ausschliesslich angeschlossenem Debugger kann über den Debug-Anschluss eine 5-V-Versorgung eingespeist werden. Aufgrund der typischerweise begrenzten Stromstärke von Debug-Adaptern ist der maximale Stromverbrauch auf 300 mA begrenzt.
### Batteriesystem
### Batterien
#### Li-Ion-Akku
Als Akku sind zwei parallelgeschaltete 18650-Zellen vorgesehen. Diese werden mittels Nickelstreifen verschweißt, mit einem NTC-Temperatursensor versehen und eingeschrumpft. Die Verbindung zur Hauptplatine ist vierpolig (`BAT+`, `BAT-`, `NTC`, `GND`), da sich die [Akkuschutzschaltung](#akkuschutz) auf der Hauptplatine befindet. Diese trennt im Fehlerfall die `BAT-` Leitung vom Rest der Schaltung (`GND`). Wäre der NTC-Temperatursensor nur zwischen `BAT+` und `BAT-` angeschlossen, hätte er nach einer Trennung kein definiertes Potenzial mehr (floating). Ein an `GND` referenzierter Messeingang am [Lader](#lader) könnte die Temperatur nicht mehr korrekt erfassen. Durch die separate `GND`-Verbindung für den NTC wird dieses Problem umgangen.
**Konfiguration:** 2×18650-Zellen in Parallelschaltung
**Verbindung:** Verschweisste Nickelstreifen mit integriertem NTC-Temperatursensor
**Anschluss:** 4-polige Verbindung zur Hauptplatine
#### Akkuschutz
Als Akkuschutz kommt ein **FM2113** zum Einsatz. Dieser steuert zwei N-Kanal-MOSFETs (für Laden und Entladen), die in einer Common-Drain-Schaltung zwischen `BAT-` und `GND` platziert sind. Er schützt den Akku vor *Überladung*, *Tiefentladung* und *Überstrom*.
| Anschluss | Funktion |
|-----------|----------|
| BAT+ | Positive Akkuspannung |
| BAT- | Negative Akkuspannung (schaltbar durch Schutzschaltung) |
| NTC | Temperatursensor |
| GND | Referenzmasse für NTC |
Die separate GND-Verbindung für den NTC-Sensor verhindert Potentialprobleme bei ausgelöster Schutzschaltung, da der Temperatursensor weiterhin an einer definierten Referenz angeschlossen bleibt.
#### Akkuschutzschaltung
**Baustein:** XB4908A (XySemi)
**Typ:** Integrierte Li-Ion-Schutzschaltung mit MOSFETs
Die Schutzschaltung überwacht und schützt vor:
- **Überladung:** Abschaltung bei >4,30 V, Wiedereinschaltung bei <4,10 V
- **Tiefentladung:** Abschaltung bei <2,4 V, Wiedereinschaltung bei >3,0 V
- **Überstrom:** Schutz bei >6 A (Entladung) bzw. >4 A (Ladung)
**Schlüsselparameter:**
| Parameter | Symbol | Wert |
|-----------|--------|------|
| Betriebsstrom | I_OPE | typ. 3,3 μA |
| Standby-Strom | I_PD | typ. 1,8 μA |
| Innenwiderstand | R_SS(on) | typ. 13,5 mΩ |
| Thermischer Widerstand | θ_JC | 100 K/W |
##### Thermische Auslegung:
Bei einem Dauerstrom von 2 A über den Schutz-MOSFET ergibt sich:
$$P_{loss} = R_{SS(on)} \cdot I^2 = 20\text{ mΩ} \cdot (3\text{ A})^2 = 180\text{ mW}$$
Dies führt zu einer Temperaturerhöhung von:
$$\Delta T = P_{loss} \cdot \theta_{JC} = 180\text{ mW} \cdot 100\text{ K/W} = 18\text{ K}$$
#### Fuel Gauge
Als Fuel Gauge wird der **BQ27441-G1** von Texas Instruments eingesetzt. Der ursprünglich vorgesehene **BQ27427** ist nur für einen Dauerstrom von 2A ausgelegt, wodurch das Potenzial des [Laders](#lader) und des [Li-Ion-Akkus](#li-ion-akku) nicht ausgenutzt werden könnte.
Zur Strommessung ist ein `0.01Ω` Shunt-Widerstand vorgesehen. Hierbei ist die Temperaturstabilität des Widerstands wichtiger als sein exakter Wert, da dieser in der Fuel Gauge kalibriert werden kann.
Die Verlustleistung am Widerstand ist mit 90mW bei 3A gering:
$$
\begin{align}
P &= R \cdot I^2 \\
&= 0.01\text{Ω} \cdot (3\text{A})^2 \\
&= 0.09\text{W}
\end{align}
$$
Obwohl diese Verlustleistung bereits ein 0603-SMD-Widerstand verkraften würde, wird hier ein Widerstand der Bauform 1206 vorgesehen, um eine saubere 4-Leiter-Messung (Kelvin-Verbindung) zu ermöglichen.
Die Konfiguration der Fuel Gauge kann über die TI-Software und einen entsprechenden Adapter erfolgen. Dazu kann der Adapter an einen externen I²C-Anschluss (z.B. OLED- oder Tasten-Controller-Anschluss) angeschlossen werden. Dabei ist sicherzustellen, dass auf dem Mikrocontroller keine Software aktiv ist, die einen I²C-Master implementiert.
Da der BQ27441-G1 keine NTC-Schnittstelle besitzt, wird eine alternative Methode zur Temperaturerfassung genutzt. Im Betrieb liest der Mikrocontroller die Akkutemperatur vom [Lader](#lader) aus und leitet sie per I²C an die Fuel Gauge weiter. Im Ruhezustand, wenn von einer thermischen Stabilität auszugehen ist, wird auf den internen Temperatursensor der Fuel Gauge zurückgegriffen.
**Baustein:** bq27441-G1 (Texas Instruments)
**Shunt-Widerstand:** 0,01 Ω (1206-Gehäuse für Kelvin-Verbindung)
Die Fuel Gauge überwacht kontinuierlich:
- Akkuspannung und -strom
- Ladezustand (State of Charge, SOC)
- Verbleibende Kapazität
- Gesundheitszustand (State of Health, SOH)
##### Temperaturerfassung:
- **Betriebsmodus:** Temperaturwerte vom Lader-IC über I²C
- **Ruhemodus:** Interner Temperatursensor der Fuel Gauge
- **Übergangsstrategie:** Gesteuerte Umschaltung durch RTC-Wake-up
```mermaid
stateDiagram-v2
[*] --> Betrieb
Betrieb --> Nachlauf: Gerät schaltet aus
Nachlauf --> Tiefschlaf: Akkutemperatur stabil oder 1h abgelaufen
Tiefschlaf --> Betrieb: Gerät schaltet ein
[*] --> Aktiv: Gerät eingeschaltet
Aktiv --> Nachlauf: Gerät ausgeschaltet
Nachlauf --> Tiefschlaf: Temperatur stabil<br/>oder 1h vergangen
Tiefschlaf --> Aktiv: Gerät eingeschaltet
note right of Nachlauf
DC/DC wird von der RTC regelmässig gestartet um die Temperatur zu übermitteln.
DC/DC-Wandler wird periodisch
von RTC gestartet für
Temperaturübertragung
end note
note right of Tiefschlaf
DC/DC ausgeschaltet
note left of Tiefschlaf
DC/DC-Wandler ausgeschaltet
Fuel Gauge verwendet
internen Temperatursensor
end note
```
#### CR1220
Eine CR1220-Knopfzelle dient als Backup-Versorgung für die RTC. Die Batterie wird im Normalfall für sehr lange Zeit (>10 Jahre) ausreichen, da die RTC primär vom [Li-Ion-Akku](#li-ion-akku) versorgt wird, solange die Schutzschaltung nicht ausgelöst hat.
### Energiewandlung
#### Lader
Als Ladechip ist der **BQ25672** vorgesehen. Dieser bietet einige für das Projekt interessante Funktionen:
- Erkennung von zwei externen Spannungsquellen und Auslösung von Interrupts bei deren Anschluss oder Trennung.
- Einstellbarer Ladestrom von bis zu 3A (in 10mA-Schritten über I²C).
- Einstellbare Eingangsstrombegrenzung (über I²C).
- Erkennung von Sonderladegeräten (USB BC1.2 und HVDCP).
- Hohe Effizienz dank Buck-Boost-Architektur.
- Unterstützung der NVDC-Funktion (Narrow Voltage DC).
- "Shipping Mode", um den Stromverbrauch auf ein absolutes Minimum zu reduzieren. Dieser Modus kann nur durch Anschließen einer externen Versorgung beendet werden.
- Integrierte FETs.
#### Backup-Batterie (CR1220)
**Typ:** Lithium-Knopfzelle CR1220
**Funktion:** Backup-Versorgung für RTC bei Akkuausfall
**Lebensdauer:** >10 Jahre (bei primärer Versorgung über Li-Ion-Akku)
Eine direkte Erkennung der über USB-C verfügbaren Stromstärken ist damit jedoch nicht möglich. Dies stellt jedoch kein Problem dar, da die CC-Leitungen des USB-C-Steckers über den ADC des Mikrocontrollers ausgewertet werden können. Der geplante Ablauf in der Firmware ist wie folgt:
### Energiebilanzierung
Um die Tiefentladung des Akkupacks zu verhindern, schaltet das System bei Unterschreitung einer kritischen Akkuspannung (3,0 V) in einen Deep-Power-Down-Modus. In diesem Zustand werden Lader und Fuel Gauge in energiesparende Modi versetzt.
**Power-Management-Strategie:**
```mermaid
flowchart TD
A[START] -->|Anstecken erkannt| B{CC-Leitungen messen}
B -->|größer 1.31V| C[USB-C 3A]
B -->|zwischen 0.71V und 1.16V| D[USB-C 1.5A]
B -->|kleiner 0.61V| E(BQ25672 auslesen)
E --> F{BQ25672 hat USB-Port bestimmt}
F -->|SDP erkannt| G(USB Enumerieren) -->H[Strombegrenzung gem. Enumerierung]
F -->|ansonsten| I(BQ25672 A-Port-Erkennung auslesen) -->J[Strombegrenzung entsprechend setzen]
stateDiagram-v2
[*] --> Normalbetrieb
Normalbetrieb --> DeepPowerDown: Akkuspannung < 3,0 V
DeepPowerDown --> Aufwachen: Externe Versorgung<br/>angeschlossen
Aufwachen --> Normalbetrieb: MCU startet System
note right of DeepPowerDown
• Lader in Ship-Modus
• Fuel Gauge in Shutdown
• Minimaler Stromverbrauch
end note
note left of Aufwachen
• Lader erwacht automatisch
• MCU muss Fuel Gauge
über GP-Pin aktivieren
end note
```
Dazu ist diese Beschaltung nötig:
#### Ausgangsdaten
**Akkukonfiguration:** 2×18650-Zellen parallel
| Parameter | Spezifikation | Konservative Auslegung |
|-----------|---------------|------------------------|
| Nennkapazität | 2×3200 mAh | 2×2600 mAh |
| Nutzbare Kapazität | 6400 mAh | 5200 mAh |
| Nach Alterung (80%) | 5120 mAh | 4160 mAh |
| **Kritische Reserve** | **640 mAh** | **41 mAh** |
Die kritische Reserve ist die verfügbare Energie zwischen 3,0 V (Deep-Power-Down-Schwelle) und 2,5 V (chemisch kritische Spannung).
#### Verbrauchsanalyse
**Stromverbrauch im Deep-Power-Down-Modus (Worst Case):**
| Baustein | Stromverbrauch | Bemerkung |
|----------|----------------|-----------|
| XB4908A (Akkuschutz) | 6 μA | Datenblattangabe |
| bq27441-G1 (Fuel Gauge) | 1 μA | Geschätzt (typ. 0,6 μA) |
| BQ25672 (Lader) | 1 μA | Ship-Modus |
| **Gesamtverbrauch** | **8 μA** | |
**Standzeit-Berechnung:**
$$t_{standby} = \frac{Q_{reserve}}{I_{total}} = \frac{41\text{ mAh}}{8\text{ μA}} = 5125\text{ h} = 213\text{ Tage}$$
Diese Standzeit von über 7 Monaten gewährleistet ausreichend Schutz vor Tiefentladung, selbst unter Worst-Case-Bedingungen und ohne Berücksichtigung der Selbstentladung.
### Spannungswandlung
#### Ladeschaltung
**Hauptbaustein:** BQ25672 (Texas Instruments)
**Typ:** Hochintegrierter Buck-Boost-Lader mit integriertem Power-Multiplexer
Der BQ25672 wurde als Hauptladeschaltung gewählt und bietet alle erforderlichen Funktionen in einem einzigen IC.
**Kernfunktionen des BQ25672:**
- Integrierter bidirektionaler Power-Multiplexer für externe Quellen
- Einstellbarer Ladestrom bis 4,5 A (über I²C)
- Einstellbare Eingangsstrombegrenzung bis 3 A
- Buck-Boost-Architektur für optimale Effizienz
- Automatische USB-Ladegeräteerkennung (USB BC1.2, USB-C, HVDCP)
- Ship-Modus für minimalen Stromverbrauch
- Integrierte Power-MOSFETs und Schutzfunktionen
**Systemintegration:**
```mermaid
graph TD;
USBC[USB-C Port];
MCU[Microcontroller];
CHARGER[Lader];
USBC -- D+, D-, VBUS --> CHARGER;
USBC -- D+, D-, CC1, CC2 --> MCU;
MCU <-- I²C --> CHARGER;
graph LR
USBC[USB-C-Anschluss] --> MUX[Integrierter Power-MUX]
DEBUG[Debug-Anschluss] --> MUX
MUX --> CHARGER[BQ25672 Core]
USBC -- CC1/CC2 --> MCU[Mikrocontroller]
MCU -- I²C --> CHARGER
CHARGER --> SYSTEM[Systemversorgung]
```
Der "Shipping Mode" kann dazu genutzt werden, ein Wiedereinschalten des Geräts bei niedrigem Akkustand (z.B. `< 3V`) zuverlässig zu verhindern. Zudem ist ein "Lagermodus" vorgesehen, bei dem das Gerät möglichst wenig Energie aus dem Akku entnehmen soll.
#### 3.3V Buck-Boost-Wandler (DC/DC-Wandler)
Der DC/DC-Wandler ist die Hauptenergieversorgung der Schaltung. Da die Spannung des Li-Ion-Akkus von 3V bis 4.2V variieren kann, ist ein Buck-Boost-Wandler notwendig. Die Wahl fiel auf den **TPS63020**, der folgende Vorteile bietet:
- Sehr hohe Effizienz
- Integrierte FETs
- Hohe Schaltfrequenz, was kleine Induktivitäten ermöglicht
- Enable-Eingang und sehr geringer Energieverbrauch im ausgeschalteten Zustand
**Vorteile der integrierten Lösung:**
- Reduzierte Bauteilanzahl durch integrierten Power-Multiplexer
- Optimierte Effizienz durch abgestimmte Regelkreise
- Vereinfachtes Layout ohne externe MOSFETs für Quellenumschaltung
- Automatische Ladegeräteerkennung ohne zusätzliche ICs
Der DC/DC-Wandler wird, wann immer möglich, ausgeschaltet. Weckquellen sind:
- Einschalt-Taster
- RTC
- Lader (wenn eine externe Versorgung angeschlossen wird)
#### Buck-Boost-Wandler (3,3 V)
**Baustein:** TPS63020 (Texas Instruments)
**Funktion:** Hauptspannungsversorgung für MCU, Sensoren und Flash-Speicher
Da die Wecksignale aktiv-low sind, werden sie über Dioden zu einem Wired-OR-Gatter zusammengefasst. Ein nachgeschalteter N-Kanal-MOSFET invertiert das Signal für den aktiv-high Enable-Eingang des Wandlers. Diese Logik stellt zudem sicher, dass der Mikrocontroller den Wandler selbst aktiv halten kann (Latching).
Der TPS63020 wurde aufgrund der variablen Li-Ion-Akkuspannung (3,0 V - 4,2 V) als Buck-Boost-Wandler ausgewählt.
#### SD Schalter
Eine SD-Karte kann auch im Ruhezustand einen signifikanten Strom verbrauchen. Um die Energieeffizienz zu erhöhen, wird die Versorgung des Micro-SD-Slots bei Bedarf über einen P-Kanal-MOSFET durch den Mikrocontroller geschaltet.
##### Technische Vorteile:
- Sehr hohe Effizienz über den gesamten Eingangsspannungsbereich
- Integrierte Power-MOSFETs (kein externes Switching erforderlich)
- Hohe Schaltfrequenz → kompakte Induktivitäten möglich
- Ultra-low Shutdown-Strom bei Deaktivierung
#### 3.3V LDO
Der 3.3V LDO versorgt die RTC und den `VBAT`-Eingang des Mikrocontrollers, wenn der [DC/DC-Wandler](#3-3v-buck-boost-wandler-dc-dc-wandler) ausgeschaltet ist. Die Wahl fiel auf den **XC6206P332MR-G** von Torex, der einen Eigenverbrauch von lediglich 1µA aufweist. Fällt die Akkuspannung unter 3.3V, arbeitet er im Dropout-Bereich und die Ausgangsspannung folgt der Eingangsspannung abzüglich eines geringen Spannungsabfalls. Dies kann zu Pegel-Inkompatibilitäten bei der I²C-Kommunikation führen, da der Rest der Schaltung mit stabilen 3.3V vom DC/DC-Wandler versorgt wird. Um dies zu verhindern, schaltet ein [Power-Mux](#power-mux) die Versorgung der RTC auf den `VDD`-Zweig um, sobald dieser aktiv ist. Dadurch wird ein einheitlicher Spannungspegel für die Kommunikation sichergestellt.
##### DC/DC-Enable-Logik (Soft-Latch-System)
![DC/DC Enable Logik](img/power_dcdc_enable.svg)
#### Power-Mux
Ein **TPS2116** wird als Power-Multiplexer eingesetzt. An den Eingängen werden der DC/DC-Wandler (priorisiert) und der LDO angeschlossen. Am Ausgang stellt er die `VRTC`-Spannung zur Verfügung.
###### Übersicht
Die Schaltung realisiert eine intelligente "Soft-Latch"-Funktion zur Ansteuerung des Haupt-DC/DC-Wandlers. Sie ermöglicht das Ein- und Ausschalten durch verschiedene Signalquellen sowie einen dedizierten Software-Befehl bei minimalstem Ruhestrom.
## Dimensionierungen
Im Folgenden werden die wesentlichen Dimensionierungen behandelt.
###### Funktionsbeschreibung
Die zentrale Steuerleitung **DC/DC Enable** wird durch Pull-Down-Widerstand R6 (1,8MΩ) im Ruhezustand auf LOW gehalten. Ein HIGH-Pegel aktiviert den DC/DC-Wandler.
### N-FETs
An mehreren Stellen im Hauptstrompfad werden N-FETs benötigt (Charge- und Discharge-FETs beim Batterieschutz, SHIP-FET beim Lader, Input Selector beim Lader). Eine erste Überlegung galt dem **AO3400A**, einem gängigen Logic-Level N-FET.
**Einschaltvorgang:**
Mehrere diodenentkoppelte Signalquellen können das System aktivieren:
- **Active-Low-Quellen:** Button, RTC, Fuel Gauge (über D1-D3 direkt zu Q2-Gate)
- **Active-High-Quellen:** VBUS USB, VDEBUG (über D4/D5 → Q1 → Q2-Gate-Inverter)
Die kritischste Anwendung sind die Batterieschutz-Transistoren, da sie bei entladenem Akku die geringste Gate-Source-Spannung (VGS) erhalten. Die vom Lader angesteuerten FETs werden über eine interne Ladungspumpe mit einer ausreichend hohen Gatespannung versorgt.
**Selbsthaltung (Latching):**
Sobald 3V3 DC/DC stabil ist, wird diese über R5 und D6 auf die Enable-Leitung zurückgeführt. Die Diode D6 verhindert Rückfluss von VRTC zur 3,3V-Schiene.
Für die Worst-Case-Betrachtung wird ein tiefentladener Akku mit einer Spannung von 2.5V angenommen. Laut Datenblatt des AO3400A beträgt der Rds(on) bei einer VGS von 2.5V maximal 48mΩ. Bei einem angenommenen Laststrom von 3A würde dies zu folgenden Konsequenzen führen:
**Ausschaltvorgang:**
Ein HIGH-Signal am GPIO OFF schaltet Q3 durch, der die Enable-Leitung aktiv auf GND zieht und die Selbsthaltung überstimmt.
- **Spannungsabfall:**
$$
\begin{align}
V_{drop} &= R_{ds(on)} \cdot I \\
&= 0.048\Omega \cdot 3A \\
&= 0.144V
\end{align}
$$
###### Schlüsselkomponenten
- **Multi-Input-OR-Gatter:** Dioden D1-D5 + Transistoren Q1/Q2
- **Ausschalt-Schalter:** Q3 für zuverlässige Enable-Beendigung
- **Stützkondensator C3:** Überbrückt kritische Versorgungsunterbrechungen während QON-Taster-Reset. Wenn der Lader durch langes Drücken des QON-Tasters einen System-Reset durchführt, fällt VSYS für ca. 400ms aus und damit auch die DC/DC-Ausgangsspannung. C3 hält das ENABLE-Signal während dieser kritischen Phase stabil, sodass der DC/DC-Wandler sofort wieder einschaltet, sobald VSYS zurückkehrt. Ohne C3 würde der Mikrocontroller keine Speisung erhalten und das System nicht mehr starten.
- **Entprell-Kondensator C2:** RC-Tiefpassfilter für sauberes Taster-Signal
- **Shutdown-Filter C1/R1/R2:** Schutz vor versehentlichem Ausschalten durch Störimpulse
- **Schutzwiderstand R3:** Strombegrenzung bei gleichzeitigen Ein-/Ausschaltbefehlen
- **Verlustleistung:**
$$
\begin{align}
P_{loss} &= R_{ds(on)} \cdot I^2 \\
&= 0.048\Omega \cdot (3A)^2 \\
&= 0.432W
\end{align}
$$
#### SD-Karten-Schalter
**Implementation:** P-Kanal-MOSFET (Load Switch)
**Steuerung:** Mikrocontroller-GPIO mit RC-Gatebeschaltung
Diese Verlustleistung ist nicht unerheblich und muss bei der Auslegung des PCB-Layouts (Wärmeabfuhr) und im Hinblick auf die Gesamteffizienz berücksichtigt werden. Es könnte sinnvoll sein, einen FET mit einem niedrigeren Rds(on) bei 2.5V VGS zu evaluieren.
SD-Karten können auch im Idle-Zustand signifikanten Stromverbrauch aufweisen. Der schaltbare SD-Kartenslot ermöglicht eine vollständige Trennung der Versorgung bei Nichtbenutzung.
**RC-Gatebeschaltung:** Um hohe Stromspitzen auf die Kondensatoren der SD-Karte zu vermeiden, wird das Gate des P-MOSFETs über eine RC-Schaltung angesteuert. Dies sorgt für eine kontrollierte Anstiegszeit der Versorgungsspannung.
#### Low-Dropout-Regulator (3,3 V)
**Baustein:** XC6206P332MR-G (Torex)
**Funktion:** RTC- und VBAT-Versorgung bei deaktiviertem DC/DC-Wandler
##### Schlüsselparameter:
- Eigenverbrauch: 1 μA (typisch)
- Dropout-Spannung: 160 mV @ 100 mA
- Ausgangsspannung: 3,3 V ±2%
**Dropout-Verhalten:**
Bei Akkuspannungen unter 3,3 V arbeitet der LDO im Dropout-Bereich, wobei die Ausgangsspannung der Eingangsspannung minus Dropout-Spannung folgt. Dies kann zu I²C-Pegelkonflikten führen, weshalb der VRTC-Multiplexer bei aktivem DC/DC-Wandler auf VDD umschaltet.
#### VRTC-Multiplexer
**Implementation:** Diskrete Lösung mit Schottky-Dioden und P-Kanal-MOSFET
**Funktion:** Intelligente Umschaltung zwischen DC/DC-Wandler und LDO für VRTC
![VRTC-Multiplexer Schaltung](img/power_backup_mux.svg)
**Funktionsprinzip:**
**LDO-Betrieb (DC/DC-Wandler inaktiv):**
Bei ausgeschaltetem DC/DC-Wandler wird das Gate von `Q1` über `R2` nach GND gezogen, wodurch der N-Kanal-MOSFET ausgeschaltet bleibt. Das Gate von `Q2` wird über `R5` auf die Spannung an der Source gezogen, wodurch auch dieser P-Kanal-MOSFET ausgeschaltet bleibt. Die Versorgung von `VRTC` erfolgt über die Schottky-Diode `D1` direkt vom LDO.
**DC/DC-Betrieb (DC/DC-Wandler aktiv):**
Beim Einschalten des DC/DC-Wandlers wird von diesem das `Power Good`-Signal (Open-Drain-Ausgang) zunächst auf GND gezogen. `Q1` bleibt sperrend, der Mikrocontroller verbleibt im Reset-Zustand. Sobald die Ausgangsspannung des DC/DC-Wandlers stabil ist, schaltet dieser den Open-Drain-Ausgang `Power Good` frei, wodurch das Gate von `Q1` über `R1` auf 3,3 V gezogen wird. `Q1` wird leitend und zieht folglich das Gate von `Q2` über den leitenden `Q1` auf GND, wodurch auch `Q2` leitend wird.
Der Stromfluss vom LDO über `D1` wird unterbunden, da die Ausgangsspannung des LDO gleich gross oder kleiner als die des DC/DC-Wandlers ist. Die Versorgung von `VRTC` erfolgt nun direkt über `Q2` vom DC/DC-Wandler.
**Prioritätenschema:**
1. **Priorität 1:** VDD (DC/DC-Wandler aktiv) - Direktversorgung über `Q2`
2. **Priorität 2:** LDO-Ausgang (DC/DC-Wandler inaktiv) - Versorgung über `D1`
**Systemvorteile:**
- Unterbrechungsfreie Versorgung der RTC während Umschaltungen
- Einheitliche Signalpegel für I²C-Kommunikation bei aktivem DC/DC-Wandler
- Automatische Umschaltung ohne Mikrocontroller-Eingriff
- Minimaler Spannungsabfall durch direkte MOSFET-Schaltung bei hoher Priorität
- Sequenzielle Aktivierung verhindert Spannungsspitzen während des Starts
## Bauteilauslegung
### Ladeelektronik
Basierend auf den Anforderungen des Designs (max. Ladestrom 4,5 A, max. Eingangsstrom 3 A) und der System-Topologie (BQ25672, TPS63020) wurden die folgenden Hauptkomponenten für die Leistungselektronik ausgewählt und bewertet.
#### Induktivitäten
Es werden zwei unterschiedliche, für ihren jeweiligen Zweck optimierte Induktivitäten verwendet.
**Lader (BQ25672):**
- **Betriebspunkt:** f_SW = 750 kHz (Modus für hohe Effizienz)
- **Benötigte Induktivität:** L = 2,2 μH
- **Gewähltes Bauteil:** FTC404030S2R2MGCA (Cjiang)
**Begründung:**
Die Auswahl erfolgte aufgrund der hohen Robustheit des Bauteils. Die Nennströme der Induktivität bieten eine grosse Sicherheitsmarge gegenüber den Anforderungen der Applikation:
- **Thermischer Nennstrom (I_rms):** 8,5 A (deutlich über dem max. Ladestrom von 4,5 A, was eine geringe Eigenerwärmung sicherstellt)
- **Sättigungsstrom (I_sat):** 9,5 A (deutlich über dem zu erwartenden Spitzenstrom von ca. 5,3 A, was eine hohe Stabilität des Wandlers garantiert)
**Systemwandler 3,3 V (TPS63020):**
- **Betriebspunkt:** f_SW ≈ 2,4 MHz
- **Benötigte Induktivität:** L ≈ 1,0 μH
- **Gewähltes Bauteil:** FTC252010S1R0MBCA (Cjiang)
**Begründung:**
Die Auswahl erfolgte im Hinblick auf optimale elektrische Performance und kompakte Baugrösse für den Low-Power-Wandler:
- **Induktivität:** Der Wert von 1,0 μH ist ideal für das schnelle Einschwingverhalten (Transient Response) des hochfrequenten TPS63020-Reglers
- **Baugrösse:** Mit 2,5 × 2,0 mm ist die Spule angemessen klein für diesen Schaltungsteil
- **Strombelastbarkeit:** Die Nennströme (I_rms = 4,1 A, I_sat = 4,8 A) sind für die maximale Last von 300 mA massiv überdimensioniert und stellen kein Risiko dar
#### Eingangs-MOSFETs
Für den bidirektionalen Eingangs-Schalter wird ein Dual-N-Kanal-MOSFET in Back-to-Back-Konfiguration (Common Drain) eingesetzt.
**Gewähltes Bauteil:** AON5820 (Alpha & Omega Semiconductor)
**Betriebsbedingungen (Worst-Case):** Eingangsstrom I_IN(max) = 3 A, Gate-Ansteuerung V_GS ≥ 6 V
**Berechnung der Verlustleistung und Erwärmung:**
Die Berechnung basiert auf dem maximalen "heissen" Widerstand des Bauteils, um eine sichere Auslegung zu gewährleisten.
*Bestimmung des R_DS(on):*
- Maximaler Widerstand bei 25°C aus Datenblatt: R_DS(on)@25°C,4.5V = 9,5 mΩ
- Temperaturkoeffizient für 125°C (aus Fig. 4): k_T ≈ 1,6
- "Heisser" Widerstand pro FET: R_DS(on),hot = R_DS(on)@25°C × k_T = 9,5 mΩ × 1,6 = 15,2 mΩ
*Gesamtwiderstand der Back-to-Back-Schaltung:*
$$R_{total,hot} = 2 \times R_{DS(on),hot} = 2 \times 15,2\text{ mΩ} = 30,4\text{ mΩ}$$
*Spannungsabfall bei 3 A:*
$$V_{Abfall} = I_{IN} \times R_{total,hot} = 3\text{ A} \times 0,0304\text{ Ω} ≈ 91\text{ mV}$$
*Verlustleistung bei 3 A:*
$$P_{Verlust} = I_{IN}^2 \times R_{total,hot} = (3\text{ A})^2 \times 0,0304\text{ Ω} ≈ 274\text{ mW}$$
*Resultierende Temperaturerhöhung (ΔT):*
- Thermischer Widerstand aus Datenblatt: R_θJA = 75°C/W (Max, Steady-State)
- ΔT = P_Verlust × R_θJA = 0,274 W × 75°C/W ≈ 20,5°C
**Bewertung:**
Eine maximale Verlustleistung von ca. 274 mW führt zu einer Erwärmung von ca. 21°C über der Umgebungstemperatur. Dies ist thermisch unkritisch und liegt weit innerhalb der Spezifikationen des Bauteils. Ein Platinenlayout, das die Kühlfläche des zentralen Drain-Pads berücksichtigt ("Best Practice"), ist für eine zuverlässige Wärmeabfuhr ausreichend.
### N-Kanal-MOSFETs
**Baustein:** AO3400A
**Anwendung:** Digitale Schalter und Inverter
Da N-Kanal-MOSFETs in diesem Design ausschliesslich für Logikfunktionen eingesetzt werden und nicht in Hochstromkreisen, genügt ein kostengünstiger Standard-Typ. Der AO3400A bietet ausreichende Parameter für alle Logic-Level-Anwendungen.
**Alternative:** Jeder andere Logic-Level-N-Kanal-MOSFET kann verwendet werden.
### P-Kanal-MOSFETs
#### Allgemeine Anwendungen
**Baustein:** AO3401A
**Anwendung:** Digitale Schalter und Load-Switches
Für allgemeine P-Kanal-MOSFET-Anwendungen (analoge Ergänzung zum AO3400A) wird der AO3401A als kostengünstiger Standard-Typ eingesetzt. Er bietet ausreichende Parameter für alle Logic-Level-Anwendungen bei geringen bis mittleren Strömen.
**Alternative:** Jeder andere Logic-Level-P-Kanal-MOSFET kann verwendet werden.
#### Hochstrom-Anwendungen
**Baustein:** AON5820 für BQ25672-Schalter, AO3401A für SD/VRTC-Schalter
**Anwendungen:** Bidirektionale Schalter (BQ25672), VRTC-Schalter, SD-Kartenversorgung
##### MOSFET-Verteilung nach Anwendung:
- **AON5820 (N-Channel):** Bidirektionale Schalter im BQ25672 (Ladungspumpe verfügbar)
- **AO3401A (P-Channel):** SD-Karten- und VRTC-Schalter (nur 3,3V-Logik verfügbar)
Diese differenzierte Auswahl optimiert sowohl die elektrischen Eigenschaften als auch die Ansteuerungskompatibilität.
##### Anwendung im VRTC-Schalter:
Der VRTC-Pfad erfordert nur unidirektionalen Schutz (DC/DC → VRTC), daher genügt ein einzelner P-Channel MOSFET:
- **Konfiguration:** Source an 3,3V (DC/DC), Drain an VRTC
- **Logik:** Gate LOW → VRTC aktiv, Gate HIGH → VRTC getrennt
- **Vorteil:** Bei Ausfall bleibt VRTC isoliert vom DC/DC-Converter
##### Thermische Auslegung (VRTC-Schalter bei 2 mA):
Bei den geringen Strömen im VRTC-Pfad ist die Verlustleistung vernachlässigbar:
$$P_{loss} = I^2 \times R_{DS(on)} = (2\text{ mA})^2 \times 50\text{ mΩ} ≈ 0,2\text{ μW}$$
##### Anwendung bei SD-Kartenversorgung:
Für die SD-Kartenversorgung wird der **AO3401A** (P-Channel) verwendet, da nur 3,3V Gate-Spannung verfügbar ist.
##### MOSFET-Auswahl für 3,3V-Logik:
- **Problem mit N-Channel (AON5820):** VGS = 3,3V reicht nicht für vollständiges Durchschalten
- **Lösung P-Channel (AO3401A):** VGS = 0V → EIN, VGS = 3,3V → AUS
- **RDS(on) bei VGS = -3,3V:** 50 mΩ typ. (deutlich besser als N-Channel bei unzureichender VGS)
##### Thermische Auslegung (SD-Karte bei Schreibvorgängen):
- Maximaler Schreibstrom: 100 mA (kurzzeitig)
- Verlustleistung: $P_{loss} = I^2 \times R_{DS(on)} = (100\text{ mA})^2 \times 50\text{ mΩ} = 500\text{ μW}$
- Temperaturerhöhung: $\Delta T = 500\text{ μW} \times 250\text{ K/W} = 0,125\text{ K}$
- **Spannungsabfall:** $V_{drop} = I \times R_{DS(on)} = 100\text{ mA} \times 50\text{ mΩ} = 5\text{ mV}$
##### Soft-Start-Auslegung mittels RC-Gatebeschaltung:
Die SD-Karte ist mit 10 μF + 100 nF gepuffert. Um Einschaltströme zu begrenzen, wird eine RC-Schaltung am Gate implementiert:
###### Auslegungskriterien:
- Kondensatorladung: $Q = C \times V = 10,1\text{ μF} \times 3,3\text{ V} = 33,3\text{ μC}$
- Zulässiger Ladestrom: $I_{max} = 100\text{ mA}$ (thermisch unkritisch)
- Mindest-Anstiegszeit: $t_{rise,min} = \frac{Q}{I_{max}} = \frac{33,3\text{ μC}}{100\text{ mA}} = 333\text{ μs}$
###### RC-Dimensionierung:
- Gate-Kapazität des AO3401A: $C_{gate} ≈ 350\text{ pF}$
- Mindest-Gate-Zeitkonstante: $\tau_{gate,min} = \frac{t_{rise,min}}{3} ≈ 100\text{ μs}$
- **Auslegungsformel:** $R_{min} = \frac{\tau_{gate,min}}{C_{gewählt}}$
###### Praktische Beispiele:
- Mit C = 100 nF: $R_{min} = \frac{100\text{ μs}}{100\text{ nF}} = 1\text{ kΩ}$
- Mit C = 10 nF: $R_{min} = \frac{100\text{ μs}}{10\text{ nF}} = 10\text{ kΩ}$
- Mit C = 1 nF: $R_{min} = \frac{100\text{ μs}}{1\text{ nF}} = 100\text{ kΩ}$
###### Empfohlene Beschaltung:
- **Mindestempfehlung:** R = 1 kΩ, C = 100 nF (schnell und verfügbar)
- **Konservativ:** R = 10 kΩ, C = 10 nF (langsamere Flanken)
###### Bewertung 1 kΩ/100 nF:
- Anstiegszeit: ≈ 300 μs (3 × τ = 3 × 100 μs)
- Ladestrom bleibt unter 100 mA
- Spannungsabfall nur 5 mV → vernachlässigbar
- Schnelle SD-Karten-Verfügbarkeit für zeitkritische Anwendungen
Alle Anwendungsfälle liegen deutlich innerhalb der Spezifikationsgrenzen.
## Referenzen und Datenblätter
Alle Datenblätter der verwendeten Bauteile sind in diesem Repository verfügbar:
### Energiemanagement-ICs
- **[XB4908A](datasheets/LiIon%20Protection/XB4908.pdf)** - Li-Ion-Schutzschaltung mit integrierten MOSFETs (XySemi)
- **[bq27441-G1](datasheets/Fuel%20Gauge/bq27441-g1.pdf)** - Fuel Gauge IC (Texas Instruments)
- **[BQ25672](datasheets/Charger/bq25672.pdf)** - Hochintegrierter Buck-Boost-Lader mit Power-Multiplexer (Texas Instruments)
### USB-Erkennung
- **[bq24230](datasheets/USB%20Detection/bq24230.pdf)** - USB-Ladegeräteerkennung und -charakterisierung (Texas Instruments)
### Spannungsregler
- **[TPS63020](datasheets/DC-DC%20Converter/tps63020.pdf)** - Hocheffizienter 3,3-V-Buck-Boost-Wandler (Texas Instruments)
- **[XC6206P332MR-G](datasheets/LDO/xc6206p332mr-g.pdf)** - Ultra-Low-Power 3,3-V-LDO-Regler (Torex Semiconductor)
- **[TPS2116](datasheets/Power%20Mux/tps2116.pdf)** - Intelligenter Power-Multiplexer mit automatischer Umschaltung (Texas Instruments)
### Diskrete Halbleiter
- **[AO3400A](datasheets/MOSFET/ao3400a.pdf)** - N-Kanal-Logic-Level-MOSFET für digitale Schaltanwendungen (Alpha & Omega Semiconductor)
- **[AO3401A](datasheets/MOSFET/ao3401a.pdf)** - P-Kanal-Logic-Level-MOSFET für digitale Schaltanwendungen (Alpha & Omega Semiconductor)
- **[AON5820](datasheets/MOSFET/aon5820.pdf)** - Dual-N-Kanal-Power-MOSFET für bidirektionale Schalter bis 3 A (Alpha & Omega Semiconductor)
---
*Dokument-Version: 2.0*
*Letzte Aktualisierung: Oktober 2025*
*Status: Aktualisiert für finale Bauteilauswahl*

View File

@@ -2,5 +2,7 @@
Dieses Verzeichnis enthält die Dokumentation zum Projekt.
Im Verzeichnis [datasheets](datasheets) sind die Datenblätter der verwendeten Komponenten enthalten, sofern diese relevant sind. Ich habe mir gespart, zu jedem Widerstand das Datenblatt herunterzuladen.
## Konzept
## Design
[Energieversorgung](PowerSupply.de.md)
[Energieversorgung](Hardware_PowerSupply.de.md)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

2811
doc/img/power_backup_mux.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 79 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 207 KiB

5328
doc/img/power_power_mux.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 143 KiB