linuswck
3f9a4bf140
ld: Block pwr on request if alarm is asserted
...
- Align the alarm and pwr up behavior with thermostat temp_mon
2024-07-26 14:29:46 +08:00
linuswck
a90031dd6c
ld_pwr_exc_protector: clear irq bit at pwr up
2024-07-26 11:10:32 +08:00
linuswck
7b52072617
ld: cfg hardware when pd_mon params changes
2024-07-26 11:10:32 +08:00
linuswck
20c3d42dd7
rm ld soft current limit
2024-07-25 15:53:00 +08:00
linuswck
ec5bf1d6b6
gui, ld: term_status -> term_50ohm
...
- term_status (Is50Ohm / Not50Ohm) -> term_50ohm (On/Off)
2024-07-19 18:10:38 +08:00
linuswck
4cd328d98c
ld: apply pwr limit setting to analog watchdog
...
- This fixes a bug which power limit is not applied to pd_mon at startup
2024-07-19 18:10:38 +08:00
linuswck
83a764889c
ld_pwr_exc_protector: set smpr to be slowest
...
- reduce noise on the analog watchdog
2024-06-17 13:16:52 +08:00
linuswck
c09da0db98
ld_pwr_exc_protector: Apply 32-pt avg to pd_v
...
- Reduce noise amplitude from STM32f4 ADC
2024-06-17 13:16:52 +08:00
linuswck
d5a620c76b
pd_mon: make transconductance user-configurable
...
- hw change: different boards now have different gain settings in order
to set a pd current range close to the ld being used
- transconductance and fin_gain params are added to flash with "Device"
as key
2024-06-17 13:16:48 +08:00
linuswck
d1660c6090
ld_pwr_exc_protector: cal volt offset for pd mon
...
- hw change: A voltage offset is added onto the pd mon pin
2024-06-13 15:43:44 +08:00
linuswck
b8241d1f27
cargo fmt
...
- rustfmt.toml is ported from artiq-zynq repo
2024-04-23 17:09:26 +08:00
linuswck
0e087c6992
ld: ld_soft_i_limit now limits ld_i_out being set
2024-04-18 17:04:52 +08:00
linuswck
10873f4791
firmware: Load default pwr_on settings from flash
2024-04-10 16:57:43 +08:00
linuswck
e160316bfc
ld: add ld_terms_short in settings report
2024-04-10 16:57:43 +08:00
linuswck
0a992c1dc8
ld: pd_responsitivity -> pd_mon_params
2024-04-10 16:57:43 +08:00
linuswck
489333c43d
ld: save pwr_limit into settings
2024-04-10 16:56:20 +08:00
linuswck
af68b0e90a
Update rust, stm32-eth, hal, smoltcp versions
2024-03-25 15:43:12 +08:00
linuswck
7d41edef20
ld: Increase the delay before turning on LD_PWR
...
- Delay is tested and verified with oscilloscope
- Tested with 0.3A LD output current
2024-03-21 15:21:24 +08:00
linuswck
607da8a822
ld: Add a delay before turning on LD PWR
...
- DAC output might not drop to 0V before PWR is being turned on
- Thus, it might drive nondeterministic current into the laser diode during pwr up
2024-03-20 17:24:47 +08:00
linuswck
dbbd438e92
ld: Fix unable to save & load ld_i flash settings
2024-03-19 14:48:25 +08:00
linuswck
3ad7c417f6
Fix a ld current ramp up bug
...
- During ld_i ramp up, if pwr up cmd is called, ld_i is set incorrectly
2024-03-18 16:41:55 +08:00
linuswck
111d9a4226
cleanup
2024-03-05 16:33:49 +08:00
linuswck
92c6cf12d4
Add fns to apply ld, tec settings summary configs
2024-03-05 10:35:05 +08:00
linuswck
ef2410f441
Add fns, struct items for getting ld, tec settings
2024-03-05 10:35:05 +08:00
linuswck
f488786e1c
Use DMA to read Tec_I & Tec_V
...
- Remove the single conversion polling time with DMA
2024-03-01 11:31:01 +08:00
linuswck
76477065be
Change f64 to f32 for SI Unit related computation
...
- Save computational time
- Improve the processing speed of TecSetI cmd
2024-02-28 12:59:58 +08:00
linuswck
19341672a9
Correct SPI Clock Freq and Set them to Max
...
- Set the SPI frequency to maximum to reduce data transaction time
- SPI1 SCLK is divided from PCLK2
- SPI2, SPI2 SCLK are divided from PCLK1
2024-02-28 12:23:09 +08:00
linuswck
18dd0a7963
Save Thermostat and Laser Diode PWR On/Off status
2024-02-28 12:22:40 +08:00
linuswck
c09ccc29cd
cmd: Add cmd to get all device settings
2024-02-23 12:45:29 +08:00
linuswck
c4135f6ac3
cmd: Add cmds to config pd_mon params
2024-02-22 16:44:45 +08:00
linuswck
ed785b7c85
ld: correct timer and dac reset in pwr_up seq
2024-02-21 11:11:12 +08:00
linuswck
30ab228b4b
ld: Set default ld_current_limit in setup() fn
2024-02-20 16:22:13 +08:00
linuswck
88cca12a60
ld: Use Timer IRQ to ramp up/down output current
...
- Fixes possible watchdog timeout
- Improves ethernet response time & thermostat Pid update interval consistency
2024-02-20 16:18:06 +08:00
linuswck
8139ebdc1b
ld_ctrl: set_dac() fn now returns the volt set
...
- before this fix, set_dac() just returns the inputted voltage
2024-02-20 12:30:00 +08:00
linuswck
5f83b73011
cmd: Add active report mode cmd
2024-02-19 15:08:00 +08:00
linuswck
60a79d1780
rename get_term_status -> get_lf_mod_in_impedance
2024-02-15 12:14:14 +08:00
linuswck
6096711d2c
eth: Poll and Handle Json based Ld ctrl cmd
...
- Upgrade to miniconf 9.0
- Only non report related laser diode ctrl command is implemented
2024-02-02 17:35:58 +08:00
linuswck
3d3d6f5cb5
ld: cleanup
2024-02-02 17:23:39 +08:00
linuswck
4e0d14def2
laser: Add driver and fn to get termination status
2024-01-30 13:01:33 +08:00
linuswck
f6677d874c
LD: Rst LD current at power_up for soft start
2024-01-26 16:56:55 +08:00
linuswck
d391e3a1fb
LD: Setting LD output current now ramps up slowly
2024-01-26 16:56:55 +08:00
linuswck
edd30e94a0
laser_diode: Add fn to set pd_dark_i
2024-01-26 16:56:55 +08:00
linuswck
ad731c2f15
rename pd_mon -> pd_responsitivity
2024-01-26 16:56:55 +08:00
linuswck
9d8a553669
pd_mon: add fns to convert between pwr and current
2024-01-26 16:56:55 +08:00
linuswck
6af0f992d5
LdPwrExcProtector: Cleanup
2024-01-26 16:56:55 +08:00
linuswck
f50505feaf
Rename Analog_Wdg -> LdPwrExcProtector
2024-01-26 16:56:55 +08:00
linuswck
85b50bf824
Analog_Wdg: Finish Power Excursion Protection fns
...
- Verified to be working
2024-01-26 16:56:39 +08:00
linuswck
af283b17ac
laser_diode: use analog wdg fns
2024-01-24 12:18:42 +08:00
linuswck
c02181c80c
laser diode: Add Analog Watchdog initial commit
...
- rm pid_state for laser diode
2024-01-24 12:18:42 +08:00
linuswck
0d12c902fc
pd_mon: Separate ld_power calculation to a file
2024-01-24 12:18:37 +08:00