@@ -6,8 +6,8 @@ use embassy_embedded_hal::shared_bus::asynch::spi::SpiDevice;
66use embassy_executor:: Spawner ;
77
88use esp_hal:: {
9- gpio:: { Input , Level , Output , Pull } ,
10- peripherals:: Peripherals ,
9+ gpio:: { AnyPin , Input , Level , Output , Pull } ,
10+ peripherals:: { Peripherals , DMA , SPI2 , TIMG0 , UART0 } ,
1111 prelude:: * ,
1212 timer:: timg:: TimerGroup ,
1313 uart:: { Config , Uart } ,
@@ -18,23 +18,61 @@ use esp_backtrace as _;
1818
1919use stack_ripper:: { gps, lora, spi} ;
2020
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+ }
58+
2159#[ main]
2260async fn main ( _spawner : Spawner ) -> ( ) {
2361 info ! ( "Initializing" ) ;
2462
2563 let peripherals: Peripherals = esp_hal:: init ( esp_hal:: Config :: default ( ) ) ;
26- let timg0 = TimerGroup :: new ( peripherals. TIMG0 ) ;
64+
65+ let pins = get_tx_pins_v003 ( peripherals) ;
66+
67+ let timg0 = TimerGroup :: new ( pins. timg ) ;
2768
2869 esp_hal_embassy:: init ( timg0. timer0 ) ;
2970
3071 info ! ( "Initializing compete" ) ;
3172
3273 // Setup UART for GPS
33- let rx_pin = peripherals. GPIO8 . degrade ( ) ;
34- let tx_pin = peripherals. GPIO7 . degrade ( ) ;
35-
3674 let uart_config = Config :: default ( ) . baudrate ( 9600 ) ;
37- let uart = Uart :: new_with_config ( peripherals . UART0 , uart_config, rx_pin , tx_pin )
75+ let uart = Uart :: new_with_config ( pins . uart , uart_config, pins . uart_rx , pins . uart_tx )
3876 . unwrap ( )
3977 . into_async ( ) ;
4078
@@ -45,23 +83,20 @@ async fn main(_spawner: Spawner) -> () {
4583 _spawner. spawn ( gps:: sample_uart ( rx) ) . unwrap ( ) ;
4684
4785 // Setup SPI bus
48- let spi_clock = peripherals. GPIO20 . degrade ( ) ;
49- let spi_miso = peripherals. GPIO21 . degrade ( ) ;
50- let spi_mosi = peripherals. GPIO1 . degrade ( ) ;
5186
5287 let spi_bus = spi:: init (
53- peripherals . DMA ,
54- peripherals . SPI2 ,
55- spi_clock ,
56- spi_mosi ,
57- spi_miso ,
88+ pins . dma ,
89+ pins . spi ,
90+ pins . lora_clk ,
91+ pins . lora_mosi ,
92+ pins . lora_miso ,
5893 ) ;
5994
60- let lora_spi_csb = Output :: new ( peripherals . GPIO0 . degrade ( ) , Level :: High ) ;
95+ let lora_spi_csb = Output :: new ( pins . lora_nss , Level :: High ) ;
6196 let lora_spi = SpiDevice :: new ( spi_bus, lora_spi_csb) ;
6297
63- let lora_rst = Output :: new ( peripherals . GPIO10 . degrade ( ) , Level :: High ) ;
64- let lora_irq = Input :: new ( peripherals . GPIO2 . degrade ( ) , Pull :: Up ) ;
98+ let lora_rst = Output :: new ( pins . lora_rst , Level :: High ) ;
99+ let lora_irq = Input :: new ( pins . lora_irq , Pull :: Up ) ;
65100
66101 _spawner
67102 . spawn ( lora:: transmit ( lora_spi, lora_irq, lora_rst) )
0 commit comments