2017-04-05 01:40 PM - last edited on 2023-08-16 02:37 AM by Amelie ACKERMANN
Posted on April 05, 2017 at 22:40
LoRa Discovery Kit
STM32L072 and LoRa Discovery Kit featuring Open LoRa module by Murata using STM32L072CZY6TR MCU
http://www.st.com/en/evaluation-tools/b-l072z-lrwan1.html
Features
The AT_Slave example (creates AT modem via ST-LINK VCP) is about 41KB in size
2017-04-05 01:45 PM
Posted on April 05, 2017 at 22:45
Murata datasheet for product
http://wireless.murata.com/RFM/data/type_abz.pdf
Pin usage analysis
CMWX1ZZABZ-091 (MURATA LORA)
1 PA12/USB_DP
2 PA11/USB_DM
3 GND
4 VDD_USB
5 VDD_MCU
6 VDD_RF
7 GND
8 PB4/DBG_SX1276_DIO2
9 PC13/DBG_SX1276_DIO3
10 PA5/DBG_SX1276_DIO4 ?? UNUSED
11 PA4/DBG_SX1276_DIO5 ?? UNUSED
12 PB1/DBG_SX1276_DIO1
13 PB4/DBG_SX1276_DIO0
14 PB15/SPI2_MOSI
15 PB14/SPI2_MISO
16 PB13/SPI2_SCK
17 PB12/SPI2_NSS
18 PA10/USART1_RX
19 PA9/USART1_TX
20 PA8/MCO
21 PA5/ADC5/DAC2
22 PA4/ADC4/DAC1
23 PA3/ADC3/LPUART1_RX/USART2_RX
24 PA2/ADC2/LPUART1_TX/USART2_TX
25 GND
26 ANT
27 GND
28 PA1/DBG_CRF1 (ANT_SWITCH_RX)
29 PC1/DBG_CRF3 (ANT_SWITCH_TX_BOOST)
30 PC2/DBG_CRF2 (ANT_SWITCH_TX_RFO)
31 STSAFE_NRST
32 VREF+
33 PA0/WKUP1/UART4_TX
34 MCU_NRST
35 PB8/I2C1_SCL
36 PB9/I2C1_SDA
37 PB2/LPTIM1_OUT
38 PB7/LPTIM1_IN2/USART1_RX/I2C1_SDA
39 PB6/LPTIM1_ETR/USART1_TX/I2C1_SCL
40 PB5/LPTIM1_IN1
41 PA13/SWDIO/LPUART1_RX
42 PA14/SWCLK/LPUART1_TX
43 BOOT0
44 GND
45 PH1/OSC_OUT
46 PH0/OSC_IN
47 TCXO_OUT
48 VDD_TCXO
49 GND
..
57 GND
WLCSP49
1 A1 VDD_USB
2 A2 PA15 RASIO_NSS
3 A3 PB3 RADIO_SCK
4 A4 PB5 LPTIM1_IN1
5 A5 BOOT0
6 A6 PB9 I2C1_SDA
7 A7 VDD
8 B1 PA12 USB_DP RADIO_TCXO_VCC ??
9 B2 PA14 SWCLK
10 B3 PB4 RADIO_DIO_0
11 B4 PB6 LPTIM1_ETR
12 B5 PB8 I2C1_SCL
13 B6 VDD
14 B7 PC13 RADIO_DIO_3
15 C1 PA10 USART1_RX
16 C2 PA13 SWDIO
17 C3 PB7 LPTIM1_IN2
18 C4 PC1 RADIO_ANY_SWITCH_TX_BOOST (CRF3)
19 C5 PC0 RADIO_RESET
20 C6 PC14 OSC32_IN
21 C7 PC15 OSC32_OUT
22 D1 PA8 MSO
23 D2 PA11 USB_DM
24 D3 PB1 RADIO_DIO_1
25 D4 VSS
26 D5 NRST
27 D6 PH0 OSC_IN
28 D7 PH1 OSC_OUT
29 E1 PB15 SPI2_MOSI
30 E2 PA9 USART1_TX
31 E3 PB2 LPTIM1_OUT
32 E4 PA1 RADIO_ANT_SWITCH_RX (CRF1)
33 E5 PA0 WKUP1
34 E6 VREF+
35 E7 PC2 RADIO_ANT_SWITCH_TX_RFO (CRF2)
36 F1 PB14 SPI2_MISO
37 F2 PB13 SPI2_SCK
38 F3 PB11 ?? I2C2_SCL
39 F4 PA7 RADIO_MOSI
40 F5 PA4 RADIO_DIO_5
41 F6 PA2 ADC2/LPUART1_TX
42 F7 VDDA
43 G1 PB12 SPI2_NSS
44 G2 VDD
45 G3 PB10 ?? I2C2_SDA
46 G4 PB0 RADIO_DIO_2
47 G5 PA6 RADIO_MISO
48 G6 PA5 RADIO_DIO_4
49 G7 PA3 ADC2/LPUART1_TX �?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?
Edit: Original post from 5-Apr-2017, fixing the pin table that the forum translation ate.
2017-04-09 04:39 PM
In order to evaluate the range I built two nodes, one which pings location every second from a GPS shield, and a second that receives that data from a fixed antenna.
2017-04-11 01:17 PM
So with a relatively low effort test (used good antennas, but didn't clamber up towers or onto the roof), I got fixes out to 3000ft (915m)
This was with the 14dBm (25mW) TX_OUTPUT_POWER setting. With a better antenna and placement on the vehicle the line of sight was 1.77miles (2850m). The next build of the software I'll try the 20dBm (100mW) setting.
The range for the Murata module is 5-20 dBm (3-100mW)
2017-04-14 06:54 PM
I've had to rewrite the USART interrupt code, thevcom_Print() function implementing the FIFO on the PingPong demo uses some brain-damaged HAL code that BLOCKS!! It blocks other interrupts until the entire pending buffer is cleared, which means other interrupts have to preempt to function, rather than the IRQ Handler just sending the one character the transmitter will take.
2017-04-18 10:17 AM
The radio interrupt also causes significant blocking and data loss on the USART side, had to ease the radio off the highest priority, allowing the quick/simple USART IRQ Handler to do it's job and leave immediately. KISS
The radio code also seems to have issues with queuing transmission or splitting large packets. The main() loop needs some attention, as the Rx blocks Tx, so when wanting to chain a number of packets for transmission it is best to check the radio is idle rather than assume Tx complete, error and timeout paths will play happily. Needs to be a method for Tx to preempt a pending Rx window.
Breaking data into 64-byte LoRa packets seems to be effective to send transient data (ie send-and-pray, new fresh data arriving daily..)
2017-05-03 10:33 AM
Mouser is back ordered into July
http://www.mouser.com/ProductDetail/STMicroelectronics/B-L072Z-LRWAN1
DigiKey also
https://www.digikey.com/product-detail/en/stmicroelectronics/B-L072Z-LRWAN1/497-17068-ND/6616000
2017-07-16 06:55 AM
Mouser is back in stock today (16-June-2017), after shipping pending back-orders they look to have 478 in stock.
2017-08-03 08:22 AM
Frustrations-de-jour
The TCXO clock require SB13 to be made, the HSE_VALUE in stm32l0xx_hal_conf.h needs to be changed to 32000000
The comments in mlm32l0xx_hw.c are wrong, it doesn't use HSE.
The HAL does not appear to correctly use RCC_HSE_BYPASS, seems to get stuck in spin-loops because it is neither RCC_HSE_ON or RCC_HSE_OFF
2017-08-04 01:44 PM
The TCXO is on all the time, code still present delaying for on and off, transitions to sleep, and back-to-back reception. Net result dead zones between Rx where Tx from another node are missed.
Think there are systemic issues with decomposition of large data blocks in smaller blocks for transmission.