Updating init process
This commit is contained in:
parent
30546a834f
commit
5d141d9f58
|
@ -770,7 +770,7 @@ pub fn setup(
|
||||||
let pounder = if pounder_pgood.is_high().unwrap() {
|
let pounder = if pounder_pgood.is_high().unwrap() {
|
||||||
log::info!("Found Pounder");
|
log::info!("Found Pounder");
|
||||||
|
|
||||||
let mut io_expander = {
|
let io_expander = {
|
||||||
let sda = gpiob.pb7.into_alternate_af4().set_open_drain();
|
let sda = gpiob.pb7.into_alternate_af4().set_open_drain();
|
||||||
let scl = gpiob.pb8.into_alternate_af4().set_open_drain();
|
let scl = gpiob.pb8.into_alternate_af4().set_open_drain();
|
||||||
let i2c1 = device.I2C1.i2c(
|
let i2c1 = device.I2C1.i2c(
|
||||||
|
@ -782,12 +782,70 @@ pub fn setup(
|
||||||
mcp23017::MCP23017::default(i2c1).unwrap()
|
mcp23017::MCP23017::default(i2c1).unwrap()
|
||||||
};
|
};
|
||||||
|
|
||||||
// Configure power-on-default state for pounder. All LEDs are off, on-board oscillator
|
let spi = {
|
||||||
// selected and enabled, attenuators out of reset. Note that testing indicates the
|
let spi_mosi = gpiod
|
||||||
// output state needs to be set first to properly update the output registers.
|
.pd7
|
||||||
io_expander.all_pin_mode(mcp23017::PinMode::OUTPUT).unwrap();
|
.into_alternate_af5()
|
||||||
io_expander.write_gpio(mcp23017::Port::GPIOA, 0x00).unwrap();
|
.set_speed(hal::gpio::Speed::VeryHigh);
|
||||||
io_expander.write_gpio(mcp23017::Port::GPIOB, 0x2F).unwrap();
|
let spi_miso = gpioa
|
||||||
|
.pa6
|
||||||
|
.into_alternate_af5()
|
||||||
|
.set_speed(hal::gpio::Speed::VeryHigh);
|
||||||
|
let spi_sck = gpiog
|
||||||
|
.pg11
|
||||||
|
.into_alternate_af5()
|
||||||
|
.set_speed(hal::gpio::Speed::VeryHigh);
|
||||||
|
|
||||||
|
let config = hal::spi::Config::new(hal::spi::Mode {
|
||||||
|
polarity: hal::spi::Polarity::IdleHigh,
|
||||||
|
phase: hal::spi::Phase::CaptureOnSecondTransition,
|
||||||
|
});
|
||||||
|
|
||||||
|
// The maximum frequency of this SPI must be limited due to capacitance on the MISO
|
||||||
|
// line causing a long RC decay.
|
||||||
|
device.SPI1.spi(
|
||||||
|
(spi_sck, spi_miso, spi_mosi),
|
||||||
|
config,
|
||||||
|
5.mhz(),
|
||||||
|
ccdr.peripheral.SPI1,
|
||||||
|
&ccdr.clocks,
|
||||||
|
)
|
||||||
|
};
|
||||||
|
|
||||||
|
let (adc1, adc2) = {
|
||||||
|
let (mut adc1, mut adc2) = hal::adc::adc12(
|
||||||
|
device.ADC1,
|
||||||
|
device.ADC2,
|
||||||
|
&mut delay,
|
||||||
|
ccdr.peripheral.ADC12,
|
||||||
|
&ccdr.clocks,
|
||||||
|
);
|
||||||
|
|
||||||
|
let adc1 = {
|
||||||
|
adc1.calibrate();
|
||||||
|
adc1.enable()
|
||||||
|
};
|
||||||
|
|
||||||
|
let adc2 = {
|
||||||
|
adc2.calibrate();
|
||||||
|
adc2.enable()
|
||||||
|
};
|
||||||
|
|
||||||
|
(adc1, adc2)
|
||||||
|
};
|
||||||
|
|
||||||
|
let adc1_in_p = gpiof.pf11.into_analog();
|
||||||
|
let adc2_in_p = gpiof.pf14.into_analog();
|
||||||
|
|
||||||
|
let pounder_devices = pounder::PounderDevices::new(
|
||||||
|
io_expander,
|
||||||
|
spi,
|
||||||
|
adc1,
|
||||||
|
adc2,
|
||||||
|
adc1_in_p,
|
||||||
|
adc2_in_p,
|
||||||
|
)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
let ad9959 = {
|
let ad9959 = {
|
||||||
let qspi_interface = {
|
let qspi_interface = {
|
||||||
|
@ -862,71 +920,6 @@ pub fn setup(
|
||||||
ad9959
|
ad9959
|
||||||
};
|
};
|
||||||
|
|
||||||
let spi = {
|
|
||||||
let spi_mosi = gpiod
|
|
||||||
.pd7
|
|
||||||
.into_alternate_af5()
|
|
||||||
.set_speed(hal::gpio::Speed::VeryHigh);
|
|
||||||
let spi_miso = gpioa
|
|
||||||
.pa6
|
|
||||||
.into_alternate_af5()
|
|
||||||
.set_speed(hal::gpio::Speed::VeryHigh);
|
|
||||||
let spi_sck = gpiog
|
|
||||||
.pg11
|
|
||||||
.into_alternate_af5()
|
|
||||||
.set_speed(hal::gpio::Speed::VeryHigh);
|
|
||||||
|
|
||||||
let config = hal::spi::Config::new(hal::spi::Mode {
|
|
||||||
polarity: hal::spi::Polarity::IdleHigh,
|
|
||||||
phase: hal::spi::Phase::CaptureOnSecondTransition,
|
|
||||||
});
|
|
||||||
|
|
||||||
// The maximum frequency of this SPI must be limited due to capacitance on the MISO
|
|
||||||
// line causing a long RC decay.
|
|
||||||
device.SPI1.spi(
|
|
||||||
(spi_sck, spi_miso, spi_mosi),
|
|
||||||
config,
|
|
||||||
5.mhz(),
|
|
||||||
ccdr.peripheral.SPI1,
|
|
||||||
&ccdr.clocks,
|
|
||||||
)
|
|
||||||
};
|
|
||||||
|
|
||||||
let (adc1, adc2) = {
|
|
||||||
let (mut adc1, mut adc2) = hal::adc::adc12(
|
|
||||||
device.ADC1,
|
|
||||||
device.ADC2,
|
|
||||||
&mut delay,
|
|
||||||
ccdr.peripheral.ADC12,
|
|
||||||
&ccdr.clocks,
|
|
||||||
);
|
|
||||||
|
|
||||||
let adc1 = {
|
|
||||||
adc1.calibrate();
|
|
||||||
adc1.enable()
|
|
||||||
};
|
|
||||||
|
|
||||||
let adc2 = {
|
|
||||||
adc2.calibrate();
|
|
||||||
adc2.enable()
|
|
||||||
};
|
|
||||||
|
|
||||||
(adc1, adc2)
|
|
||||||
};
|
|
||||||
|
|
||||||
let adc1_in_p = gpiof.pf11.into_analog();
|
|
||||||
let adc2_in_p = gpiof.pf14.into_analog();
|
|
||||||
|
|
||||||
let pounder_devices = pounder::PounderDevices::new(
|
|
||||||
io_expander,
|
|
||||||
spi,
|
|
||||||
adc1,
|
|
||||||
adc2,
|
|
||||||
adc1_in_p,
|
|
||||||
adc2_in_p,
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
let dds_output = {
|
let dds_output = {
|
||||||
let io_update_trigger = {
|
let io_update_trigger = {
|
||||||
let _io_update = gpiog
|
let _io_update = gpiog
|
||||||
|
|
Loading…
Reference in New Issue