# Bachelor Thesis Tex-files

## Timeline 

| Date | |
| --- | --- |
|  7.6. | Start |
| 14.6. | **Table of Contents** |
|  9.8. | last possibility for "first draft"|
| 30.8. | Deadline |
|  6.9. | Kolloquium |

## Content

- I2C
    - v2
        - [x] Umbau
            - [x] **packed** union based data structures (removes the need for magic numbers
            - [ ] (safe types inside `pi2cproto.h`)
        - [x] ballast
        - [x] reused
            - remaining compatability to v1
        - [ ] new
            - [x] UUID readout
            - [x] r/w-ablility for both 1.8V potentiometers
    - [x] raw memory mapping
        - [x] why is `mon48v = 0x11`?
            - missing `__attribute__((packed))` declarations
        - [x] why are `digipoti` and `anapoti` only readable from `0x02` and `0x04` not partial?
            - same as above
    - [ ] instability on mass communication
        - timebased / overflow ?
            -> most likely race-condition on writing any value to (semi-)global objects 
        - gdb-server feasable? -> NO: only 6 registers for breakpoints and no stacktrace

- Calibration
    - [x] characterize adcbehaviour
        - [x] plot resulting fitted incline of $`\Delta`$V vs. num. of readcycles
        - [x] see if v_pin same as v_keith_pin
            - on dV of **small enough** -> adc circuit working correctly -> calib
        - [x] reasoning for using a given `sampleTicks` value
            - smallest gain error -> inconsistent
            - smallest offset -> inconsistent
            - hightst samplerate -> `sampleTicks = 1`
            - pin plot -> `sampleTicks = 0` is no go
            - pin plot -> `sampleTicks` in `1-7`
    - [x] polynomials
        - [x] polynomials rw-able
    - [x] 10I calc
    - [x] differences between PIts?
        - if yes then we need a `PITDB` -> `pitdb.yaml`
        - standard only for default
    - [ ] Voltage
        - [x] redo after selection of `sampleTicks` value
            - [x] 48V
            - [ ] 10V
            - [x] 1.8V ana
            - [x] 1.8V digi
        - [ ] calibrate based on fit
            - [ ] 48V
            - [ ] 10V
            - [ ] 1.8V ana
            - [ ] 1.8V digi
    - [ ] Current
        - [ ] without calib
            - [x] 48I
            - [x] 1.8I ana
            - [ ] 1.8I digi
        - [ ] with calib
            - [ ] 48I
            - [ ] 1.8I ana
            - [ ] 1.8I digi
    - Temp
        - [ ] accuracy?
        - [ ] position in system
            - inside chip -> on underside of board, between frame and board
        - [ ] relevancy
            - peace of mind if readout correct and not too high (no experience)

- 1.8V Regulation
    - [ ] compare regulation concepts

        - there's overshoot: less oscillation is good, as long as we don't take forever to achieve those
        - [ ] stabilize
    - [ ] regulate the system (with missing information)
        - (possibility: unused reticles on each wafer can be used to get some feedback on initial calibration, would result into additional dynamic values for calculation and calibration o fthe 1.8V regulation)
        - [ ] write / formulate approach and resulting formula / algorithm

## Table of Contents

- Introduction
    - What is this about?
    - What's the PowerIt Subsystem?
    - Goals
        - Firmware
        - Calibration
        - Regulation
- Theory
    - Hardware Component Behavior
    - ADC Calibration
    - 1.8V Output Regulation
- Experiments
    - Setup
        - Hardware
        - Softwarestack

            ```mermaid
            graph LR;
                fw[PIt Firmware] --- pot[Potentiometers];
                fw --- srv["PItStop Server (RPi)"];
                srv -.- agg[PItStop Aggregator];
            ```
    - Characterization
        - Voltages
        - Currents
    - after Calibration
        - Voltages
        - Currents
    - 1.8V Regulation
        - Characterization of Dropoff
        - after Correction
- Results
    - Firmware
        - I$`^2`$C mapped register- Table
    - Calibration
        - Calibration-Table
        - "How to calibrate a PowerIt"
    - Regulation
- Outlook

## Notes

### 1V8
RS = 2* * 4.7k
RP = 75k

### 9V6
R1 = 30k
R2 = 10k
