本章介绍在iTOP-6818开发板最小linux系统上测试lora模块的步骤,非设备树系统可参考此文档,需要的资料在网盘“iTOP-6818-lora模块测试例程”文件夹内。本章需要的资料包在网盘“iTOP6818 开发板资料汇总(不含光盘内容) \09_iTOP-6818 开发板最小 linux_Qt_Ubuntu 扩展文档\lora模块测试” 下载。 1 硬件连接测试中使用两块iTOP-6818开发板通信,将lora模块分别插在两个开发板的GPIO/CAN/485扩展口,如下图: 2 添加设备进到源码目录,执行命令“vi kernel/arch/arm/plat-s5p6818/topeet/device.c”打开文件,以rc522为基准 添加lora模块。 搜索rc522,在后面添加如下内容: #ifdef CONFIG_SPI_SX127X static struct spi_board_info sx127x_plat_board[] __initdata = { [0] = { .modalias = "sx127x", .platform_data = NULL, .controller_data = &spi2_csi[1], .max_speed_hz = 400*1000, .bus_num = 2, .chip_select = 0, .mode = 0, }, }; #endif 添加完后如下图: 然后搜索“spi2_csi”数组,找到后添加宏定义判断 || defined(CONFIG_SPI_SX127X) 在spi2_csi数组内添加如下内容: [1]= { .line = CFG_SPI2_COM_MODE, .set_level = gpio_set_value, .fb_delay = 0x2, .hierarchy = SSP_MASTER, }, 完成后如下图: 继续搜索rc522,添加如下内容: #if defined(CONFIG_SPI_SX127X) spi_register_board_info(sx127x_plat_board,ARRAY_SIZE(sx127x_plat_board)); printk("plat: register sx127x\n"); #endif 添加完成后如下图: 保存后退出。 输入命令“vi kernel/arch/arm/plat-s5p6818/topeet/include/cfg_main.h”,修改成如下所示: 到此lora模块的设备注册信息添加完成。 3 添加驱动进入源码的kernel/drivers/spi/路径下,将资料包中的lora模块驱动复制到此路径,如下图: 执行vi Makefile修改文件,在末尾添加以下信息: obj-$(CONFIG_SPI_SX127X) += sx127x.o 完成后如下图: 执行vi Kconfig修改文件,搜索rc522,添加如下内容: config SPI_SX127X tristate "SX127X Module driver support" depends on EXPERIMENTAL help This supports SX127X Module drivers. 完成后如下图: 完成后保存退出,进入源码的kernel目录,执行”cp config_for_iTOP6818_linux .config”拷贝内核配置文件,执行“make ARCH=arm menuconfig”配置菜单选项, Device Drivers -> SPI support (SPI [=y]) 选择“SX127X Module driver support”,取消选择“RC522 Module driver support”,如下图所示。 保存退出,回到源码目录编译qt镜像。编译完成后将镜像烧写到开发板。 4.5.4 测试将网盘“iTOP-6818-lora模块测试例程”文件夹内的lora_test拷贝到开发板,进到lora_test目录,发送端执行“./lorasend1 1 &”每隔30秒发送出一次100,并且打印出版本号为18,然后执行“./lorasend2 1 &”每隔30秒发送出一次200,如下图: 然后在另一个开发板执行接收程序“./lorares 0”,接收到发送方的id和发送内容,如下图: 数据正常说明通信成功。
|