forked from M-Labs/ionpak-thermostat
tec: init freq pins for 1 MHz switching
This commit is contained in:
parent
13771bf770
commit
2773ba47fe
@ -72,7 +72,11 @@ pub struct PE4;
|
|||||||
def_gpio!(GPIO_PORTE_AHB, PE4, 4);
|
def_gpio!(GPIO_PORTE_AHB, PE4, 4);
|
||||||
pub struct PE5;
|
pub struct PE5;
|
||||||
def_gpio!(GPIO_PORTE_AHB, PE5, 5);
|
def_gpio!(GPIO_PORTE_AHB, PE5, 5);
|
||||||
|
pub struct PK1;
|
||||||
|
def_gpio!(GPIO_PORTK, PK1, 1);
|
||||||
pub struct PP2;
|
pub struct PP2;
|
||||||
def_gpio!(GPIO_PORTP, PP2, 2);
|
def_gpio!(GPIO_PORTP, PP2, 2);
|
||||||
pub struct PP3;
|
pub struct PP3;
|
||||||
def_gpio!(GPIO_PORTP, PP3, 3);
|
def_gpio!(GPIO_PORTP, PP3, 3);
|
||||||
|
pub struct PQ4;
|
||||||
|
def_gpio!(GPIO_PORTQ, PQ4, 4);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
use core::fmt;
|
use core::fmt;
|
||||||
use crate::board::pwm::{self, PwmChannel, PwmPeripheral};
|
use crate::board::pwm::{self, PwmChannel, PwmPeripheral};
|
||||||
use crate::board::gpio::{Gpio, GpioOutput, PP2, PP3};
|
use crate::board::gpio::{Gpio, GpioOutput, PP2, PP3, PK1, PQ4};
|
||||||
use embedded_hal::digital::v2::OutputPin;
|
use embedded_hal::digital::v2::OutputPin;
|
||||||
|
|
||||||
#[derive(Clone, Copy, Debug)]
|
#[derive(Clone, Copy, Debug)]
|
||||||
@ -46,6 +46,17 @@ where
|
|||||||
pin
|
pin
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn setup_freq<G>(gpio: G)
|
||||||
|
where
|
||||||
|
G: Gpio,
|
||||||
|
GpioOutput<G>: OutputPin,
|
||||||
|
{
|
||||||
|
let mut pin = gpio.into_output();
|
||||||
|
// Switching Frequency Select
|
||||||
|
// high: 1 MHz, low: 500 kHz
|
||||||
|
let _ = pin.set_high();
|
||||||
|
}
|
||||||
|
|
||||||
/// Thermo-Electric Cooling device controlled through four PWM
|
/// Thermo-Electric Cooling device controlled through four PWM
|
||||||
/// channels
|
/// channels
|
||||||
pub struct Tec<MaxIPos: PwmChannel, MaxINeg: PwmChannel, ISet: PwmChannel, MaxV: PwmChannel, SHDN: OutputPin> {
|
pub struct Tec<MaxIPos: PwmChannel, MaxINeg: PwmChannel, ISet: PwmChannel, MaxV: PwmChannel, SHDN: OutputPin> {
|
||||||
@ -61,6 +72,7 @@ impl Tec<pwm::T2CCP0, pwm::T2CCP1, pwm::T3CCP0, pwm::T3CCP1, GpioOutput<PP2>> {
|
|||||||
let (max_i_pos, max_i_neg) = tm4c129x::TIMER2::split();
|
let (max_i_pos, max_i_neg) = tm4c129x::TIMER2::split();
|
||||||
let (i_set, max_v) = tm4c129x::TIMER3::split();
|
let (i_set, max_v) = tm4c129x::TIMER3::split();
|
||||||
let shdn = setup_shdn(PP2);
|
let shdn = setup_shdn(PP2);
|
||||||
|
setup_freq(PK1);
|
||||||
Tec { max_i_pos, max_i_neg, i_set, max_v, shdn }
|
Tec { max_i_pos, max_i_neg, i_set, max_v, shdn }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -70,6 +82,7 @@ impl Tec<pwm::T4CCP0, pwm::T4CCP1, pwm::T5CCP0, pwm::T5CCP1, GpioOutput<PP3>> {
|
|||||||
let (max_i_pos, max_i_neg) = tm4c129x::TIMER4::split();
|
let (max_i_pos, max_i_neg) = tm4c129x::TIMER4::split();
|
||||||
let (i_set, max_v) = tm4c129x::TIMER5::split();
|
let (i_set, max_v) = tm4c129x::TIMER5::split();
|
||||||
let shdn = setup_shdn(PP3);
|
let shdn = setup_shdn(PP3);
|
||||||
|
setup_freq(PQ4);
|
||||||
Tec { max_i_pos, max_i_neg, i_set, max_v, shdn }
|
Tec { max_i_pos, max_i_neg, i_set, max_v, shdn }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user