Add hardware wiring documentation and KiCad schematic
- wiring.md: Pin mapping table, module pinout, logic levels - wiring-diagram.svg: Visual connection diagram (S2 Mini ↔ HMC472A) - hmc472-controller.kicad_pro/sch: KiCad project for EDA work GPIO1-6 → V1-V6 (active-low, 16/8/4/2/1/0.5 dB) 5V VBUS → +5V, GND → GND
This commit is contained in:
parent
db54d05bed
commit
b5794c5f8d
120
hardware/hmc472-controller.kicad_pro
Normal file
120
hardware/hmc472-controller.kicad_pro
Normal file
@ -0,0 +1,120 @@
|
||||
{
|
||||
"board": {
|
||||
"3dviewports": [],
|
||||
"design_settings": {
|
||||
"defaults": {},
|
||||
"diff_pair_dimensions": [],
|
||||
"drc_exclusions": [],
|
||||
"rules": {},
|
||||
"track_widths": [],
|
||||
"via_dimensions": []
|
||||
},
|
||||
"ipc2581": {
|
||||
"dist": "",
|
||||
"distpn": "",
|
||||
"internal_id": "",
|
||||
"mfg": "",
|
||||
"mpn": ""
|
||||
},
|
||||
"layer_presets": [],
|
||||
"viewports": []
|
||||
},
|
||||
"boards": [],
|
||||
"cvpcb": {
|
||||
"equivalence_files": []
|
||||
},
|
||||
"libraries": {
|
||||
"pinned_footprint_libs": [],
|
||||
"pinned_symbol_libs": []
|
||||
},
|
||||
"meta": {
|
||||
"filename": "hmc472-controller.kicad_pro",
|
||||
"version": 1
|
||||
},
|
||||
"net_settings": {
|
||||
"classes": [
|
||||
{
|
||||
"name": "Default",
|
||||
"wire_width": 6
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"version": 3
|
||||
},
|
||||
"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_fmt_presets": [],
|
||||
"bom_fmt_settings": {
|
||||
"field_delimiter": ",",
|
||||
"keep_line_breaks": false,
|
||||
"keep_tabs": false,
|
||||
"name": "",
|
||||
"ref_delimiter": ",",
|
||||
"ref_range_delimiter": "",
|
||||
"string_delimiter": "\""
|
||||
},
|
||||
"bom_presets": [],
|
||||
"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": [],
|
||||
"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": "",
|
||||
"ng_spice": {
|
||||
"fix_include_paths": true,
|
||||
"meta": {
|
||||
"version": 0
|
||||
},
|
||||
"model_mode": 0,
|
||||
"ngspice_path": ""
|
||||
}
|
||||
},
|
||||
"sheets": [
|
||||
[
|
||||
"e63e39d7-6ac0-4ffd-8aa3-1841a4541b55",
|
||||
"Root"
|
||||
]
|
||||
],
|
||||
"text_variables": {}
|
||||
}
|
||||
434
hardware/hmc472-controller.kicad_sch
Normal file
434
hardware/hmc472-controller.kicad_sch
Normal file
@ -0,0 +1,434 @@
|
||||
(kicad_sch
|
||||
(version 20231120)
|
||||
(generator "eeschema")
|
||||
(generator_version "8.0")
|
||||
(uuid "e63e39d7-6ac0-4ffd-8aa3-1841a4541b55")
|
||||
(paper "A4")
|
||||
(title_block
|
||||
(title "HMC472A Attenuator Controller")
|
||||
(date "2026-02-02")
|
||||
(rev "1.0")
|
||||
(comment 1 "ESP32-S2 Mini to HMC472A Module Wiring")
|
||||
(comment 2 "6-bit Digital RF Attenuator 0-31.5dB")
|
||||
)
|
||||
|
||||
(lib_symbols
|
||||
(symbol "Connector_Generic:Conn_01x08"
|
||||
(pin_names (offset 1.016) hide)
|
||||
(exclude_from_sim no)
|
||||
(in_bom yes)
|
||||
(on_board yes)
|
||||
(property "Reference" "J"
|
||||
(at 0 10.16 0)
|
||||
(effects (font (size 1.27 1.27)))
|
||||
)
|
||||
(property "Value" "Conn_01x08"
|
||||
(at 0 -12.7 0)
|
||||
(effects (font (size 1.27 1.27)))
|
||||
)
|
||||
(property "Footprint" ""
|
||||
(at 0 0 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(property "Datasheet" "~"
|
||||
(at 0 0 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(symbol "Conn_01x08_1_1"
|
||||
(rectangle (start -1.27 7.62) (end 1.27 -10.16)
|
||||
(stroke (width 0.254) (type default))
|
||||
(fill (type background))
|
||||
)
|
||||
(pin passive line (at -5.08 7.62 0) (length 3.81) (name "Pin_1" (effects (font (size 1.27 1.27)))) (number "1" (effects (font (size 1.27 1.27)))))
|
||||
(pin passive line (at -5.08 5.08 0) (length 3.81) (name "Pin_2" (effects (font (size 1.27 1.27)))) (number "2" (effects (font (size 1.27 1.27)))))
|
||||
(pin passive line (at -5.08 2.54 0) (length 3.81) (name "Pin_3" (effects (font (size 1.27 1.27)))) (number "3" (effects (font (size 1.27 1.27)))))
|
||||
(pin passive line (at -5.08 0 0) (length 3.81) (name "Pin_4" (effects (font (size 1.27 1.27)))) (number "4" (effects (font (size 1.27 1.27)))))
|
||||
(pin passive line (at -5.08 -2.54 0) (length 3.81) (name "Pin_5" (effects (font (size 1.27 1.27)))) (number "5" (effects (font (size 1.27 1.27)))))
|
||||
(pin passive line (at -5.08 -5.08 0) (length 3.81) (name "Pin_6" (effects (font (size 1.27 1.27)))) (number "6" (effects (font (size 1.27 1.27)))))
|
||||
(pin passive line (at -5.08 -7.62 0) (length 3.81) (name "Pin_7" (effects (font (size 1.27 1.27)))) (number "7" (effects (font (size 1.27 1.27)))))
|
||||
(pin passive line (at -5.08 -10.16 0) (length 3.81) (name "Pin_8" (effects (font (size 1.27 1.27)))) (number "8" (effects (font (size 1.27 1.27)))))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(text "ESP32-S2 Mini\n(WEMOS/LOLIN)"
|
||||
(exclude_from_sim no)
|
||||
(at 63.5 50.8 0)
|
||||
(effects (font (size 2.54 2.54) bold) (justify left))
|
||||
(uuid "text-esp32-title")
|
||||
)
|
||||
|
||||
(text "HMC472A Module\n6-bit RF Attenuator"
|
||||
(exclude_from_sim no)
|
||||
(at 152.4 50.8 0)
|
||||
(effects (font (size 2.54 2.54) bold) (justify left))
|
||||
(uuid "text-hmc472-title")
|
||||
)
|
||||
|
||||
(text "ACTIVE LOW LOGIC:\nLOW = Attenuate\nHIGH = Pass (0 dB)"
|
||||
(exclude_from_sim no)
|
||||
(at 109.22 130.81 0)
|
||||
(effects (font (size 1.524 1.524)) (justify left))
|
||||
(uuid "text-logic-note")
|
||||
)
|
||||
|
||||
(text "Control Pins (active-low):"
|
||||
(exclude_from_sim no)
|
||||
(at 152.4 60.96 0)
|
||||
(effects (font (size 1.524 1.524)) (justify left))
|
||||
(uuid "text-control-header")
|
||||
)
|
||||
|
||||
(symbol
|
||||
(lib_id "Connector_Generic:Conn_01x08")
|
||||
(at 76.2 78.74 0)
|
||||
(mirror y)
|
||||
(unit 1)
|
||||
(exclude_from_sim no)
|
||||
(in_bom yes)
|
||||
(on_board yes)
|
||||
(dnp no)
|
||||
(uuid "esp32-s2-mini-header")
|
||||
(property "Reference" "J1"
|
||||
(at 76.2 60.96 0)
|
||||
(effects (font (size 1.27 1.27)))
|
||||
)
|
||||
(property "Value" "ESP32-S2 Mini"
|
||||
(at 76.2 93.98 0)
|
||||
(effects (font (size 1.27 1.27)))
|
||||
)
|
||||
(property "Footprint" ""
|
||||
(at 76.2 78.74 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(property "Datasheet" "~"
|
||||
(at 76.2 78.74 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(pin "1"
|
||||
(uuid "esp32-pin1")
|
||||
)
|
||||
(pin "2"
|
||||
(uuid "esp32-pin2")
|
||||
)
|
||||
(pin "3"
|
||||
(uuid "esp32-pin3")
|
||||
)
|
||||
(pin "4"
|
||||
(uuid "esp32-pin4")
|
||||
)
|
||||
(pin "5"
|
||||
(uuid "esp32-pin5")
|
||||
)
|
||||
(pin "6"
|
||||
(uuid "esp32-pin6")
|
||||
)
|
||||
(pin "7"
|
||||
(uuid "esp32-pin7")
|
||||
)
|
||||
(pin "8"
|
||||
(uuid "esp32-pin8")
|
||||
)
|
||||
(instances
|
||||
(project "hmc472-controller"
|
||||
(path "/e63e39d7-6ac0-4ffd-8aa3-1841a4541b55"
|
||||
(reference "J1")
|
||||
(unit 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(symbol
|
||||
(lib_id "Connector_Generic:Conn_01x08")
|
||||
(at 160.02 78.74 0)
|
||||
(unit 1)
|
||||
(exclude_from_sim no)
|
||||
(in_bom yes)
|
||||
(on_board yes)
|
||||
(dnp no)
|
||||
(uuid "hmc472-module-header")
|
||||
(property "Reference" "J2"
|
||||
(at 160.02 60.96 0)
|
||||
(effects (font (size 1.27 1.27)))
|
||||
)
|
||||
(property "Value" "HMC472A Module"
|
||||
(at 160.02 93.98 0)
|
||||
(effects (font (size 1.27 1.27)))
|
||||
)
|
||||
(property "Footprint" ""
|
||||
(at 160.02 78.74 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(property "Datasheet" "~"
|
||||
(at 160.02 78.74 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(pin "1"
|
||||
(uuid "hmc472-pin1")
|
||||
)
|
||||
(pin "2"
|
||||
(uuid "hmc472-pin2")
|
||||
)
|
||||
(pin "3"
|
||||
(uuid "hmc472-pin3")
|
||||
)
|
||||
(pin "4"
|
||||
(uuid "hmc472-pin4")
|
||||
)
|
||||
(pin "5"
|
||||
(uuid "hmc472-pin5")
|
||||
)
|
||||
(pin "6"
|
||||
(uuid "hmc472-pin6")
|
||||
)
|
||||
(pin "7"
|
||||
(uuid "hmc472-pin7")
|
||||
)
|
||||
(pin "8"
|
||||
(uuid "hmc472-pin8")
|
||||
)
|
||||
(instances
|
||||
(project "hmc472-controller"
|
||||
(path "/e63e39d7-6ac0-4ffd-8aa3-1841a4541b55"
|
||||
(reference "J2")
|
||||
(unit 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(text "5V (VBUS)"
|
||||
(exclude_from_sim no)
|
||||
(at 63.5 71.12 0)
|
||||
(effects (font (size 1.27 1.27)) (justify right))
|
||||
(uuid "label-esp-5v")
|
||||
)
|
||||
|
||||
(text "GPIO1"
|
||||
(exclude_from_sim no)
|
||||
(at 63.5 73.66 0)
|
||||
(effects (font (size 1.27 1.27)) (justify right))
|
||||
(uuid "label-esp-gpio1")
|
||||
)
|
||||
|
||||
(text "GPIO2"
|
||||
(exclude_from_sim no)
|
||||
(at 63.5 76.2 0)
|
||||
(effects (font (size 1.27 1.27)) (justify right))
|
||||
(uuid "label-esp-gpio2")
|
||||
)
|
||||
|
||||
(text "GPIO3"
|
||||
(exclude_from_sim no)
|
||||
(at 63.5 78.74 0)
|
||||
(effects (font (size 1.27 1.27)) (justify right))
|
||||
(uuid "label-esp-gpio3")
|
||||
)
|
||||
|
||||
(text "GPIO4"
|
||||
(exclude_from_sim no)
|
||||
(at 63.5 81.28 0)
|
||||
(effects (font (size 1.27 1.27)) (justify right))
|
||||
(uuid "label-esp-gpio4")
|
||||
)
|
||||
|
||||
(text "GPIO5"
|
||||
(exclude_from_sim no)
|
||||
(at 63.5 83.82 0)
|
||||
(effects (font (size 1.27 1.27)) (justify right))
|
||||
(uuid "label-esp-gpio5")
|
||||
)
|
||||
|
||||
(text "GPIO6"
|
||||
(exclude_from_sim no)
|
||||
(at 63.5 86.36 0)
|
||||
(effects (font (size 1.27 1.27)) (justify right))
|
||||
(uuid "label-esp-gpio6")
|
||||
)
|
||||
|
||||
(text "GND"
|
||||
(exclude_from_sim no)
|
||||
(at 63.5 88.9 0)
|
||||
(effects (font (size 1.27 1.27)) (justify right))
|
||||
(uuid "label-esp-gnd")
|
||||
)
|
||||
|
||||
(text "+5V"
|
||||
(exclude_from_sim no)
|
||||
(at 172.72 71.12 0)
|
||||
(effects (font (size 1.27 1.27)) (justify left))
|
||||
(uuid "label-hmc-5v")
|
||||
)
|
||||
|
||||
(text "V6 (0.5dB)"
|
||||
(exclude_from_sim no)
|
||||
(at 172.72 73.66 0)
|
||||
(effects (font (size 1.27 1.27)) (justify left))
|
||||
(uuid "label-hmc-v6")
|
||||
)
|
||||
|
||||
(text "V5 (1dB)"
|
||||
(exclude_from_sim no)
|
||||
(at 172.72 76.2 0)
|
||||
(effects (font (size 1.27 1.27)) (justify left))
|
||||
(uuid "label-hmc-v5")
|
||||
)
|
||||
|
||||
(text "V4 (2dB)"
|
||||
(exclude_from_sim no)
|
||||
(at 172.72 78.74 0)
|
||||
(effects (font (size 1.27 1.27)) (justify left))
|
||||
(uuid "label-hmc-v4")
|
||||
)
|
||||
|
||||
(text "V3 (4dB)"
|
||||
(exclude_from_sim no)
|
||||
(at 172.72 81.28 0)
|
||||
(effects (font (size 1.27 1.27)) (justify left))
|
||||
(uuid "label-hmc-v3")
|
||||
)
|
||||
|
||||
(text "V2 (8dB)"
|
||||
(exclude_from_sim no)
|
||||
(at 172.72 83.82 0)
|
||||
(effects (font (size 1.27 1.27)) (justify left))
|
||||
(uuid "label-hmc-v2")
|
||||
)
|
||||
|
||||
(text "V1 (16dB)"
|
||||
(exclude_from_sim no)
|
||||
(at 172.72 86.36 0)
|
||||
(effects (font (size 1.27 1.27)) (justify left))
|
||||
(uuid "label-hmc-v1")
|
||||
)
|
||||
|
||||
(text "GND"
|
||||
(exclude_from_sim no)
|
||||
(at 172.72 88.9 0)
|
||||
(effects (font (size 1.27 1.27)) (justify left))
|
||||
(uuid "label-hmc-gnd")
|
||||
)
|
||||
|
||||
(wire
|
||||
(pts (xy 81.28 71.12) (xy 154.94 71.12))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wire-5v")
|
||||
)
|
||||
|
||||
(wire
|
||||
(pts (xy 81.28 73.66) (xy 127 73.66))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wire-gpio1-a")
|
||||
)
|
||||
(wire
|
||||
(pts (xy 127 73.66) (xy 127 86.36))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wire-gpio1-b")
|
||||
)
|
||||
(wire
|
||||
(pts (xy 127 86.36) (xy 154.94 86.36))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wire-gpio1-c")
|
||||
)
|
||||
|
||||
(wire
|
||||
(pts (xy 81.28 76.2) (xy 124.46 76.2))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wire-gpio2-a")
|
||||
)
|
||||
(wire
|
||||
(pts (xy 124.46 76.2) (xy 124.46 83.82))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wire-gpio2-b")
|
||||
)
|
||||
(wire
|
||||
(pts (xy 124.46 83.82) (xy 154.94 83.82))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wire-gpio2-c")
|
||||
)
|
||||
|
||||
(wire
|
||||
(pts (xy 81.28 78.74) (xy 121.92 78.74))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wire-gpio3-a")
|
||||
)
|
||||
(wire
|
||||
(pts (xy 121.92 78.74) (xy 121.92 81.28))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wire-gpio3-b")
|
||||
)
|
||||
(wire
|
||||
(pts (xy 121.92 81.28) (xy 154.94 81.28))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wire-gpio3-c")
|
||||
)
|
||||
|
||||
(wire
|
||||
(pts (xy 81.28 81.28) (xy 119.38 81.28))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wire-gpio4-a")
|
||||
)
|
||||
(wire
|
||||
(pts (xy 119.38 81.28) (xy 119.38 78.74))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wire-gpio4-b")
|
||||
)
|
||||
(wire
|
||||
(pts (xy 119.38 78.74) (xy 154.94 78.74))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wire-gpio4-c")
|
||||
)
|
||||
|
||||
(wire
|
||||
(pts (xy 81.28 83.82) (xy 116.84 83.82))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wire-gpio5-a")
|
||||
)
|
||||
(wire
|
||||
(pts (xy 116.84 83.82) (xy 116.84 76.2))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wire-gpio5-b")
|
||||
)
|
||||
(wire
|
||||
(pts (xy 116.84 76.2) (xy 154.94 76.2))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wire-gpio5-c")
|
||||
)
|
||||
|
||||
(wire
|
||||
(pts (xy 81.28 86.36) (xy 114.3 86.36))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wire-gpio6-a")
|
||||
)
|
||||
(wire
|
||||
(pts (xy 114.3 86.36) (xy 114.3 73.66))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wire-gpio6-b")
|
||||
)
|
||||
(wire
|
||||
(pts (xy 114.3 73.66) (xy 154.94 73.66))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wire-gpio6-c")
|
||||
)
|
||||
|
||||
(wire
|
||||
(pts (xy 81.28 88.9) (xy 154.94 88.9))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wire-gnd")
|
||||
)
|
||||
|
||||
(text "Wiring Table:\nGPIO1 → V1 (16dB)\nGPIO2 → V2 (8dB)\nGPIO3 → V3 (4dB)\nGPIO4 → V4 (2dB)\nGPIO5 → V5 (1dB)\nGPIO6 → V6 (0.5dB)\n5V → +5V\nGND → GND"
|
||||
(exclude_from_sim no)
|
||||
(at 63.5 111.76 0)
|
||||
(effects (font (size 1.524 1.524)) (justify left))
|
||||
(uuid "text-wiring-table")
|
||||
)
|
||||
|
||||
(text "Notes:\n• HMC472A accepts 0-5V TTL/CMOS logic\n• ESP32-S2 GPIO is 3.3V — compatible\n• Total attenuation = sum of active bits\n• Max attenuation: 31.5 dB (all LOW)\n• Min attenuation: 0 dB (all HIGH)"
|
||||
(exclude_from_sim no)
|
||||
(at 127 111.76 0)
|
||||
(effects (font (size 1.524 1.524)) (justify left))
|
||||
(uuid "text-notes")
|
||||
)
|
||||
)
|
||||
138
hardware/wiring-diagram.svg
Normal file
138
hardware/wiring-diagram.svg
Normal file
@ -0,0 +1,138 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 500" width="800" height="500">
|
||||
<defs>
|
||||
<style>
|
||||
.board { fill: #1a472a; stroke: #0d2818; stroke-width: 2; }
|
||||
.board-label { font-family: monospace; font-size: 14px; font-weight: bold; fill: white; }
|
||||
.pin-label { font-family: monospace; font-size: 11px; fill: #333; }
|
||||
.pin-label-white { font-family: monospace; font-size: 10px; fill: #e0e0e0; }
|
||||
.wire { stroke-width: 2; fill: none; }
|
||||
.wire-data { stroke: #2196F3; }
|
||||
.wire-power { stroke: #f44336; }
|
||||
.wire-gnd { stroke: #333; }
|
||||
.title { font-family: sans-serif; font-size: 18px; font-weight: bold; fill: #333; }
|
||||
.subtitle { font-family: sans-serif; font-size: 12px; fill: #666; }
|
||||
.note { font-family: sans-serif; font-size: 11px; fill: #555; }
|
||||
.note-box { fill: #fff8e1; stroke: #ffb300; stroke-width: 1; }
|
||||
.header { fill: #333; }
|
||||
.pin { fill: #c9a227; stroke: #8b7355; stroke-width: 1; }
|
||||
.sma { fill: #c9a227; stroke: #8b7355; stroke-width: 1; }
|
||||
.usb { fill: #333; stroke: #222; stroke-width: 1; }
|
||||
.chip { fill: #1a1a1a; stroke: #333; stroke-width: 1; }
|
||||
</style>
|
||||
</defs>
|
||||
|
||||
<!-- Title -->
|
||||
<text x="400" y="30" text-anchor="middle" class="title">HMC472A Attenuator Controller Wiring</text>
|
||||
<text x="400" y="50" text-anchor="middle" class="subtitle">ESP32-S2 Mini to HMC472A Module Connection Diagram</text>
|
||||
|
||||
<!-- ESP32-S2 Mini Board -->
|
||||
<rect x="80" y="100" width="180" height="280" rx="5" class="board"/>
|
||||
<text x="170" y="125" text-anchor="middle" class="board-label">ESP32-S2 Mini</text>
|
||||
<text x="170" y="140" text-anchor="middle" class="pin-label-white">(WEMOS/LOLIN)</text>
|
||||
|
||||
<!-- USB-C on S2 Mini -->
|
||||
<rect x="145" y="90" width="50" height="15" rx="3" class="usb"/>
|
||||
<text x="170" y="101" text-anchor="middle" style="font-size:8px;fill:#888;">USB-C</text>
|
||||
|
||||
<!-- ESP32 chip representation -->
|
||||
<rect x="130" y="155" width="80" height="60" rx="2" class="chip"/>
|
||||
<text x="170" y="190" text-anchor="middle" style="font-size:9px;fill:#666;">ESP32-S2</text>
|
||||
|
||||
<!-- S2 Mini Pin Header (left side, top to bottom) -->
|
||||
<g transform="translate(85, 230)">
|
||||
<!-- Pin rectangles -->
|
||||
<rect x="0" y="0" width="25" height="10" class="pin"/><text x="30" y="9" class="pin-label-white">3V3</text>
|
||||
<rect x="0" y="15" width="25" height="10" class="pin"/><text x="30" y="24" class="pin-label-white">GPIO1</text>
|
||||
<rect x="0" y="30" width="25" height="10" class="pin"/><text x="30" y="39" class="pin-label-white">GPIO2</text>
|
||||
<rect x="0" y="45" width="25" height="10" class="pin"/><text x="30" y="54" class="pin-label-white">GPIO3</text>
|
||||
<rect x="0" y="60" width="25" height="10" class="pin"/><text x="30" y="69" class="pin-label-white">GPIO4</text>
|
||||
<rect x="0" y="75" width="25" height="10" class="pin"/><text x="30" y="84" class="pin-label-white">GPIO5</text>
|
||||
<rect x="0" y="90" width="25" height="10" class="pin"/><text x="30" y="99" class="pin-label-white">GPIO6</text>
|
||||
<rect x="0" y="105" width="25" height="10" class="pin"/><text x="30" y="114" class="pin-label-white">GND</text>
|
||||
</g>
|
||||
|
||||
<!-- S2 Mini Pin Header (right side) -->
|
||||
<g transform="translate(210, 230)">
|
||||
<rect x="0" y="0" width="25" height="10" class="pin"/><text x="-5" y="9" text-anchor="end" class="pin-label-white">5V</text>
|
||||
<rect x="0" y="105" width="25" height="10" class="pin"/><text x="-5" y="114" text-anchor="end" class="pin-label-white">GND</text>
|
||||
</g>
|
||||
|
||||
<!-- HMC472A Module Board -->
|
||||
<rect x="520" y="100" width="200" height="280" rx="5" class="board"/>
|
||||
<text x="620" y="125" text-anchor="middle" class="board-label">HMC472A Module</text>
|
||||
<text x="620" y="140" text-anchor="middle" class="pin-label-white">6-bit RF Attenuator</text>
|
||||
|
||||
<!-- HMC472A chip representation -->
|
||||
<rect x="555" y="155" width="60" height="40" rx="2" class="chip"/>
|
||||
<text x="585" y="180" text-anchor="middle" style="font-size:8px;fill:#666;">HMC472A</text>
|
||||
|
||||
<!-- SMA Connectors -->
|
||||
<ellipse cx="540" y="230" rx="15" ry="20" class="sma"/>
|
||||
<text x="540" y="260" text-anchor="middle" class="pin-label-white">RF IN</text>
|
||||
<ellipse cx="700" cy="230" rx="15" ry="20" class="sma"/>
|
||||
<text x="700" y="260" text-anchor="middle" class="pin-label-white">RF OUT</text>
|
||||
|
||||
<!-- HMC472A Control Header (8-pin) -->
|
||||
<g transform="translate(595, 280)">
|
||||
<rect x="0" y="0" width="25" height="10" class="pin"/><text x="30" y="9" class="pin-label-white">+5V</text>
|
||||
<rect x="0" y="15" width="25" height="10" class="pin"/><text x="30" y="24" class="pin-label-white">V6 (0.5dB)</text>
|
||||
<rect x="0" y="30" width="25" height="10" class="pin"/><text x="30" y="39" class="pin-label-white">V5 (1dB)</text>
|
||||
<rect x="0" y="45" width="25" height="10" class="pin"/><text x="30" y="54" class="pin-label-white">V4 (2dB)</text>
|
||||
<rect x="0" y="60" width="25" height="10" class="pin"/><text x="30" y="69" class="pin-label-white">V3 (4dB)</text>
|
||||
<rect x="0" y="75" width="25" height="10" class="pin"/><text x="30" y="84" class="pin-label-white">V2 (8dB)</text>
|
||||
<rect x="0" y="90" width="25" height="10" class="pin"/><text x="30" y="99" class="pin-label-white">V1 (16dB)</text>
|
||||
<rect x="0" y="105" width="25" height="10" class="pin"/><text x="30" y="114" class="pin-label-white">GND</text>
|
||||
</g>
|
||||
|
||||
<!-- Wiring: Power (5V) - Red -->
|
||||
<path d="M 235 235 H 280 V 120 H 560 V 280 H 595" class="wire wire-power"/>
|
||||
<circle cx="235" cy="235" r="4" fill="#f44336"/>
|
||||
<circle cx="595" cy="285" r="4" fill="#f44336"/>
|
||||
|
||||
<!-- Wiring: GND - Black -->
|
||||
<path d="M 110 340 H 70 V 400 H 580 V 390 H 595" class="wire wire-gnd"/>
|
||||
<circle cx="110" cy="340" r="4" fill="#333"/>
|
||||
<circle cx="595" cy="390" r="4" fill="#333"/>
|
||||
|
||||
<!-- Wiring: GPIO1 → V1 (16dB) - Blue -->
|
||||
<path d="M 110 250 H 50 V 415 H 590 V 375 H 595" class="wire wire-data"/>
|
||||
<circle cx="110" cy="250" r="3" fill="#2196F3"/>
|
||||
<circle cx="595" cy="375" r="3" fill="#2196F3"/>
|
||||
|
||||
<!-- Wiring: GPIO2 → V2 (8dB) -->
|
||||
<path d="M 110 265 H 55 V 410 H 585 V 360 H 595" class="wire wire-data"/>
|
||||
<circle cx="110" cy="265" r="3" fill="#2196F3"/>
|
||||
<circle cx="595" cy="360" r="3" fill="#2196F3"/>
|
||||
|
||||
<!-- Wiring: GPIO3 → V3 (4dB) -->
|
||||
<path d="M 110 280 H 60 V 405 H 580 V 345 H 595" class="wire wire-data"/>
|
||||
<circle cx="110" cy="280" r="3" fill="#2196F3"/>
|
||||
<circle cx="595" cy="345" r="3" fill="#2196F3"/>
|
||||
|
||||
<!-- Wiring: GPIO4 → V4 (2dB) -->
|
||||
<path d="M 110 295 H 65 V 395 H 575 V 330 H 595" class="wire wire-data"/>
|
||||
<circle cx="110" cy="295" r="3" fill="#2196F3"/>
|
||||
<circle cx="595" cy="330" r="3" fill="#2196F3"/>
|
||||
|
||||
<!-- Wiring: GPIO5 → V5 (1dB) -->
|
||||
<path d="M 110 310 H 70 V 385 H 570 V 315 H 595" class="wire wire-data"/>
|
||||
<circle cx="110" cy="310" r="3" fill="#2196F3"/>
|
||||
<circle cx="595" cy="315" r="3" fill="#2196F3"/>
|
||||
|
||||
<!-- Wiring: GPIO6 → V6 (0.5dB) -->
|
||||
<path d="M 110 325 H 75 V 375 H 565 V 300 H 595" class="wire wire-data"/>
|
||||
<circle cx="110" cy="325" r="3" fill="#2196F3"/>
|
||||
<circle cx="595" cy="300" r="3" fill="#2196F3"/>
|
||||
|
||||
<!-- Legend -->
|
||||
<rect x="280" y="420" width="240" height="70" rx="5" class="note-box"/>
|
||||
<text x="400" y="438" text-anchor="middle" style="font-weight:bold;" class="note">Wiring Summary</text>
|
||||
<line x1="290" y1="445" x2="310" y2="445" stroke="#f44336" stroke-width="3"/>
|
||||
<text x="315" y="449" class="note">Power (+5V)</text>
|
||||
<line x1="400" y1="445" x2="420" y2="445" stroke="#333" stroke-width="3"/>
|
||||
<text x="425" y="449" class="note">Ground</text>
|
||||
<line x1="290" y1="465" x2="310" y2="465" stroke="#2196F3" stroke-width="3"/>
|
||||
<text x="315" y="469" class="note">Data (GPIO→Vx)</text>
|
||||
<text x="400" y="483" text-anchor="middle" class="note" style="font-style:italic;">Active-LOW: LOW=Attenuate, HIGH=Pass</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.7 KiB |
85
hardware/wiring.md
Normal file
85
hardware/wiring.md
Normal file
@ -0,0 +1,85 @@
|
||||
# HMC472A Attenuator Controller Wiring
|
||||
|
||||
## Connection Diagram
|
||||
|
||||

|
||||
|
||||
## Pin Mapping Table
|
||||
|
||||
| ESP32-S2 Mini | HMC472A Module | Function | Attenuation |
|
||||
|---------------|----------------|----------|-------------|
|
||||
| GPIO1 | V1 | Bit 5 (MSB) | 16 dB |
|
||||
| GPIO2 | V2 | Bit 4 | 8 dB |
|
||||
| GPIO3 | V3 | Bit 3 | 4 dB |
|
||||
| GPIO4 | V4 | Bit 2 | 2 dB |
|
||||
| GPIO5 | V5 | Bit 1 | 1 dB |
|
||||
| GPIO6 | V6 | Bit 0 (LSB) | 0.5 dB |
|
||||
| 5V (VBUS) | +5V | Power | — |
|
||||
| GND | GND | Ground | — |
|
||||
|
||||
## HMC472A Module Header Pinout
|
||||
|
||||
The 8-pin header on the HMC472A module (top to bottom when viewing from component side):
|
||||
|
||||
| Pin | Signal | Description |
|
||||
|-----|----------|--------------------------|
|
||||
| 1 | +5V | Power supply (+5V DC) |
|
||||
| 2 | V6 | 0.5 dB control (active-low) |
|
||||
| 3 | V5 | 1 dB control (active-low) |
|
||||
| 4 | V4 | 2 dB control (active-low) |
|
||||
| 5 | V3 | 4 dB control (active-low) |
|
||||
| 6 | V2 | 8 dB control (active-low) |
|
||||
| 7 | V1 | 16 dB control (active-low) |
|
||||
| 8 | GND | Ground |
|
||||
|
||||
## Logic Levels
|
||||
|
||||
**Active-LOW control:**
|
||||
- **LOW (0V)** = Attenuate (apply the dB value)
|
||||
- **HIGH (3.3V or 5V)** = Pass (0 dB contribution)
|
||||
|
||||
The HMC472A accepts 0–5V TTL/CMOS logic. The ESP32-S2's 3.3V GPIO output is fully compatible.
|
||||
|
||||
## Attenuation Examples
|
||||
|
||||
| GPIO State (1-6) | Step | Total Attenuation |
|
||||
|------------------|------|-------------------|
|
||||
| `111111` (all HIGH) | 0 | 0 dB (insertion loss only) |
|
||||
| `111110` | 1 | 0.5 dB |
|
||||
| `111100` | 3 | 1.5 dB |
|
||||
| `110000` | 15 | 7.5 dB |
|
||||
| `100000` | 31 | 15.5 dB |
|
||||
| `000000` (all LOW) | 63 | 31.5 dB |
|
||||
|
||||
Formula: `attenuation = step × 0.5 dB` where step = 0–63
|
||||
|
||||
## ESP32-S2 Mini Physical Pinout
|
||||
|
||||
```
|
||||
┌─────────────────┐
|
||||
│ USB-C │
|
||||
└─────────────────┘
|
||||
3V3 ─┤ 1 16 ├─ 5V (VBUS) ◄── Power to HMC472A
|
||||
GPIO1 ─┤ 2 15 ├─ GPIO15 (LED)
|
||||
GPIO2 ─┤ 3 14 ├─ GPIO14
|
||||
GPIO3 ─┤ 4 13 ├─ GPIO13
|
||||
GPIO4 ─┤ 5 12 ├─ GPIO12
|
||||
GPIO5 ─┤ 6 11 ├─ GPIO11
|
||||
GPIO6 ─┤ 7 10 ├─ GPIO10
|
||||
GND ─┤ 8 9 ├─ GPIO9
|
||||
└─────────────────┘
|
||||
(Left header)
|
||||
```
|
||||
|
||||
GPIOs 1–6 are on the left header, pins 2–7. Convenient sequential layout for ribbon cable.
|
||||
|
||||
## KiCad Schematic
|
||||
|
||||
A full KiCad schematic is available at `hmc472-controller.kicad_sch` for detailed EDA work.
|
||||
|
||||
## Notes
|
||||
|
||||
1. **No level shifting required** — ESP32-S2 3.3V GPIO drives HMC472A directly
|
||||
2. **Boot state** — GPIOs default HIGH at boot = 0 dB attenuation (safe)
|
||||
3. **Glitch-free switching** — Firmware uses register-level writes (`GPIO.out_w1ts`/`GPIO.out_w1tc`) to change all 6 bits atomically
|
||||
4. **Power** — The S2 Mini's 5V pin sources USB VBUS directly, sufficient for HMC472A's 2.5 mA draw
|
||||
Loading…
x
Reference in New Issue
Block a user