- arm 芯片手册如何读与用
- 为什么写这篇文章
- 芯片手册的架构把握
- 三星某芯片手册的目录
- 掌握三点核心
- memory controller 存储器控制
- clock management 时钟管理
- 需要什么,就看什么外设的章节
- 硬件元器件采购
<!-- /TOC -->
# 为什么写这篇文章
随着工作年龄增加,我和新人有何不同?
时代奔涌向前,年龄大经验多,但也要知道新人都会些什么才能跟得上潮流趋势。
年轻人可能夸夸其谈,例如学校里考试如何,所以招聘题目也刷了很多。
那我就 “减法规则” ,带着扩充新知识的同时,利用经验去做取舍,以便于快速判断分析能力。
年轻人可能说在学校里用过 N 块板子,会看说明书。
那我就把内容搭起框架,更有条理更形象地说,更有判断力更专注细节去执行。而不是鼻子眉毛一把抓
……
这些大学生会的,我都会,而且需要善于总结,以更简单的 “减法规则” 把简单事变得简单去教授别人。 人与人差别就在一点点,比别人再深一点儿的思考就不一样,别人就能感觉到 “特长”。
# 芯片手册的架构把握
我们学习单片机,那时是学校的书本,并没有直接给我们厚厚的芯片手册。
但是随着深入学习嵌入式技术(我指的是可以跑操作系统级别的芯片),芯片功能越来越强大,手册也就越来越厚,动辄数千页。
其中,最常用的、标杆手册是三星。三星的芯片说明手册规范、详细。
# 三星某芯片手册的目录
# 掌握三点核心
Overview 概揽 CPU 选型时,直观给设计者,像京东的产品列表展示
Block Diagram 框图 明确芯片架构,可直接用于 “项目申报”、“产品说明书”
Memory Map 存储器映射 查阅引脚分布与功能,为进行详细设计做准备
模块顺序 | 章节名称 | 中文 | 我的心得 |
---|---|---|---|
0 | Overview | 概揽 | CPU 选型时,直观给设计者,像京东的产品列表展示 |
1 | table of contents | ||
2 | product overview | 芯片概述 | |
3 | feature | 每一功能的特点 | |
4 | Block Diagram | 框图 | 明确芯片架构,可直接用于 “项目申报”、“产品说明书” |
4.1 | core | 芯片所选用的 arm 内核版本 | |
4.2 | periptheral | 芯片内部支持的外设控制器 | |
4.3 | bus <AHB .APB.AXI bus> | (芯片内部连接 ARM 内核与外设控制器的总线) | |
5 | perlptheral controller | 外设控制器的洋细描述章节 | |
6 | pin assignment | 引脚的定义 289FBQA (球型封装〉 | 引脚分配表格 |
7 | pin number - pin name | 引脚的序号,名称 | |
8 | default function | 默认功能 (引脚的功能是可以多种选择的,其中有一个是默认的,其他功能是复用到这个管脚的) | |
9 | signal description | (引脚) 佶号描述 < br > 分类描述(毎一个外设的 controller 都负责管理其中一部分自己的管脚多少、方向、功能、作用、复用的种类) | |
10 | special (function) registers | 特殊寄存器 SFR<br>(每一个 controller 都有一批自己的寄存器,读写操作就可以来进行软件编程和控制) | |
10.1 | register name | 全大写,未来用来宏定义,<br> 前面的部分是这个 controller 的缩写,后边的部分是它的功能。 | |
- | CON -control | 控制 | |
- | STAT.status | 状态 | |
- | DAT -data | ||
- | MOD-mode | 模式 | |
- | FIFO-filo | 缓冲 | |
- | CFG -oonfig | 配置 | |
- | CNT counter | 计数 | |
- | TXH transfer holder | 发送缓冲 | |
- | RXH | ||
10.2 | register addressqu | 这个地址,是在写代码的时候,所对应操作寄存器的唯一标识.<br> 名宇只是用来助记的,不是内部标识 |
# memory controller 存储器控制
模块顺序 | 章节名称 | 中文 | 我的心得 |
---|---|---|---|
1 | memory | 存储布局 | |
- | system memory map | 内存映射表(芯片所支持的内存空间的起始他址和结束地址) | |
- | address space | 寻址空间:bank <一段连续的内存地址,通常会外接到一个存储器的芯片,通常有一个 size)<br > 这些存储器件可以包括 rom 和 ram (sram (内 部) .norflash.sdram.nandflash) | |
2 | boot rom | 启动 0 地址所在的内存器件,决定启动代码的执行. | |
- | operation mode (OM) | 启动时的操作模式,从哪个器件启动 <br>6410: XOM {4:0] ; 2440: OM [1:0] | |
3 | memory interface | 存储器件的接口 (soc 和外部存储器件的迕接方式〉 | |
4 | SFR | 关于 memory 的 SFR 配置 |
# clock management 时钟管理
模块顺序 | 章节名称 | 中文 |
---|---|---|
0 | clock generator block diagram | 时钟发生器的内部结枸 |
1 | external crystal | 供铪 cpu 的外部晶振的频率 XXPipll 12Mhz 外部晶振 |
2 | PLL | 锁相环进行倍频 :有限 pll 相关的寄存器 |
3 | divider | 分频给各个不同的部件;DICN 分频 |
4 | 输出 | ARM CLK/FCLK 给 ARM 内核 <br>HCCLK 给 AXI/AHB 高速设备 <br>PCLK APB 外设 <br>SCLK 给特殊 |
# 需要什么,就看什么外设的章节
模块顺序 | 章节名称 | 重要章节 |
---|---|---|
1 | i/O | led beep button pwm seg7 motor switch |
2 | uart | (getchar putchar) |
3 | timer | (gettime) |
4 | interrupt | {timer uart interrupt |
5 | DMA | (解放 cpu) |
6 | nandflash | (实现图化) |
7 | lcd | (驱动液晶) |
8 | TS | (触摸屏 0 |
# 硬件元器件采购
我在南京读本科时去过几次华龙电子城,到深圳工作去过很多次华强北大厦。
学过很多门电路课看过不下于 30 本电路书,例如《模拟电路》、《数字电路》、《高频电路》、《电路》邱关源、《电子线路设计》、《高速电路设计》王剑宇等。
研读过 N 份电子元器件说明手册。日本村田、韩国三星都是又美又厚
……
你会做减法吗?或者说,你能快速决策吗?
例如简单的三种基本元器件
元器件 | 决策 | 详细内容 |
---|---|---|
R | 封装 ↑ 功率 ↑ | 阻值、尺寸、额定功率、精度 |
C | “封装大小” 与 “最小容量” 关系 | 0402 0603 0805 1206 《三星》<br>0.22uF 0.1 1 10 以 X7R 为例 |
L | 电感对应电流 | 电感值、直流电阻、自谐振频率、额定电流 |