Skip to the content
PCBKitNew board
2 layers109.2 × 91.4 mmFunctionGeneratorCortexM4, the printed circuit board in 3D

A function generator powered by ARM Cortex M4

Size
109.2 × 91.4 mm
Copper layers
2
Thickness
1.6 mm
Parts
119
Nets
107
Pads
372
Tracks, vias
765, 103
Pours
4
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
27 Feb 2020
Updated
18 Jun 2021

Overview

FunctionGeneratorCortexM4 is an open-source printed circuit board by cracked-machine, from the cracked-machine/FunctionGeneratorCortexM4_HW repository on GitHub, published under the MIT licence. It is a 2-layer board of 109.2 × 91.4 mm with 119 parts on 107 nets, routed with 765 tracks and 103 vias.

It is built around the STM32G474RET6, TL072 and TPS60400DBV, with the LM1117-5.0, LP3992-33B5F and TS5A3357DCU among its other parts. Its parts include 41 capacitors, 23 resistors, 14 ICs, 6 diodes and 6 connectors. It belongs with the STM32 boards of this library.

Main components

7

README

README.md

Cortex M4-based Function Generator (Hardware)

A function generator powered by STM32 G4.

Required Kicad Hardware library: https://github.com/cracked-machine/KicadLibrary

For details of the MCU configuration and firmware refer to FunctionGeneratorCortexM4_SW

Note, RevB was the final design. RevC was not built and is an untested future proposal.

System Overview

Input signals can be used as a trigger, capturing on voltage level or edge detection.

DAC1 synthesises the main output signal waveform and sends it to a voltage gain amplifier (LTC6910-3). The signal is then mixed with the DC offset signal from DAC2. The signal is then passes through a lowpass filter to remove any high frequency noise.

DAC2 is a DC signal 0-3.3V. This is sent to a buffer and inverting buffer. Either output is selected using the MCU-controlled SPDT switch IC (TS12A12511DCNR). This applies a software configurable DC offset between +3.3V and -3.3V to the main output signal.

DAC3 is an output signal synchronised to DAC1 to be used for triggering purposes.

Daughter boards

The display, controls and i/o connectors are connected via daughter boards to the main board via ribbon cable. An example of the display daughter board and its ribbon cable can be seen in the video below:

https://www.instagram.com/p/CA5NSdBhmBY/?utm_source=ig_web_copy_link

Power supply

Current Consumption:
ComponentTypeCurrent
STM32G4MCU42mA (max)
TL972OPAMP3.2mA (per amplifier)
LTC6910-3PGA4.9mA
TS12A12511SPDT1uA
74LVC1G3157SPDT35uA
LCD TFTdisplay60mA
Total120mA

The 9V input is regulated down to 3.3V and 5V for the MCU and LCD display.

Dual supply for the VGA and opamps are provided using multiple TPS60400 charge pumps. TPS60400 are rated at 60mA output but in testing was found to be less. Therefore, multiple TPS60400 were required to provide "point-of-load" regulation.

Additional filtering is provided at the MCU supply pins with L1 and L2 ferrite beads and C1-C12 bypass capacitors.

A midpoint reference 2.5V voltage is provided to the LTC6910-3 VGA using a TL431DBZ precision programmable reference.

Limitations

The power supply limits the output to 9Vp-p. The output swing of the VGA limits this further.

The VGA output current is limited to ~25mA. This is also limited by the power supply.

Due to the settling time of the VGA, smooth sweeps between output amplitude levels using this IC was not possible. As such, the output is fixed to the maximum VGA level. Output amplitude control was handled by the firmware instead.

See LTC6910-3 datasheet for more information.

Parts

119
QtyValueFootprintReferences
17100nFCapacitor_SMD:C_1206_3216Metric_Pad1.42x1.75mm_HandSolderC1, C5, C6, C7, C12, C16, C21, C22, C31, C33, C34, C35, C36, C37, C38, C39 +1
15TestPointTestPoint:TestPoint_Pad_1.0x1.0mmTP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11, TP12, TP13, TP16, TP17
91KResistor_SMD:R_1206_3216Metric_Pad1.42x1.75mm_HandSolderR9, R10, R14, R15, R16, R17, R18, R19, R22
71nFCapacitor_SMD:C_1206_3216Metric_Pad1.42x1.75mm_HandSolderC15, C17, C18, C19, C20, C23, C24
610UfCapacitor_SMD:C_1206_3216Metric_Pad1.42x1.75mm_HandSolderC13, C14, C25, C27, C28, C29
61uFCapacitor_SMD:C_1206_3216Metric_Pad1.42x1.75mm_HandSolderC2, C4, C10, C11, C30, C41
54K7Resistor_SMD:R_1206_3216Metric_Pad1.42x1.75mm_HandSolderR5, R6, R20, R23, R24
5LEDLED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolderD2, D3, D4, D5, D6
410KResistor_SMD:R_1206_3216Metric_Pad1.42x1.75mm_HandSolderR2, R3, R7, R12
3Jumper_NO_SmallJumper:SolderJumper-2_P1.3mm_Open_Pad1.0x1.5mmJP2, JP4, JP15
3TPS60400Package_TO_SOT_SMD:SOT-23-5_HandSolderingU4, U5, U14
210uFCapacitor_SMD:CP_Elec_4x5.7C9, C26
250RResistor_SMD:R_1206_3216Metric_Pad1.42x1.75mm_HandSolderR4, R21
2600R@100MHzInductor_SMD:L_1206_3216Metric_Pad1.42x1.75mm_HandSolderL1, L2
2Jumper_NC_SmallJumper:SolderJumper-2_P1.3mm_Bridged_Pad1.0x1.5mmJP1, JP3
2TL072Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU12, U13
1100KResistor_SMD:R_1206_3216Metric_Pad1.42x1.75mm_HandSolderR8
1100RResistor_SMD:R_1206_3216Metric_Pad1.42x1.75mm_HandSolderR11
1100nFCapacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolderC40
110VDiode_SMD:D_SOD-123FD1
110uFCapacitor_SMD:C_1206_3216Metric_Pad1.42x1.75mm_HandSolderC32
14.7uFCapacitor_SMD:C_1206_3216Metric_Pad1.42x1.75mm_HandSolderC3
1560RResistor_SMD:R_1206_3216Metric_Pad1.42x1.75mm_HandSolderR1
1Conn_01x06Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ4
1Conn_02x04_Odd_EvenConnector_IDC:IDC-Header_2x04_P2.54mm_VerticalJ6
1Conn_02x05_Odd_EvenConnector_IDC:IDC-Header_2x05_P2.54mm_VerticalJ1
1Conn_02x06_Odd_EvenConnector_IDC:IDC-Header_2x06_P2.54mm_VerticalJ3
1Conn_02x07_Odd_EvenConnector_PinHeader_1.27mm:PinHeader_2x07_P1.27mm_Vertical_SMDJ7
1DMG2301LPackage_TO_SOT_SMD:SOT-23Q1
1Jumper_NC_SmallConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP10
1LM1117-5.0Package_TO_SOT_SMD:SOT-223-3_TabPin2U8
1LP3992-33B5FPackage_TO_SOT_SMD:TSOT-23-5U3
1LTC6910Package_TO_SOT_SMD:TSOT-23-8U11
1MCP601-xOTPackage_TO_SOT_SMD:SOT-23-5U7
1NCP51460SN33T1GPackage_TO_SOT_SMD:SOT-23U1
1R_POT_TRIMPotentiometer_SMD:Potentiometer_Bourns_3314J_VerticalRV1
1STM32G474RETPackage_QFP:LQFP-64_10x10mm_P0.5mmU6
1Screw_Terminal_01x02TerminalBlock:TerminalBlock_bornier-2_P5.08mmJ2
1TL431DBZPackage_TO_SOT_SMD:SOT-23U10
1TS12A12511DCNRPackage_TO_SOT_SMD:SOT-23-8_HandsolderingU9
1TS5A3357Package_SO:VSSOP-8_2.4x2.1mm_P0.5mmU2

The 115 most common of 119 parts.

Questions

How big is the FunctionGeneratorCortexM4 PCB?

It measures 109.2 × 91.4 mm and has 2 copper layers, 1.6 mm thick.

What parts does the FunctionGeneratorCortexM4 use?

119 parts, built around the STM32G474RET6, TL072, TPS60400DBV and LM1117-5.0. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the FunctionGeneratorCortexM4 KiCad files?

From the cracked-machine/FunctionGeneratorCortexM4_HW repository on GitHub, at the commit this page was made from: the board is HW/MainBoard/RevB/FunctionGeneratorCortexM4/FunctionGeneratorCortexM4.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the FunctionGeneratorCortexM4 design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

More from cracked-machine/FunctionGeneratorCortexM4_HW

7
  • 2 layers109.2 × 91.4 mmFunctionGeneratorCortexM4, the printed circuit board in 3D

    FunctionGeneratorCortexM4

    cracked-machine/FunctionGeneratorCortexM4_HW

    A function generator powered by ARM Cortex M4

    88 parts2MIT
  • 2 layers34.2 × 155.4 mmDisplayBoard, the printed circuit board in 3D

    DisplayBoard

    cracked-machine/FunctionGeneratorCortexM4_HW

    A function generator powered by ARM Cortex M4

    18 parts2MIT
  • 2 layers48.3 × 38.7 mmControlsBoard, the printed circuit board in 3D

    ControlsBoard

    cracked-machine/FunctionGeneratorCortexM4_HW

    A function generator powered by ARM Cortex M4

    16 parts2MIT
  • 2 layers48.3 × 52.6 mmControlsBoard, the printed circuit board in 3D

    ControlsBoard

    cracked-machine/FunctionGeneratorCortexM4_HW

    A function generator powered by ARM Cortex M4

    12 parts2MIT
  • 2 layers54.6 × 20.3 mmControlsBoard, the printed circuit board in 3D

    ControlsBoard

    cracked-machine/FunctionGeneratorCortexM4_HW

    A function generator powered by ARM Cortex M4

    12 parts2MIT
  • 2 layers54.6 × 21.8 mmControlsBoard, the printed circuit board in 3D

    ControlsBoard

    cracked-machine/FunctionGeneratorCortexM4_HW

    A function generator powered by ARM Cortex M4

    12 parts2MIT
  • 2 layers26 × 56.2 mmIOBoard, the printed circuit board in 3D

    IOBoard

    cracked-machine/FunctionGeneratorCortexM4_HW

    A function generator powered by ARM Cortex M4

    4 parts2MIT

Similar boards

  • 2 layers164 × 73 mmTestRig PCB, the printed circuit board in 3D

    TestRig PCB

    RasmusB/USB-Keyboard-Adapter

    An Psion to USB keyboard controller

    95 parts57
  • 4 layers138.2 × 200.4 mmHV servo drive v1, the printed circuit board in 3D

    HV servo drive v1

    ExcessiveMotion/drive-hardware

    383 parts175CERN-OHL-W-2.0
  • 4 layers100 × 100 mmPcb AMY, the printed circuit board in 3D

    Pcb AMY

    Rivercraft911/R-01_Raster_Laser_Projector

    Red, blue and green lasers combine through two dichroc mirrors and bounce off a spinning polygon mirror, which each mirror facet makes one scanline.

    159 parts1
  • 2 layers139 × 45 mmSoil Power Sensor, the printed circuit board in 3D

    Soil Power Sensor

    jlab-sensing/ENTS-node-hardware

    Schematics and design for soil MFC voltage and current sensing

    72 parts
  • 2 layers187.5 × 45 mmGamma spectrometer, the printed circuit board in 3D

    Gamma spectrometer

    Motokichirou/gamma-spectrometer

    NaI(Tl) gamma spectrometer: STM32G474 + R1307 PMT + 4-board stack, KiCad schematics, LTspice simulations

    231 parts
  • 2 layers20 × 72 mmWogglebug, the printed circuit board in 3D

    Wogglebug

    smrl/wogglebug

    49 parts
  • 4 layers98.7 × 44.7 mmNanoLogger, the printed circuit board in 3D

    NanoLogger

    TobiasNetzer/nanoLogger

    Here is a simplified block diagram of the data logger. To measure the current of a device, the data logger is simply connected in series between the voltage source and the DUT/load.

    221 parts