Universal I/O Controller Design

Create a complete new schematic and PCB-ready design for a single-channel Universal I/O controller based on an ATmega328 microcontroller.
Core requirement: Design a new circuit from scratch. Do not reuse or include LM76202QPWPRQ1, AD7708, HC595, CD4066, LM2902, or other external switching/ADC/control ICs unless absolutely required and explicitly approved. The ATmega328 should directly measure and control the universal I/O as much as practical.
Universal Input requirements: The same field input connector must support software-configurable modes:
  1. Digital input
  2. Analog voltage input
  3. 0–10 V input
  4. 0–20 mA input
  5. Resistance measurement
  6. RTD measurement: PT1000 and NI1000
  7. Thermistor measurement: 10k Type II and 10k Type III
Universal Output requirements: Provide a software-configurable universal output from the ATmega328. Include at minimum:
  1. Digital output
  2. PWM-based analog voltage output using filtering/buffering if needed
  3. Clearly document whether true 0–10 V output or 0–20 mA output is supported directly, requires extra circuitry, or is out of scope for the first revision.
Architecture constraints:
  • Use ATmega328 ADC pins directly for measurements.
  • Avoid HC595 shift registers.
  • Avoid CD4066 analog switches.
  • Avoid LM76202 protection IC.
  • Avoid AD7708 external ADC.
  • Prefer simple discrete protection, resistor dividers, shunt resistors, RC filters, jumpers or low-cost analog selection methods if needed.
  • Use clear ALL_CAPS net names.
  • Design for a 24 V industrial field environment where possible, but keep MCU pins protected within safe voltage/current limits.
Expected schematic blocks:
  1. Power input and regulation for ATmega328 logic rail.
  2. ATmega328 core: power pins, reset, clock option, ISP/programming header, decoupling.
  3. Universal input field connector with protection.
  4. 0–10 V divider path into ADC.
  5. 0–20 mA shunt path into ADC.
  6. Resistance/RTD/thermistor divider or excitation path into ADC.
  7. Digital input threshold/protection path into an ATmega328 GPIO.
  8. Universal output connector with digital/PWM output conditioning.
  9. Optional test points and calibration notes.
Implementation expectations:
  • Select suitable components from the Flux library.
  • Add all required resistors, capacitors, connectors, protection parts, regulator, and ATmega328 support parts.
  • Wire the complete schematic.
  • Add Role and Role Details properties to important parts.
  • Run ERC and fix schematic errors.
  • Create a project document explaining the circuit architecture, mode configuration table, ATmega328 pin mapping, ADC scaling equations, firmware configuration notes, and limitations.
  • After schematic validation, set up a reasonable PCB board size and stackup, place components by functional block, and prepare for routing.
Important design notes:
  • Because the ATmega328 has limited ADC resolution and input range, include scaling and protection so all field signals are reduced to the MCU ADC range.
  • Firmware must select the measurement mode and apply calibration/scaling formulas.
  • If fully software-selectable mode switching cannot be achieved without extra analog-switch ICs, propose a simple alternative such as jumpers, resistor option links, MOSFET/discrete switching, or separate input terminals, and document the tradeoff before implementation.
I couldn’t start a new execution plan because a previous execution is currently stopping; once it finishes, I can generate and start the plan for this ATmega328-based Universal I/O redesign.
Use jumper modes
Schematic first
Separate terminals
ATmega328P 5V
Document architecture
U3
R35
Resistance
5.36kΩ
R2
Resistance
30kΩ
R5
Resistance
10kΩ
R3
Resistance
10kΩ
R34
Resistance
10kΩ
R21
Resistance
2.2kΩ
R31
Resistance
143kΩ
R30
Resistance
100kΩ
R25
Resistance
10kΩ
R33
Resistance
274kΩ
R24
Resistance
100kΩ
R4
Resistance
165Ω
R22
Resistance
100kΩ
R1
Resistance
1kΩ
R29
Resistance
100kΩ
R32
Resistance
10kΩ
R23
Resistance
100kΩ
R36
Resistance
20kΩ
U6 SIG_B_OUT/IN - U2 AIN1
R36 P1 - U1 IMON
R21 P1 - IC1 CATHODE
U1 ~{FLT} - J10 15
U2 ~{RDY} - J9 NJTRST
U4 ~OE - R23 P2
R21 P1 - IC1 CATHODE
R36 P1 - U1 IMON
U10 EN - C19 P1
U6 SIG_C_OUT/IN - R5 P1
R2 P2 - R3 P1
Y1 P1 - U2 XTAL1
U2 SCLK - J9 JTCK
U10 VOUT - C20 P1
U2 ~{RESET} - R24 P2
U3 OUTPUT_A - R25 P2
R33 P2 - R34 P1
U4 QC - U6 CONTROL_C
U10 VOUT - C20 P1
U4 ~SRCLR - R22 P2
J10 02 - U10 VIN
U4 QD - U6 CONTROL_D
R35 P1 - U1 ILIM
U4 ~SRCLR - R22 P2
U1 OUT - C22 P1
C26 P1 - U1 dVdT
U6 SIG_B_OUT/IN - U2 AIN1
U1 IN - C27 P1
U10 VOUT - C20 P1
U2 DIN - J9 JTDI
U10 VOUT - C20 P1
Y1 P2 - U2 XTAL2
U6 SIG_B_OUT/IN - U2 AIN1
U4 RCLK - J10 09
U1 OUT - C22 P1
R2 P2 - R3 P1
U10 VOUT - C20 P1
U10 VOUT - C20 P1
Y1 P2 - U2 XTAL2
U10 VOUT - C20 P1
U10 VOUT - C20 P1
U2 SCLK - J9 JTCK
U2 SCLK - J9 JTCK
U2 DIN - J9 JTDI
U2 ~{CS} - J9 JTMS
U1 IN - C27 P1
R33 P2 - R34 P1
R1 P2 - R2 P1
U2 DOUT - J9 JTDO
U4 QD - U6 CONTROL_D
U2 DOUT - J9 JTDO
U4 ~SRCLR - R22 P2
Y1 P1 - U2 XTAL1
R31 P2 - R32 P1
Y1 P2 - U2 XTAL2
U10 VOUT - C20 P1
U2 DIN - J9 JTDI
R33 P2 - R34 P1
R1 P2 - R2 P1
R1 P2 - R2 P1
R1 P2 - R2 P1
U10 EN - C19 P1
U10 VOUT - C20 P1
U2 ~{RESET} - R24 P2
R31 P2 - R32 P1
U2 DOUT - J9 JTDO
U11 OUTPUT_A - R27 P2
J1 1 - R1 P1
R29 P2 - R30 P1
U6 SIG_D_OUT/IN - U3 INPUTS_A_1
U1 IN - C27 P1
U2 ~{RDY} - J9 NJTRST
R31 P1 - U1 IN
R2 P2 - R3 P1
U2 ~{RESET} - R24 P2
C26 P1 - U1 dVdT
J10 02 - U10 VIN
U10 VOUT - C20 P1
J1 1 - R1 P1
U10 VOUT - C20 P1
R31 P2 - R32 P1
U4 QB - U6 CONTROL_B
U11 OUTPUT_B - J10 15
U10 VOUT - C20 P1
R31 P1 - U1 IN
U3 OUTPUT_A - R25 P2
R29 P2 - R30 P1
U10 VOUT - C20 P1
U10 VOUT - C20 P1
U2 SCLK - J9 JTCK
U4 ~OE - R23 P2
U1 IN - C27 P1
R21 P1 - IC1 CATHODE
U4 ~OE - R23 P2
U10 VOUT - C20 P1
U10 VOUT - C20 P1
J1 1 - R1 P1
U4 RCLK - J10 09
U10 VOUT - C20 P1
U2 ~{CS} - J9 JTMS
U10 VOUT - C20 P1
U10 VOUT - C20 P1
U6 SIG_C_OUT/IN - R5 P1
R29 P2 - R30 P1
R1 P2 - R2 P1
U3 OUTPUT_A - R25 P2
U4 QA - U6 CONTROL_A
R35 P1 - U1 ILIM
U2 ~{RDY} - J9 NJTRST
U4 QA - U6 CONTROL_A
U10 VOUT - C20 P1
U10 VOUT - C20 P1
U10 VOUT - C20 P1
U4 QB - U6 CONTROL_B
J10 02 - U10 VIN
R21 P1 - IC1 CATHODE
Y1 P1 - U2 XTAL1
U2 DIN - J9 JTDI
U4 QC - U6 CONTROL_C
U6 SIG_D_OUT/IN - U3 INPUTS_A_1
U2 ~{CS} - J9 JTMS
J1 2 - J2 2
J9
C1 P2 - C2 P2
GND
IC1
C22
Capacitance
47µF
C20
Capacitance
10uF
C18
Capacitance
100nF
C10 P2 - C11 P2
U1 MODE - IC1 ANODE
GND
C27
Capacitance
1µF
J1 2 - J2 2
C24
Capacitance
12pF
GND
R32 P2 - C27 P2
C10
Capacitance
100nF
U2 AIN5 - U2 AIN6
U2 AIN8 - U2 REFIN2(+)/AIN9
U2 AIN5 - U2 AIN6
C19
Capacitance
10uF
R34 P2 - R35 P2
C7
Capacitance
100nF
GND
GND
R34 P2 - R35 P2
C1 P2 - C2 P2
C1 P2 - C2 P2
R34 P2 - R35 P2
C3
Capacitance
100nF
U3 INPUTS_B_1 - U3 INPUTS_B_2
R32 P2 - C27 P2
J1 2 - J2 2
U1 MODE - IC1 ANODE
GND
C2
Capacitance
100nF
GND
U2 AIN5 - U2 AIN6
C6
Capacitance
100nF
C1 P2 - C2 P2
C1 P2 - C2 P2
C23 P2 - C24 P2
GND
GND
C1 P2 - C2 P2
U1 MODE - IC1 ANODE
GND
GND
GND
GND
C14 P2 - C15 P2
C8
Capacitance
100nF
C1 P2 - C2 P2
GND
U2 AIN8 - U2 REFIN2(+)/AIN9
U11 GND - C25 P2
C4
Capacitance
100nF
C9
Capacitance
100nF
GND
R34 P2 - R35 P2
C1 P2 - C2 P2
C23
Capacitance
12pF
J1 2 - J2 2
GND
GND
C23 P2 - C24 P2
U3 INPUTS_B_1 - U3 INPUTS_B_2
C1
Capacitance
100nF
C21
Capacitance
100nF
GND
C26
Capacitance
12nF
U2
H2
J1
U10
H3
U6
J10
U4
D1
Y1
U1
H4
H1

Refine this doc
Ask about this doc
Single Universal Input Architecture
Scope
This document records the reduced one-channel Universal Input schematic derived from the earlier four-channel Universal I/O architecture.
The implemented channel supports these intended measurement modes:
  • Digital Input
  • Analog Input
  • 0-10 V input
  • 0-20 mA input
  • Resistance measurement
  • RTD measurement, including PT1000 and NI1000-class sensors
  • Thermistor measurement, including 10k Type II and 10k Type III sensors
Retained Functional Blocks

Table


BlockComponentsMain NetsPurpose
Field power protectionU1, R31-R36, C22, C26, C27FIELD_24V_IN, FIELD_24V_PROT, FIELD_FLT_NLM76202 protected field-power path and fault status
Logic supplyU10, C18-C205V_IN, 3V3Generates local 3.3 V logic/analog rail from external 5 V
ADC/reference/clockU2, IC1, Y1, C21, C23, C24UI1_ADC, 2V5_REF, ADC_XTAL1, ADC_XTAL2, SPI_*AD7708 measurement core with 2.5 V reference and SPI interface
Mode expansionU4CTRL_VOLTAGE_MODE, CTRL_CURRENT_MODE, CTRL_RESISTANCE_MODE, CTRL_DIGITAL_MODEHC595 output bits drive the CD4066 switch controls
Analog switch matrixU6UI1_PROT, UI1_ADC, UI1_0_10V_DIV, UI1_EXCITE_SRC, UI1_DIG_SENSESelects the measurement path for the single input
Digital thresholdU3A, R25, R29, R30DIG_THRESHOLD, UI1_DIG_SENSE, UI1_DIG_OUTComparator-backed digital input output
Field connector/protectionJ1, D1, R1UI1_FIELD, UI1_PROTScrew terminal input, TVS clamp, and input series limiting
Channel Front-End Mapping

Table


FunctionComponents / PathNotes
Field inputJ1 pin 1 -> UI1_FIELDJ1 pin 2 is GND/return
TVS clampD1 from UI1_FIELD to GNDSM6T18A protects the field terminal
Series protectionR1 1 kΩ from UI1_FIELD to UI1_PROTLimits fault/input current into the front end
0-10 V dividerR2 30 kΩ / R3 10 kΩ -> UI1_0_10V_DIV4:1 nominal scaling before ADC selection
0-20 mA shuntR4 165 Ω from UI1_PROT to GND20 mA produces about 3.3 V
Resistance/RTD/thermistor excitationR5 10 kΩ to UI1_PROT via UI1_EXCITE_SRCSupports resistance-based sensors with firmware calibration tables
ADC filterC10 100 nF from UI1_ADC to GNDLocal low-pass / charge bucket at ADC input
Digital inputUI1_PROT -> U6 switch -> UI1_DIG_SENSE -> U3ACompared against DIG_THRESHOLD
HC595 Control Mapping

Table


HC595 OutputNetCD4066 ControlMode
QACTRL_VOLTAGE_MODEU6 CONTROL_A0-10 V / scaled analog path
QBCTRL_CURRENT_MODEU6 CONTROL_B0-20 mA shunt path
QCCTRL_RESISTANCE_MODEU6 CONTROL_CResistance / RTD / thermistor excitation path
QDCTRL_DIGITAL_MODEU6 CONTROL_DDigital comparator-sense path
QE-QH, QH'No connectNot usedSpare for future expansion
Firmware should assert only one of CTRL_VOLTAGE_MODE, CTRL_CURRENT_MODE, CTRL_RESISTANCE_MODE, or CTRL_DIGITAL_MODE at a time unless a deliberate calibration/test mode is being used.
External Interface Nets

Table


NetDirectionDescription
5V_INInputExternal 5 V rail for U10 and logic support
3V3Output/local railRegulated logic/analog rail
FIELD_24V_INInputField-power input to LM76202
FIELD_24V_PROTOutput/local railProtected field-power rail
FIELD_FLT_NOutputLM76202 active-low fault status
SPI_SCLKInputHost clock to AD7708 and HC595 shift clock
SPI_MOSIInputHost data to AD7708 DIN and HC595 SER
SPI_MISOOutputAD7708 DOUT
ADC_CS_NInputAD7708 chip select
ADC_RDY_NOutputAD7708 data-ready
HC595_LATCHInputHC595 register latch
HC595_SRCLR_NInputHC595 shift-register clear
HC595_OE_NInputHC595 output enable
UI1_DIG_OUTOutputComparator-backed digital input status
UI1_ADCInternalSelected analog measurement node into AD7708 AIN1
Cleanup and Validation Notes
  • Removed UI2-UI4 channel copies and universal-output connectors/stages from the schematic scope.
  • Removed the LM2902 universal-output driver because it was not part of the one-channel Universal Input block.
  • Grounded unused AD7708 analog inputs AIN2-AIN8 and REFIN2/AIN9/AIN10 for a defined bias state.
  • Tied unused LM2903 comparator-B inputs to GND and marked the output unused.
  • Renamed the generic LM76202 fault net to FIELD_FLT_N.
  • ERC check for floating pins, single-pin nets, power pins, and no-connect issues currently reports no errors/warnings.
Production Follow-Up
  • Confirm final header pinout for J10 before PCB release.
  • Add per-channel isolation or dedicated analog ground strategy if measurement accuracy/noise requirements tighten.
  • Simulate the divider/shunt/excitation cases to verify ADC operating range and filter response across tolerances.
  • Re-place and re-route the PCB after schematic reduction; previous routing/airwire status from the 4-channel design is no longer representative of the reduced block.
  • Scope

  • Retained Functional Blocks

  • Channel Front-End Mapping

  • HC595 Control Mapping

  • External Interface Nets

  • Cleanup and Validation Notes

  • Production Follow-Up

Universal I/O Controller

Universal I/O Controller thumbnail
Single-channel Universal Input schematic with LM76202 field protection, AD7708 ADC measurement core, CD4066 mode switching, HC595 control mapping, and comparator-backed digital input support for DI, analog, 0-10 V, 0-20 mA, resistance, RTD, and thermistor modes.

Properties

Properties describe core aspects of the project.

Pricing & Availability

Distributor

Qty 1

Arrow

$4.72–$6.84

Digi-Key

$3.25–$5.02

HQonline

$1.58

LCSC

$3.62–$3.69

Mouser

$24.35

TME

$4.69

Verical

$6.18–$8.19

Controls