灵动微MM32F103单片机常见问题解答
0赞灵动微MM32F103系列产品使用高性能内核M3的 32 位微控制器,典型工作频率可达144MHZ,内置高速存储器,丰富的增强型 I/O 端口和外设连接到外部总线。提供5种封装形式,包括 LQFP100、LQFP64、LQFP48、LQFP32 和 QFN32 共 5 种封装形式。根据不同的封装形式,器件中的外设配置不尽相同。该产品适合使用在电机驱动和应用控制,医疗和手持设备,工业应用以及警报系统等。下面英尚微代理商解答关于MM32F103产品中的一些常见问题。
SPI
1 、SPI 支持哪几种模式
按传输方向分
1) 全双工模式,同时收发数据,同时使能 TX 和 RX;
2) 半双工,在不同时间段进行读写,ENABLE TX 时 DISABLE RX,ENABLE RX 时 DISABLE TX;
按采样时序分
1) 模式 0,空闲时时钟为低,第一个时钟沿采样;
2) 模式 1,空闲时时钟为低,第二个时钟沿采样;
3) 模式 2,空闲时时钟为高,第一个时钟沿采样;
4) 模式 3,空闲时时钟为高,第二个时钟沿采样;
2 、SPI 主机通信不正常有哪些原因
常见原因:
1) 配置不正确,表现为无时钟输出;
2) 模式配置不正确,表现为采样点与预期不一致(SPI_CCTL bit0 = 0 为第二个时钟沿采样);
3) 速度配置过快,表现为波形异常;
4) 数据位数配置与 device 不一致,表现为 CLK 个数不对.
5) CS 信号不正确,表现为 CS 信号与 device 时序不对应;
Vbat 的电源接入有什么要求;
如果在应用中没有外部电池, 建议 VBAT 在外部通过一个 100nF 的陶瓷电容与 VDD 相连. 如外接为电池,为保证不损坏,建议在外部 VBAT 和电源之间连接一个低压降二极管。如无外接电池,即使不用 RTC 功能,也需要给 VBAT 供电;
KEIL 例程编译失败可能导致的原因
常见原因:
1) 没有安装 keil4 的兼容包,软件名称为:MDKCM516_legacySupportMDK4(出问题最多)
2) 移动了 keil 工程文件,导致无法找到相对路径的文件
3) 程序太大,超过 FLASH 或者SRAM容量
解决办法
针对 1 和 2 的问题,将 BOOT0 和 BOOT1 接到高电平,复位或者重新上电一下,然后再读 ID。若能读到 ID,则在此模式下擦除程序,然后再将 BOOT0 和 BOOT1 接低电平,这时候 ID 就能读到了。
KEIL 程序编译通过了,可是下载程序失败
常见原因:
1) 硬件电路没有接好,查看 debug 工具是否连接上板子中的 JTAG 或者 SWD,能否读到芯片IDCODE。
2) 若是 Debug 工具能读到芯片 ID,但是无法下载,原因是没有选择 Description 型号,具体配置选择如下图所示。
外部高速时钟接法
外部无源晶振电路如下图所示,晶振两脚接约 22pf 电容,并上 1M 反馈电阻。因芯片内部没有集成反馈电阻,为保证 XTAL 起振,必须接 1M 欧姆电阻;
外部时钟异常常见原因
运行程序通常用到外部高速时钟做系统时钟源,有时候在调试中会遇到系统时钟异常导致程序停止运行,以下列出几点可能的原因:
1) 外部晶振未加反馈电阻,导致外部无稳定时钟输入;
2) 外部晶振范围 8~24MHz;
3) 晶振与芯片引脚间断路;
4) 晶振质量问题导致,不正常起振;
5) 芯片系统时钟配置过程错误等等