灵动微MM32F103系列产品使用高性能内核M3的 32 位微控制器,典型工作频率可达144MHZ,内置高速存储器,丰富的增强型 I/O 端口和外设连接到外部总线。提供5种封装形式,包括 LQFP100、LQFP64、LQFP48、LQFP32 和 QFN32 共 5 种封装形式。根据不同的封装形式,器件中的外设配置不尽相同。该产品适合使用在电机驱动和应用控制,医疗和手持设备,工业应用以及警报系统等。
3 f3 H8 t0 l) X, E+ N6 \SPI
9 Z+ F- Q% j) ]! B9 c0 M1 、SPI 支持哪几种模式( N8 M6 O: t! h! i; k% L' {3 U) o
按传输方向分- 全双工模式,同时收发数据,同时使能 TX 和 RX;
- 半双工,在不同时间段进行读写,ENABLE TX 时 DISABLE RX,ENABLE RX 时 DISABLE TX;0 x: v* E8 H: g' D, m8 j
按采样时序分 - 模式 0,空闲时时钟为低,第一个时钟沿采样;
- 模式 1,空闲时时钟为低,第二个时钟沿采样;
- 模式 2,空闲时时钟为高,第一个时钟沿采样;
- 模式 3,空闲时时钟为高,第二个时钟沿采样;
3 K, W; k. R, B9 H" E4 s) U7 z# ^, H4 f' @8 X) e. r) R
2 、SPI 主机通信不正常有哪些原因
+ @; q! W2 ]" P7 c6 L! I0 @% U常见原因:- 配置不正确,表现为无时钟输出;
- 模式配置不正确,表现为采样点与预期不一致(SPI_CCTL bit0 = 0 为第二个时钟沿采样);
- 速度配置过快,表现为波形异常;
- 数据位数配置与 device 不一致,表现为 CLK 个数不对.
- CS 信号不正确,表现为 CS 信号与 device 时序不对应;
; K* u. D" ^1 h0 y% J9 ~, U
: w1 b. c; z+ V# _! _# {: Z5 Z( Q# ]7 Y
) {8 r$ }- T/ ^( |( i7 B. \Vbat 的电源接入有什么要求;! G$ C: _4 ]/ T8 N8 s& j& ?
如果在应用中没有外部电池, 建议 VBAT 在外部通过一个 100nF 的陶瓷电容与 VDD 相连. 如外接为电池,为保证不损坏,建议在外部 VBAT 和电源之间连接一个低压降二极管。如无外接电池,即使不用 RTC 功能,也需要给 VBAT 供电;4 l0 @9 g5 H0 V4 I! W5 c9 n
KEIL 例程编译失败可能导致的原因% a5 B/ c+ H) ]5 _* ?: x$ E
常见原因:* R+ D x( l, K7 M0 v
- 没有安装 keil4 的兼容包,软件名称为:MDKCM516_legacySupportMDK4(出问题最多)
- 移动了 keil 工程文件,导致无法找到相对路径的文件
- 程序太大,超过 FLASH 或者 SRAM 容量! o+ P: Y1 S! F2 O: y/ a
解决办法
6 T: l# F+ E: ^# C1 G针对 1 和 2 的问题,将 BOOT0 和 BOOT1 接到高电平,复位或者重新上电一下,然后再读 ID。若能读到 ID,则在此模式下擦除程序,然后再将 BOOT0 和 BOOT1 接低电平,这时候 ID 就能读到了。4 b: r+ K# ~) F1 M
6 c* x6 |6 E5 p/ O; P* a9 V , u3 F2 g2 v" Y: n& w
KEIL 程序编译通过了,可是下载程序失败
% m4 ]# h& q5 O常见原因:- 硬件电路没有接好,查看 debug 工具是否连接上板子中的 JTAG 或者 SWD,能否读到芯片IDCODE。
- 若是 Debug 工具能读到芯片 ID,但是无法下载,原因是没有选择 Description 型号,具体配置选择如下图所示。: z' @/ b+ e5 D
1 [5 D/ M4 B2 N% P) G& c; f
. c3 G X2 Q' K$ p
2 @2 Q6 A* k) _. A7 T) a' P t, h5 d) N外部高速时钟接法
, a6 ?: A. O4 O3 r* y$ F0 ~3 e: X+ H) G2 k& U* X
0 n" d! q6 ~7 |2 r1 z8 ^, j; F外部无源晶振电路如下图所示,晶振两脚接约 22pf 电容,并上 1M 反馈电阻。因芯片内部没有集成反馈电阻,为保证 XTAL 起振,必须接 1M 欧姆电阻;
5 z4 h+ y: O7 {- b- g
! W7 ]3 _3 p/ V! d9 h外部时钟异常常见原因" R& t1 g7 \& ]' o: t- {& F$ L
运行程序通常用到外部高速时钟做系统时钟源,有时候在调试中会遇到系统时钟异常导致程序停止运行,以下列出几点可能的原因:- 外部晶振未加反馈电阻,导致外部无稳定时钟输入;
- 外部晶振范围 8~24MHz;
- 晶振与芯片引脚间断路;
- 晶振质量问题导致,不正常起振;
- 芯片系统时钟配置过程错误等等7 }0 z) t7 L: z0 M# [
; k8 C! `6 Z! X( p% j0 U
$ R$ L) G) F: s3 y* S! I/ S5 y* B ~
5 w) C; I5 _1 x |