Git Product home page Git Product logo

functiongeneratorcortexm4_hw's Introduction

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:
Component Type Current
STM32G4 MCU 42mA (max)
TL972 OPAMP 3.2mA (per amplifier)
LTC6910-3 PGA 4.9mA
TS12A12511 SPDT 1uA
74LVC1G3157 SPDT 35uA
LCD TFT display 60mA
Total 120mA

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.

functiongeneratorcortexm4_hw's People

Contributors

cracked-machine avatar

Stargazers

 avatar  avatar

Watchers

 avatar

functiongeneratorcortexm4_hw's Issues

HW upgrade - Increase Dual Supply range

Upgrade DualSupply to +/-9V

  • Requires different dc-dc converter. Either continue using multiple IC with higher input/output range or replace all ICs with single isolated dc-dc converter brick

Currentlly using +9V input, +/-5V output +/- 77mA output
Change to +/12V output @ +/- 77mA. Maybe could get away with 1W DC-DC...

  • Dependent on replacing other +/-5V ICs
    #2 (HW Upgrade - Replace PGA)
    #6 (HW Upgrade - Replace Offset SPDT)

HW Upgrade - Replace PGA

Replace PGA for higher input voltage IC

Best candidate: THS7001
Comes in dual package with independant gain controls, could be used for both MAIN and AUX outputs

Choose opamp for discrete PGA design on output

Requirements:

  • 2 channel
  • Dual supply +/- 12V
  • Rail to rail outputs
  • Low input voltage noise < 10nV per Hz
  • Fast slew rate > 12V/us
  • GPB >10Mhz
  • Voltage input offset < 1mV
  • Low settling time < 120ns
  • Not a BGA/QFN package

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.