linuswck
c4135f6ac3
cmd: Add cmds to config pd_mon params
2024-02-22 16:44:45 +08:00
linuswck
6ee45b4814
thermostat: Limit Pid Temp SetPt to TempMon limits
2024-02-21 17:37:56 +08:00
linuswck
a8787430b1
Add Temperature Monitor to Thermostat
...
- Issue an alarm when temperature goes out of user-defined operating range during Pid Controller startup
or reading is outside of +-0.5 Degree from temperature set point after Pid Controller becomes stable
- If alarm is observed, power down laser and tec controller and disengage Pid Controller
- Add the corresponding cmd for configuring the temperature monitor
2024-02-21 17:32:11 +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
0642640da7
dfu: Add eth cmd, fns to put stm32 into dfu mode
2024-02-16 17:23:47 +08:00
linuswck
6dd1bf9301
hw_rev: Generate random mac address on rev0_3
2024-02-16 17:23:39 +08:00
linuswck
7a76325288
cmd: rm rev from cmd json
...
- not in used
2024-02-15 12:14:14 +08:00
linuswck
ffa5f4e8ff
pid: Use Thermostat's PID algo instead of IDSP
...
- Has lower steady state error upon testing with PID autotune
2024-02-15 12:14:14 +08:00
linuswck
e9a396f001
thermostat: Add abs timestamp to StatusReport
2024-02-15 12:14:14 +08:00
linuswck
412f5ec58b
cmd: add cmds to poll tec temp, dis/enable pid
2024-02-15 12:14:14 +08:00
linuswck
e29898f8f8
fix typos
2024-02-15 12:14:14 +08:00
linuswck
60a79d1780
rename get_term_status -> get_lf_mod_in_impedance
2024-02-15 12:14:14 +08:00
linuswck
b0edd3dba2
hw_rev: Wait for 5s b4 gpio init instead of 1.5s
...
- See Issue #32
2024-02-15 12:14:14 +08:00
linuswck
6b05b2d851
Fix Power Up Hw Issue
...
- See Issue #32 on Kirdy Hw Repo
2024-02-07 12:46:13 +08:00
linuswck
f22ab430b8
pid: Use IDSP impl of Pid, Add Eth Pid Ctrl Cmds
2024-02-07 11:56:38 +08:00
linuswck
4cd650367d
thermostat: cleanup pid_engaged fn
2024-02-05 15:14:51 +08:00
linuswck
de262b849d
eth: Add Thermostat related json cmd
2024-02-05 15:14:23 +08:00
linuswck
4132bfacd3
boot: Set thermostat & LD init output current to 0
2024-02-02 17:37:37 +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
172c3e1dfc
cleanup boot.rs, thermostat.rs
2024-02-01 16:23:52 +08:00
linuswck
ee0ed8ebe7
eth: add drivers for init, polling & sending data
2024-02-01 16:20:36 +08:00
linuswck
771f2813f7
gpio: correct wrong eth pin definition
2024-01-31 17:15:32 +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
9ae867cd88
max1968: rm redundant adc config
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
07ea733b34
thermostst: Patch hw related settings for rev0_3
2024-01-24 12:25:45 +08:00
linuswck
5bea3f0e5f
boot: init analog wdg & power up laser after cfg
...
- Verified to be boot-able on Rev0_3 board
2024-01-24 12:19:07 +08:00
linuswck
af283b17ac
laser_diode: use analog wdg fns
2024-01-24 12:18:42 +08:00
linuswck
c3022e9db1
Analog_Wdg: Add GPIO init
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
095fe8ea69
AD7172: Rm deprecated warning for Rev0_2 hw bug
2024-01-24 12:18:42 +08:00
linuswck
a0b67cdb09
MAX1968: Patch DacVfb pinout for rev0_3
2024-01-24 12:18:42 +08:00
linuswck
381f25f036
AD7172: correct wrong NSS pinout definition
2024-01-24 12:18:42 +08:00
linuswck
c768bdc93a
Thermostat: Add fn to calibrate ADC's VDDA
...
- ADC1 exclusive feature
- Calibrated VDDA val can be passed to other ADCs to adjust gain error
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
linuswck
3cfdee917a
rename current_source -> ld_ctrl
2024-01-24 12:16:06 +08:00
linuswck
5f582be143
rename ld_drive to laser_diode
2024-01-24 12:16:06 +08:00
linuswck
2f7ca2a706
Thermostat: Add fns to report status & settings
...
- Report all system status, PID Settings, NTC parameter, TEC Settings
2024-01-24 12:16:06 +08:00
linuswck
ff3d9b790a
thermostat: pid_state rename variables
2024-01-24 12:16:06 +08:00
linuswck
bc7bf9a6e7
rename channel_state -> pid_state
2024-01-24 12:16:02 +08:00
linuswck
ca110962f7
Thermostat: Add pid_ctrl parms & its related fns
...
- setup: include the pid_ctrl
- poll_adc: Fetch Temperature and Update PID to set the current output
2024-01-24 12:16:02 +08:00
linuswck
d0f226ce03
Thermostat: Add default to ChannelState
2024-01-24 12:16:02 +08:00
linuswck
f49fd08c69
ad7172: impl default for ch_calibration
2024-01-24 12:16:02 +08:00
linuswck
ccaf728c75
thermostat: Add channel_state mod for PID Control
2024-01-24 12:15:57 +08:00
linuswck
3ac287ace2
steinhart_hart: Add Steinhart-Hart eq fns
...
- Port from thermostat firmware
2024-01-17 12:20:34 +08:00
linuswck
cdf900a5b6
gpio: Add AD7172 phy gpio init
...
- Will not function on rev0_2 kirdy due to wrong hardware connection
2024-01-16 17:36:16 +08:00
linuswck
af8d361b95
AD7172: Add AD7172 drivers fns
...
- Port from Thermostat Firmware
2024-01-16 16:19:01 +08:00
linuswck
42cd55645c
main: Add demo fns to use on-board flash
2024-01-15 17:21:48 +08:00
linuswck
d190b8b192
flash: Add init boot seq
...
- Max flash erase time for PSize = 8 and 128KiB Sector is 4s
- Watchdog period is changed accordingly
2024-01-15 17:21:06 +08:00
linuswck
74325a3cee
flash: Add fns to store data in flash
...
- Writing to the wrong flash sector can cause MCU to stall
- Only 16KiB out of 128KiB in the sector is used to save RAM for compacting
2024-01-15 17:14:58 +08:00
linuswck
709eae8566
max5719: Slow down SPI clock
...
- setting it to 30MHz hang MCU core
2024-01-11 17:46:35 +08:00
linuswck
33ff0c3678
main: Add demo fns reading all hardware status
2024-01-11 17:17:38 +08:00
linuswck
33d9cb45c4
ld_drive: Add soft current limit
2024-01-11 17:17:38 +08:00
linuswck
8ae27725c6
Port PID Controller from thermostat firmware
...
- Add serde Cargo
2024-01-11 17:17:10 +08:00
linuswck
20fc6d6fac
rm photodiode folder and its mod.rs
...
- photodiode related fns are written inside laser diode folder
- as they are closely related
2024-01-10 17:51:27 +08:00
linuswck
654964831a
boot: Change thermostat boot seq for new setup seq
...
- Power Up -> Calibrate -> Set the TEC current to some value
2024-01-10 10:38:05 +08:00
linuswck
27c7b5929e
thermostat: change setup seq
...
- default power off
- with all params set to default val on hw
- rm calibration from setup
2024-01-10 10:38:05 +08:00
linuswck
e48f1979f0
Clean up warnings
2024-01-10 10:38:05 +08:00
linuswck
59f2385ecf
ld_drive: make settings private & add set & get fn
2024-01-10 10:38:05 +08:00
linuswck
d4e074cbd4
ld_drive: rebase to the point that declare set_i
2024-01-10 10:38:05 +08:00
linuswck
277796d2a4
boot: Add ld_drive boot sequence
2024-01-10 10:38:05 +08:00
linuswck
be8bf0a8b6
ld_drive: add setup fn
2024-01-10 10:38:05 +08:00
linuswck
b1123047c7
ld_drive: Add fns to get pd current & cal ld pwr
2024-01-10 10:38:05 +08:00
linuswck
707fac0775
ld_drive: add a param for setting to cal pd pwr
...
- Conversion ratio between pd current and ld output power
2024-01-10 10:38:05 +08:00
linuswck
a99dde8b38
current_source: add driver to read pd voltage
2024-01-10 10:38:05 +08:00
linuswck
d1f7a20c15
ld_drive: Add fns to set ld output current
2024-01-10 10:38:05 +08:00
linuswck
58a8b15c40
ld_drive: add unit type and hw related constant
2024-01-10 10:38:05 +08:00
linuswck
590ba8171c
Add high level ld_drive mod
...
- Use current_source driver to interface with the board
2024-01-10 10:38:05 +08:00
linuswck
0807f66b3c
Add digital gpio related fns to Current source
...
- power_up
- power_down
- ld_short_enable
- ld_short_disable
- Rev0_2 has hardware connection bug for LD_EN net.
- laser driver power will always be enabled
2024-01-10 10:38:05 +08:00
linuswck
2953d4edde
Rewrite current_source obj and add gpio init
2024-01-10 10:38:05 +08:00
linuswck
f2c026ffdd
Rewrite MAX5719 Driver into a separated file
2024-01-10 10:38:05 +08:00
linuswck
c7d36bc8d5
Reorganize variables and fns structure
2024-01-10 10:38:00 +08:00
linuswck
6cc2bc32c5
thermostat:reorganize fns structure, add setup seq
2024-01-10 10:36:09 +08:00
linuswck
23ee568ea7
Port TEC DAC calibration procedure from Thermostat
...
- Needs clean up
- To be evaluated and rethink the calibration procedure
2024-01-10 10:36:05 +08:00
linuswck
d3f3608136
DacVFb is changed to PC3 for rev0_2 prototype
...
- This requires a circuit change to connect it to the PoE_PWR_SRC
through a 1.6k Ohm and 100nF LPF
2023-12-21 16:39:09 +08:00
linuswck
4cf7b7fdf9
Rewrite MAX1968 Driver Generically
...
- Set variable to proper types(Rate, ElectricalPotential, etc)
- Declare const MAX_I_POS, MAX_I_NEG, MAX_V conversion
2023-12-21 13:13:06 +08:00
linuswck
0179e7641a
Add MAX1968 Startup Sequence
2023-12-20 14:51:34 +08:00
linuswck
f6767b147b
Fix typo in MAX1968 driver power_down fn
2023-12-20 14:48:47 +08:00
linuswck
475fe28604
Initial Commit for AD5680 and MAX1968 Drivers
...
- GPIO Initializations for AD5680, MAX1968 drivers
- CTLI voltage of MAX1968 can be set with AD5680
- All features of MAX1968 can be controlled
2023-12-20 12:08:48 +08:00
linuswck
f2b419f8d0
Fix nix build to compilation error at Check Phase
...
- "panic_handler" should not be declared during test
- "main" and "std" are needed during test
2023-12-15 13:21:19 +08:00
topquark12
1b3b121a2d
cleanup
2022-10-23 16:59:15 +08:00
topquark12
e562b822dc
use RTT for PanicInfo
2022-10-22 21:00:17 +08:00
topquark12
6a76536248
squash all warnings, add RTT support
2022-10-22 20:20:49 +08:00
topquark12
6867a293e5
squash (most) warnings, cleanup
2022-10-22 15:49:01 +08:00
topquark12
dbb1b03638
current source working
2022-10-22 01:58:18 +08:00
topquark12
361c2ff316
add gpio setup
2022-10-21 12:05:55 +08:00
topquark12
18a603ab5f
refactor, shorten main
2022-10-20 21:21:01 +08:00
topquark12
fc90593f84
blinky, working systick and delay
2022-10-20 20:57:24 +08:00
topquark12
710b3ff5d5
project init
2022-10-20 15:17:43 +08:00