9
SA828
图. 17 典型 sa828 程序编制 routine
写 r1
写 r2
写 r4
电源 在
写 r0
RST
↓
0
RST
↑
1
改变
控制
数据 ?
改变
INITIALISATION
数据 ?
YES
非
YES
非
写 r1
写 r2
写 r3
写 r0
写 r1
写 r2
写 r3
写 r0
写
INITIALISATION
数据
写 至 控制
寄存器 inhibiting
pwm 输出
在之前 完成
重置 循环
使能
pwm 输出
写
控制
数据
控制 寄存器 程序编制 例子
这 控制 寄存器 将 正常情况下 是 updated 许多 时间
当 这 发动机 是 运动, 但是 just 一个 例子 是 给 here.
它 是 assumed 那 这 initialisation 寄存器 有 already heen
编写程序 和 这 参数 给 在 这 previous 例子.
一个 电源 波形 的 100hz 是 必需的 和 一个 pwm
波形 振幅 的 80% 的 那 贮存 在 这 只读存储器. 这
阶段 sequence 应当 是 设置 至 给 向前 发动机 旋转.这
输出 应当 是 使能 和 非 overmodulation 是 必需的.
1. 设置 这 电源 频率
这 电源 频率,
f
电源
, 能 是 选择 至 12-位
精度 (i.e 4096 equal 步伐) 从 0hz 至
f
范围
作 定义
在 这 initialisation 寄存器. 在 这个 情况, 和
f
范围
= 250hz,
这 电源 频率 能 是 调整 在 increments 的 0·06hz.
我们 能 仅有的 有
pfs
作 一个 integer, 所以 如果 我们 assign
pfs
=
1638 这个 给
f
电源
= 99.97 hz.这 12-位 二进制的 相等的
的 这个 值 给 一个 pfs 文字 的 011001100110 在 temporary
寄存器 r0 和 r1.
2. 设置 overmodulation, 向前/反转, 输出 inhibit
overmodulation 是 不 必需的 因此 om = 0.
向前 发动机 控制 是 必需的 (i.e., 这 阶段 sequence
的 这 pwm 输出 应当 是 red-黄-蓝) 因此 向前/
反转 位 f/r = 0.
输出 inhibit 应当 是 inactive (i e., 这 输出 应当 是
起作用的), 因此 inh= 1.
这些 位 是 所有 设置 在 temporary 寄存器 r1.
3. 设置 这 电源 波形 振幅
一个
电源
x 255
100
一个
电源
=x
100%
0 1 1 0 0 0 1 1
temporary 寄存器 r0
0
0 1 X 0 1 1 0
temporary 寄存器 r1
1 1 0 0
temporary 寄存器 r2
1100
PFS
7
PFS
6
PFS
5
PFS
4
PFS
3
PFS
2
PFS
1
PFS
0
F
/
R OM INH X PFS
11
PFS
10
PFS
9
PFS
8
放大
7
放大
6
放大
5
放大
4
放大
3
放大
2
放大
1
放大
0
图. 16
这 8-位 二进制的 相等的 的 这个 值 给 一个 放大 文字
的 11001100 在 temporary 寄存器 r2. 这 数据 这个 必须 是
编写程序 在 这 三 temporary 寄存器 r0, r1 和 r2
(为 转移 在 这 控制 寄存器) 在 顺序 至 达到 这
参数 在 这 例子 给, 是 显示 在 图. 16.
80 x 255
100
⇒
一个
= = =
204
f
电源
x 4096
f
范围
f
范围
4096
⇒
pfs
= = =
1638·4
100 x 4096
250
一个
225
f
电源
=
x
pfs