Skip to content

Commit 87f8db4

Browse files
committed
bringup w/ tx v003
1 parent 1248f2b commit 87f8db4

5 files changed

Lines changed: 125 additions & 83 deletions

File tree

src/bin/rx.rs

Lines changed: 6 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -8,43 +8,12 @@ use embassy_executor::Spawner;
88
use embassy_time::Timer;
99
use esp_backtrace as _;
1010
use esp_hal::{
11-
gpio::{AnyPin, Input, Level, Output, Pin, Pull},
12-
peripherals::{Peripherals, DMA, SPI2, TIMG0},
11+
gpio::{Input, Level, Output, Pull},
12+
peripherals::Peripherals,
1313
timer::timg::TimerGroup,
1414
};
1515

16-
use stack_ripper::{lora, spi, state};
17-
18-
struct RxPins {
19-
20-
lora_rst: AnyPin,
21-
lora_irq: AnyPin,
22-
23-
lora_nss: AnyPin,
24-
lora_mosi: AnyPin,
25-
lora_miso: AnyPin,
26-
lora_clk: AnyPin,
27-
28-
timg: TIMG0,
29-
dma: DMA,
30-
spi: SPI2,
31-
}
32-
33-
fn get_rx_pins_v001(p: Peripherals) -> RxPins {
34-
RxPins {
35-
lora_rst: p.GPIO6.degrade(),
36-
lora_irq: p.GPIO5.degrade(),
37-
38-
lora_nss: p.GPIO1.degrade(),
39-
lora_clk: p.GPIO4.degrade(),
40-
lora_miso: p.GPIO3.degrade(),
41-
lora_mosi: p.GPIO2.degrade(),
42-
43-
timg: p.TIMG0,
44-
dma: p.DMA,
45-
spi: p.SPI2,
46-
}
47-
}
16+
use stack_ripper::{lora, pins, spi, state};
4817

4918
#[embassy_executor::task]
5019
async fn print_state() -> ! {
@@ -60,7 +29,8 @@ async fn main(spawner: Spawner) {
6029

6130
let peripherals: Peripherals = esp_hal::init(esp_hal::Config::default());
6231

63-
let pins = get_rx_pins_v001(peripherals);
32+
// let pins = pins::get_rx_pins_v001(peripherals);
33+
let pins = pins::get_tx_pins_v004_bread(peripherals);
6434

6535
let timg0 = TimerGroup::new(pins.timg);
6636

@@ -82,7 +52,7 @@ async fn main(spawner: Spawner) {
8252
let lora_spi = SpiDevice::new(spi_bus, lora_spi_csb);
8353

8454
let lora_rst = Output::new(pins.lora_rst, Level::High);
85-
let lora_irq = Input::new(pins.lora_irq.degrade(), Pull::Up);
55+
let lora_irq = Input::new(pins.lora_irq, Pull::None);
8656

8757
spawner
8858
.spawn(lora::receive(lora_spi, lora_irq, lora_rst))

src/bin/tx.rs

Lines changed: 6 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ use embassy_embedded_hal::shared_bus::asynch::spi::SpiDevice;
66
use embassy_executor::Spawner;
77

88
use esp_hal::{
9-
gpio::{AnyPin, Input, Level, Output, Pull},
10-
peripherals::{Peripherals, DMA, SPI2, TIMG0, UART0},
9+
gpio::{Input, Level, Output, Pull},
10+
peripherals::Peripherals,
1111
prelude::*,
1212
timer::timg::TimerGroup,
1313
uart::{Config, Uart},
@@ -16,53 +16,16 @@ use esp_hal::{
1616
use defmt::info;
1717
use esp_backtrace as _;
1818

19-
use stack_ripper::{gps, lora, spi};
20-
21-
struct TxPins {
22-
uart_rx: AnyPin,
23-
uart_tx: AnyPin,
24-
25-
lora_rst: AnyPin,
26-
lora_irq: AnyPin,
27-
28-
lora_nss: AnyPin,
29-
lora_mosi: AnyPin,
30-
lora_miso: AnyPin,
31-
lora_clk: AnyPin,
32-
33-
timg: TIMG0,
34-
uart: UART0,
35-
dma: DMA,
36-
spi: SPI2,
37-
}
38-
39-
fn get_tx_pins_v003(p: Peripherals) -> TxPins {
40-
TxPins {
41-
uart_rx: p.GPIO4.degrade(),
42-
uart_tx: p.GPIO5.degrade(),
43-
44-
lora_rst: p.GPIO6.degrade(),
45-
lora_irq: p.GPIO7.degrade(),
46-
47-
lora_nss: p.GPIO8.degrade(),
48-
lora_clk: p.GPIO21.degrade(),
49-
lora_miso: p.GPIO20.degrade(),
50-
lora_mosi: p.GPIO10.degrade(),
51-
52-
timg: p.TIMG0,
53-
uart: p.UART0,
54-
dma: p.DMA,
55-
spi: p.SPI2,
56-
}
57-
}
19+
use stack_ripper::{gps, lora, pins, spi};
5820

5921
#[main]
6022
async fn main(_spawner: Spawner) -> () {
6123
info!("Initializing");
6224

6325
let peripherals: Peripherals = esp_hal::init(esp_hal::Config::default());
6426

65-
let pins = get_tx_pins_v003(peripherals);
27+
// let pins = pins::get_tx_pins_v004_bread(peripherals);
28+
let pins = pins::get_tx_pins_v003(peripherals);
6629

6730
let timg0 = TimerGroup::new(pins.timg);
6831

@@ -83,7 +46,6 @@ async fn main(_spawner: Spawner) -> () {
8346
_spawner.spawn(gps::sample_uart(rx)).unwrap();
8447

8548
// Setup SPI bus
86-
8749
let spi_bus = spi::init(
8850
pins.dma,
8951
pins.spi,
@@ -96,7 +58,7 @@ async fn main(_spawner: Spawner) -> () {
9658
let lora_spi = SpiDevice::new(spi_bus, lora_spi_csb);
9759

9860
let lora_rst = Output::new(pins.lora_rst, Level::High);
99-
let lora_irq = Input::new(pins.lora_irq, Pull::Up);
61+
let lora_irq = Input::new(pins.lora_irq, Pull::Down);
10062

10163
_spawner
10264
.spawn(lora::transmit(lora_spi, lora_irq, lora_rst))

src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
#![no_main]
33
#![no_std]
44

5-
pub mod spi;
6-
75
pub mod gps;
86
pub mod lora;
7+
pub mod pins;
8+
pub mod spi;
99
pub mod state;

src/pins.rs

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
#![deny(unsafe_code)]
2+
3+
use esp_hal::{
4+
gpio::{AnyPin, Pin},
5+
peripherals::{Peripherals, DMA, SPI2, TIMG0, UART0},
6+
};
7+
8+
pub struct TxPins {
9+
pub uart_rx: AnyPin,
10+
pub uart_tx: AnyPin,
11+
12+
pub lora_rst: AnyPin,
13+
pub lora_irq: AnyPin,
14+
15+
pub lora_nss: AnyPin,
16+
pub lora_mosi: AnyPin,
17+
pub lora_miso: AnyPin,
18+
pub lora_clk: AnyPin,
19+
20+
pub timg: TIMG0,
21+
pub uart: UART0,
22+
pub dma: DMA,
23+
pub spi: SPI2,
24+
}
25+
26+
pub struct RxPins {
27+
pub lora_rst: AnyPin,
28+
pub lora_irq: AnyPin,
29+
30+
pub lora_nss: AnyPin,
31+
pub lora_mosi: AnyPin,
32+
pub lora_miso: AnyPin,
33+
pub lora_clk: AnyPin,
34+
35+
pub timg: TIMG0,
36+
pub dma: DMA,
37+
pub spi: SPI2,
38+
}
39+
40+
pub fn get_tx_pins_v003(p: Peripherals) -> TxPins {
41+
TxPins {
42+
uart_rx: p.GPIO4.degrade(),
43+
uart_tx: p.GPIO5.degrade(),
44+
45+
lora_rst: p.GPIO6.degrade(), // Yep
46+
lora_irq: p.GPIO7.degrade(), // Yep
47+
48+
lora_nss: p.GPIO8.degrade(), // Yep
49+
lora_clk: p.GPIO21.degrade(), // Yep
50+
lora_miso: p.GPIO20.degrade(), // Yep
51+
lora_mosi: p.GPIO10.degrade(), // Yep
52+
53+
timg: p.TIMG0,
54+
uart: p.UART0,
55+
dma: p.DMA,
56+
spi: p.SPI2,
57+
}
58+
}
59+
60+
pub fn get_tx_pins_v004_bread(p: Peripherals) -> TxPins {
61+
TxPins {
62+
uart_rx: p.GPIO4.degrade(),
63+
uart_tx: p.GPIO5.degrade(),
64+
65+
lora_rst: p.GPIO1.degrade(),
66+
lora_irq: p.GPIO8.degrade(),
67+
68+
lora_nss: p.GPIO9.degrade(),
69+
lora_clk: p.GPIO21.degrade(),
70+
lora_miso: p.GPIO20.degrade(),
71+
lora_mosi: p.GPIO10.degrade(),
72+
73+
timg: p.TIMG0,
74+
uart: p.UART0,
75+
dma: p.DMA,
76+
spi: p.SPI2,
77+
}
78+
}
79+
80+
pub fn get_rx_pins_og(p: Peripherals) -> RxPins {
81+
RxPins {
82+
lora_rst: p.GPIO6.degrade(),
83+
lora_irq: p.GPIO5.degrade(),
84+
85+
lora_nss: p.GPIO1.degrade(),
86+
lora_clk: p.GPIO4.degrade(),
87+
lora_miso: p.GPIO3.degrade(),
88+
lora_mosi: p.GPIO2.degrade(),
89+
90+
timg: p.TIMG0,
91+
dma: p.DMA,
92+
spi: p.SPI2,
93+
}
94+
}
95+
96+
pub fn get_rx_pins_v001(p: Peripherals) -> RxPins {
97+
RxPins {
98+
lora_rst: p.GPIO6.degrade(), // Yep, 6 => RST
99+
lora_irq: p.GPIO5.degrade(), // Yep, 5 => DIO0
100+
101+
lora_nss: p.GPIO1.degrade(), // Yep, 1 => NSS
102+
lora_clk: p.GPIO4.degrade(), // Yep, 4 => CLK
103+
lora_miso: p.GPIO3.degrade(), // Yes, 3 => MISO
104+
lora_mosi: p.GPIO2.degrade(), // Yes, 2 => MOSI
105+
106+
timg: p.TIMG0,
107+
dma: p.DMA,
108+
spi: p.SPI2,
109+
}
110+
}

src/spi.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ pub fn init(
3131
let dma_tx_buf = DmaTxBuf::new(tx_descriptors, tx_buffer).unwrap();
3232

3333
let spi_config = Config {
34-
frequency: 200.kHz(),
34+
frequency: 40.kHz(),
3535
mode: SpiMode::Mode0,
3636
..Config::default()
3737
};

0 commit comments

Comments
 (0)