1. AEK-COM-GNSST31介紹
AEK-COM-GNSST31是一款基於Teseo-LIV3F GNSS模塊的評估板,基於經過認證的Teseo-LIV3F全球導航衛星系統(GNSS)模塊,其中嵌入了TeseoIII單片獨立定位接收IC。小巧、便宜、易於開發是該產品的特點,該評估板與X-CUBE-GNSS1固件一起使用,提供必要的採集、跟蹤、導航和數據輸出功能,無需外部內存支持。也可以方便地與SPC5連接用於汽車應用開發的MCU,作為AutoDevKit™計劃的一部分
2.核心模組Teseo-LIV3F
AEK-COM-GNSST31的核心是Teseo-LIV3F,Teseo-LIV3F模塊是一個易於使用的全局模塊衛星導航系統(GNSS)獨立模塊,嵌入Teseo III單模,除必要的power supply、RF和天線ANT管理外,它與主控MCU通信採用I2C或UART接口。兩種接口均支持GNSS NMEA協議。
X-CUBE-GNSS1固件運行在STM32上,包括用於Teseo-LIV3F全球導航衛星系統(GNSS)設備的驅動程序、用於支持NMEA協議的中間件和用於任務調度的FreeRTOS,以確保更好的異步消息解析,當連接到NUCLEO-F401RE, NUCLEO-L476RG,或NUCLEO-L073RZ板時,該軟體帶有運行在AEK-COM-GNSST3擴展板上的驅動程序的示例實現。
本方案基於AEK-COM-GNSST31和NUCLEO-F401RE開發板,實現在標準NMEA協議下,主MCU與GNSS模塊之間通過I2C實現信息交互
I2C定位傳感器是一個平台解決方案,可實現Teseo-LIV3F標準固件。
3.1硬體準備
- AEK-COM-GNSST31評估板
- NUCLEO-F401RE 開發板
- USB-microUSB數據線用於評估板和PC連接
- 3.2軟體準備
- TESEO-SUITE
- STM32CUBE-MX
- Atollic-TRUE Studio
3.3通過TESEO SUITE PC工具配置Teseo-LIV3F
①如所示,通過morpho將AEK-COM-GNSST31連接到NUCLEO-F401RE頂部
安裝STM32固件
Select Tool->X-NUCLEO-GNSS1A1
The X-NUCLEO-GNSS1A1面板出現
點擊Update my STM32-NUCLEO board for X-NUCLEO-GNSS
The STM32 X-Nucleo-GNSS 面板顯現
Select the firmware
STM32_Nucleo64-F401RE_UARTBridde.bin
Push the Upload button
②打開TESEO-SUITE PC Tool,使能 UART/COM connection against the NUCLEO-F401RE,使用TESEO-SUITE上的NMEA解碼面板發送如下指令
$PSTMCFGMSGL,3,1,0,0
$PSTMSETPAR,1227,1,2
$PSTMSAVEPAR
這些命令會:清空I2C消息列表,關閉eco-ing信息以及將配置保存在flash中
3.4配置NUCLEO-F401RE I2C
按如下圖示在STM32CUBEMX中配置I2C外設功能,並生成工程
Enable the I2C-1 bus on NUCLEO-F401RE
Configure the Blue-Button as GPIO_EXTI13
In the configuration TAB press the NVIC button to configure the NVIC
Enable the Blue-Button (EXTI-interrupts) and confirm the configuration pressing the OK button
Enable the USART-2 to enable communication between STM32 and the Terminal-Console running on PC
Configure the USART-2
配置完成,生成C代碼
3.5軟體實現
通過以上對STM32Cube-MX的配置,生成了所需架構的C代碼包括:
I2C總線,UART和PC機通信以及藍色按鈕作為中斷按鍵功能
增加代碼以下代碼,使PC機顯示列印信息
void Console_Write(uint8_t *string){
HAL_UART_Transmit(&huart2, string, strlen((char *)string), 1000);
}
增加藍色按鍵回調函數功能
static volatile _read = 0;
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){
_read = 1;
}
定義NMEA命令相關變量
static const char *gpgll_msg = "$PSTMNMEAREQUEST,100000,0\n\r";
主函數代碼
1 while (1) {
2 HAL_I2C_DeInit(&hi2c1);
3 HAL_I2C_Init(&hi2c1);
AN5203 Rev 2 17/23
AN5203 Finalize the C-Code in the project
22
4 if (_read == 1) {
5 _read = 0;
6 Console_Write("Sending commands...");
7 HAL_I2C_Master_Transmit(&hi2c1, 0x3A << 1, (uint8_t
*)gpgll_msg, strlen(gpgll_msg), 2000);
8 Console_Write(" got:... \r\n");
9 for (read_buf[180-1] = 0; read_buf[180-1] != 0xff;) {
10 HAL_I2C_Master_Receive(&hi2c1, 0x3A << 1, read_buf, 180,
2000);
11 for (i = 0; i < 180; ++i)
12 if (read_buf[i] != 0xff)
13 HAL_UART_Transmit(&huart2, &read_buf[i], 1, 1000);
14 }
15 Console_Write("\r\n");
16 }
17 }
Where in detail:
1. in line-4 the application waits the Blue-button event happens.
2. In line-7 the main-processor send to the Teseo-LIV3F on I2C-bus the
$PSTMNMEAREQUEST command to request a $GPGLL message
3. In line-10 the main processor read the data sent by Teseo-LIV3F on I2C-bus
4. In lines 11-13 the received data are sent on the PC-Terminal console
在終端機上演示結果
►場景應用圖
►展示板照片
►方案方塊圖
►核心技術優勢
Teseo-LIV3F模塊是一個易於使用的全局模塊衛星導航系統(GNSS)獨立模塊,支持多星定位,獨立定位接收機集成電路可在多個定位系統同時工作:伽利略/GPS / Glonass /北斗/ QZSS)。支持標準GNSS NMEA協議。
►方案規格
靈敏度:- 162dbm室內(跟蹤模式) 接口:UART和I²C埠 可配置的數字I/O時間脈衝 喚醒輸入 NMEA 協議 先進的GNSS: 自主預測 基於服務器的預測 基於服務器的實時 兼容SPC5 PowerPC 射頻路徑上的LNA和SAW濾波器 SMA母天線連接器 配備電池座 高度緊湊的設計:70 x 65毫米 工作電源電壓:3.3 - 5v 環境溫度:-40/+85°C AutoDevKit™計劃的一部分 符合RoHS和WEEE標準