[OpenCPU开发](一)中移ML307A模组资源

文件目录

名称

描述

custom

用户代码目录、用户程序入口

docs

文档

examples

示例代码

include

OpenCPU API 头文件

out

编译输出目录

prebuild

预编译文件

third-party

第三方开源代码库

tools

编译工具脚本

SDK特征

编译环境

OpenCPU SDK开发包自带编译必需工具,使用前解压开发包至任意非中文路径下即可完成编译环境搭建。请注意解压路径不能包含中文、空格及“&”符号。

备忘

ML307A模组简介

规格

总结:了解产品能够支持的硬件接口

软件系统架构

软件系统架构图分为三层设计,从上至下分别为OC-1层、OC-2层、OC-3层。

OC-1层为运用层,包含面向用户的开发使用的APP层和EXAMPLE示例,示例展示了外设、网络、通信等各个模块的使用示例,供开发者参考;APP则是预留给用户的运用层代码实现的接口,便于用户自行设计相关运用层程序。

OC-2层为lib层,包含预置文件库,开放的第三方库(用户也可以自行移植第三方库),驱动头文件和平台接口,供开发者调用。

OC-3层为OS(Operating system)层,对应模组的操作系统,开发者在上层运用开发时,需要对相应的OS系统有一定的了解。

硬件系统架构图

模组硬件系统主要采用 BaseBand + PMU + RF架构

硬件设计相关说明

ML307A参考设计可查找 《ML307A硬件设计手册》、《ML307A参考设计》


备注:

1.不用的引脚和RESERVED引脚悬空,所有GND引脚连接到地网络上。

2.在模块开机成功前,禁止将BOOT_MODE引脚下拉到低电平。

3.建议MCU与模块间USB通信串联共模电感以滤除EMI干扰,电感尽量靠近模块侧放置。同时预留USB升级测试点,且分支走线尽量短,两个电阻均靠近模块的USB接口,以保证USB通路的信号完整性。

4.VBAT输入电压范围为3.4-4.5V

5.ADC检测的输入电压范围为0-1.2


系统资源简介

ML307A引脚资源复用

在使用之前需要先确认引脚的功能,需要特别注意两个不同引脚不能同时复用为同一功能,建议在开发之前就先确定好引脚的功能,每个引脚只能复用为一种功能,不要在使用过程中随意更改引脚的复用功能。

例:GPIO口配置

详见引脚资源及复用功能表

引脚名

引脚号

OpenCPU复用功能1

OpenCPU复用功能2

OpenCPU复用功能3

备注

GND

1

GND

-

-

-

RSV

2

-

-

-

-

ANT_GNSS

2

-

-

-

-

MIC_P

3

MIC_P

-

-

无需IOMUX配置

MIC_N

4

MIC_N

-

-

无需IOMUX配置

SPK_P

5

SPK_P

-

-

无需IOMUX配置

SPK_N

6

SPK_N

-

-

无需IOMUX配置

PWR_ON/OFF

7

PWR_ON/OFF

-

-

无需IOMUX配置

VCC_CAMA

8

VCC_CAMA

-

-

无需IOMUX配置

ADC0

9

ADC0

-

-

无需IOMUX配置

GND

10

GND

-

-

无需IOMUX配置

SIM0_DATA

11

SIM0_DATA

-

-

无需IOMUX配置

SIM0_RST

12

SIM0_RST

-

-

无需IOMUX配置

SIM0_CLK

13

SIM0_CLK

-

-

无需IOMUX配置

SIM0_VCC

14

SIM0_VCC

-

-

无需IOMUX配置

RESET

15

RESET

-

-

无需IOMUX配置

GPIO0

16

GPIO0

-

-

-

UART0_RXD

17

UART0_RXD

MMCO_DATA3

-

-

UART0_TXD

18

UART0_TXD

MMCO_DATA2

-

-

UART0_DTR

19

UART0_DTR

MMCO_CLK

-

-

UART0_RI

20

UART0_RI

MMCO_CMD

-

-

UART0_DCD

21

UART0_DCD

PWM2

-

-

UART0_CTS

22

UART0_CTS

MMCO_DATA0

-

-

UART0_RTS

23

UART0_RTS

MMCO_DATA1

-

-

VDD_EXT

24

VDD_EXT

-

-

无需IOMUX配置

GPIO1

25

GPIO1

-

-

-

RSV

26

RSV

-

-

-

GND

27

GND

-

-

-

UART1_RXD

28

UART1_RXD

KEYIN3

GPIO22

-

UART1_TXD

29

UART1_TXD

KEYOUT3

GPIO23

-

PCM_CLK

30

PCM_CLK

SPI1_CLK

-

-

PCM_SYNC

31

PCM_SYNC

SPI1_CS

-

-

PCM_IN

32

PCM_IN

SPI1_MISO

-

-

PCM_OUT

33

PCM_OUT

SPI1_MOSI

-

-

GND

34

GND

-

-

-

ANT_MAIN

35

ANT_MAIN

-

-

-

GND

36

GND

-

-

-

GND

37

GND

-

-

-

DBG_RXD

38

DBG_RXD

-

-

无需IOMUX配置

DBG_TXD

39

DBG_TXD

-

-

无需IOMUX配置

GND

40

GND

-

-

-

GND

41

GND

-

-

-

VBAT

42

VBAT

-

-

-

VBAT

43

VBAT

-

-

-

RSV

44

RSV

-

-

-

GND

45

GND

-

-

-

GND

46

GND

-

-

-

GND

47

GND

-

-

-

GND

48

GND

-

-

-

LCD_RST

49

LCD_RST

GPIO2

-

IOMUX只能配置复用功能

LCD_RST

49

LCD_RST

GPIO2

-

IOMUX只能配置复用功能

LCD_SIO

50

LCD_SIO

GPIO3

UART2_TXD

-

LCD_SDC

51

LCD_SDC

GPIO4

UART2_RXD

-

LCD_CS

52

LCD_CS

IIC1_SDA

-

-

LCD_CLK

53

LCD_CLK

IIC1_SCL

-

-

CAM_REFCLK

54

CAM_REFCLK

GPIO5

-

-

CAM_SIO

55

CAM_SIO

GPIO6

-

-

CAM_SI1

56

CAM_SI1

GPIO7

-

-

IIC_CAM_SCL

57

IIC_CAM_SCL

GPIO8

-

-

IIC_CAM_SDA

58

IIC_CAM_SDA

GPIO9

-

-

USB_DP

59

USB_DP

-

-

无需IOMUX配置

USB_DM

60

USB_DM

-

-

无需IOMUX配置

USB_VBUS

61

USB_VBUS

-

-

无需IOMUX配置

SIM1_CLK

62

SIM1_CLK

-

-

无需IOMUX配置

SIM1_RST

63

SIM1_RST

-

-

无需IOMUX配置

SIM1_DATA

64

SIM1_DATA

-

-

无需IOMUX配置

SIM1_VCC

65

SIM1_VCC

-

-

无需IOMUX配置

IIC0_SDA

66

IIC0_SDA

-

-

-

IIC0_SCL

67

IIC0_SCL

-

-

-

SPI0_CLK

68

SPI0_CLK

GPIO10

-

-

SPI0_CS

69

SPI0_CS

GPIO11

-

-

GND

70

GND

-

-

-

GND

71

GND

-

-

-

GND

72

GND

-

-

-

GND

73

GND

-

-

-

PWM0

74

PWM0

IIC2_SDA

KEYOUT4

-

PWM1

75

PWM1

IIC2_SCL

KEYIN4

-

KEYOUT0

76

KEYOUT0

GPIO12

-

-

KEYIN0

77

KEYIN0

GPIO13

-

-

LCD_FMARK

78

LCD_FMARK

GPIO14

-

-

SIM0_DET

79

SIM0_DET

-

-

无需IOMUX配置

CAM_SCK

80

CAM_SCK

GPIO15

-

-

CAM_PWDN

81

CAM_PWDN

GPIO16

-

IOMUX只能配置复用功能2,CAM_PWDN需用GPIO16模拟此功能。

BOOT_MODE

82

BOOT_MODE/KEYOUT1

-

-

无需IOMUX配置

KEYIN1

83

KEYIN1

GPIO17

-

-

SPI0_MISO

84

SPI0_MISO

GPIO18

-

-

SPI0_MOSI

85

SPI0_MOSI

GPIO19

-

-

KEYOUT2

86

KEYOUT2

GPIO20

-

-

KEYIN2

87

KEYIN2

GPIO21

-

-

GND

88

GND

-

-

-

GND

89

GND

-

-

-

GND

90

GND

-

-

-

GND

91

GND

-

-

-

GND

92

GND

-

-

-

GND

93

GND

-

-

-

GND

94

GND

-

-

-

307A外设资源

类型

最大组数

说明

UART

4

存在引脚复用,包含log专用的uart口。

IIC

3

主模式

GPIO

24

与引脚名一致,存在复用的情况。

KEYPAD

5 × 5

5 × 5的键盘,存在复用情况。

PWM

3

存在复用情况

SPI

2

主模式

参考资源链接:[深入探讨中ML307R串口通信实验](https://wenku.csdn.net/doc/7mhrv8kshu?utm_source=wenku_answer2doc_content) 为了帮助您掌握使用中ML307R模块进行串口通信的数据收发操作,我推荐您参考《深入探讨中ML307R串口通信实验》这本书。该资源详细讲解了使用OPENCPU SDK进行串口编程的步骤和技巧,能够为您提供从初始化到数据处理的全面指导。 首先,您需要在OPENCPU SDK环境下进行环境配置和初始化设置。中ML307R模块的串口通信依赖于UART接口,您需要根据实际应用场景选择合适的串口号,并设置正确的波特率、数据位、停止位和校验位。 接下来,编写数据发送函数。您可以利用OPENCPU SDK提供的API函数来构建数据包,并通过串口发送。要注意的是,发送操作可能需要异步处理,以避免阻塞主线程。在发送大量数据时,可以考虑使用缓冲区管理机制,以提高发送效率。 在数据接收方面,有两种主流的方式:中断处理和轮询。中断方式通常响应更快,但需要编写中断服务程序来处理数据;而轮询方式则简单直观,适用于数据量较小或实时性要求不高的场景。无论采用哪种方式,都需要注意数据的完整性,以及在接收到数据后及时处理。 此外,您还需要实现错误处理机制,如通信超时、数据校验失败等情况,确保通信过程的稳定性。最后,通过实验验证来确保数据能够准确无误地发送和接收。 通过以上的步骤和操作,您可以实现基于中ML307R模块的高效稳定的串口通信。如果希望进步深入学习,继续探索物联网开发的更多可能性,《深入探讨中ML307R串口通信实验》将是您不可多得的参考资料。 参考资源链接:[深入探讨中ML307R串口通信实验](https://wenku.csdn.net/doc/7mhrv8kshu?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值