dsPIC数字信号控制器入门与实战,入门篇

副标题:无

作   者:石朝林编著

分类号:

ISBN:9787811242133

微信扫一扫,移动浏览光盘

简介

  《dsPIC数字信号控制器入门与实战:入门篇》可以称作16位DsC的“入门篇”。侧重于dsPIc30F/33F系列16位数字信号控制器的基础知识和相关实际工程经验的介绍。针对这一系列McU的架构、外设、存储器模式、寻址模式、开发工具等进行循序渐进、深入浅出的介绍,从入门到精通再到实战。提供了关于数字滤波、FFT等实战范例,帮助工程师系统学习和研究,同时把指令集以简洁的表格形式呈现在读者面前,方便编程时迅速准确查找。《dsPIC数字信号控制器入门与实战:入门篇》附光盘1张,内含实用软件和程序范例。《dsPIC数字信号控制器入门与实战:入门篇》可作为工程技术人员迅速掌握dsPIC30F/33F系列16位数字信号控制器开发技术的实用参考书。

目录

第1章 cpu架构.

1.1 概述1

1.2 编程者模型(programmer's model)4

1.2.1 工作寄存器堆6

1.2.2 影子寄存器(shadow register)7

1.2.3 未初始化的w寄存器的复位8

1.3 软件堆栈(software stack)8

1.3.1 软件堆栈示例9

1.3.2 w14软件堆栈帧指针10

1.3.3 堆栈指针上溢(overflow)和下溢(underflow)11

1.4 与核心相关的寄存器11

1.4.1 状态寄存器(sr)11

1.4.2 核心控制寄存器(corcon)13

1.4.3 其他cpu控制寄存器15

1.5 算术逻辑部件(alu)15

1.6 dsp引擎16

1.6.1 累加器(accumulators)16

1.6.2 乘法器(multiplier)18

1.6.3 累加器与加法器20

1.6.4 舍入逻辑(round logic)23

.1.6.5 桶形移位寄存器(barrel shifter)24

1.6.6 dsp引擎陷阱事件24

1.7 除法器25

1.8 指令流类型25

1.9 循环结构27

1.9.1 repeat循环结构27

1.9.2 do循环结构29

第2章 中断系统

2.1 中断系统简介33

2.2 中断优先级(interrupt priority)36

2.2.1 用户中断优先级36

2.2.2 cpu中断优先级37

2.3 中断的操作过程38

2.4 中断嵌套(interrupt nest)39

2.5 非屏蔽中断陷阱(non瞞askable trap)40

2.5.1 软陷阱(soft trap)40

2.5.2 硬陷阱(hard trap)41

2.6 软件禁止中断指令(disi)42

2.7 利用中断将cpu从sleep和idle状态唤醒43

2.8 外部中断源43

2.9 中断处理时序43

2.9.1 单周期指令的中断响应时间43

2.9.2 双周期指令的中断响应时间44

2.9.3 从中断返回45

2.9.4 中断响应时间的特殊情况46

2.10 中断设置流程46

2.10.1 初始化46

2.10.2 中断服务程序46

2.10.3 禁止中断47

2.11 和中断相关的寄存器47

第3章 程序存储器与数据存储器

3.1 程序存储器与eeprom63

3.1.1 程序存储器地址映射64

3.1.2 程序计数器pc65

3.1.3 从flash或eeprom进行数据读写的方法66

3.2 数据存储器91

3.2.1 概述91

3.2.2 数据区地址发生单元(agu)93

3.2.3 模数寻址(modulo addressing)95

3.2.4 位反转寻址(bit reversed addressing)103

第4章 定时计数器

4.1 概述108

4.2 定时计数器的分类108

4.2.1 a类定时计数器108

4.2.2 b类定时计数器111

4.2.3 c类定时计数器113

4.3 工作模式114

4.3.1 使用系统时钟作为时钟源的16位计数器115

4.3.2 使用外部时钟作为时钟源的16位同步计数器115

4.3.3 使用外部时钟源的异步计数器模式(a类定时计数器)116

4.3.4 门控计数器模式117

4.4 定时计数器中断119

4.5 读和写16位定时计数器模块寄存器119

4.5.1 写16位定时计数器119

4.5.2 读16位定时计数器120

4.6 32位定时计数器120

4.6.1 32位定时器模式120

4.6.2 32位同步计数器模式122

4.6.3 32门控计数器模式123

4.6.4 32位定时计数器的读写操作124

4.7 低功耗状态下的定时计数器工作124

4.7.1 sleep模式下的定时计数器工作124

4.7.2 idle模式下的定时计数器工作124

4.8 使用定时计数器模块的外设125

4.8.1 输入捕捉/输出比较的时基125

4.8.2 a/d特殊事件触发信号125

4.8.3 定时计数器作为外部中断引脚125

4.8.4 i/o引脚方向控制125

第5章 a/d转换器及其应用

5.1 a/d转换器(adc)概述126

5.2 与10位a/d转换器相关的主要寄存器126

5.2.1 adcon1:第一a/d控制寄存器127

5.2.2 adcon2:第二a/d控制寄存器129

5.2.3 adcon3:第三a/d控制寄存器130

5.2.4 adpcfg:a/d端口配置寄存器132

5.2.5 adchs:a/d通道选择寄存器132

5.2.6 adcssl:a/d输入扫描选择寄存器135

5.3 a/d模块的工作特点及设置136

5.3.1 a/d模块采样方式的设置137

5.3.2 a/d转换缓冲区的使用147

5.3.3 a/d转换应用范例150

5.4 a/d转换的防混叠滤波器161

第6章 dma控制器(dmac)

6.1 dma操作模式168

6.1.1 字节或字传输模式170

6.1.2 寻址模式170

6.1.3 dma传输方向173

6.1.4 空数据外设写(null data peripheral write)模式173

6.1.5 单次传输模式(one瞫hot)174

6.1.6 连续传输模式(continuous)174

6.1.7 “半块传输结束”中断与“整块传输结束”中断模式175

6.1.8 “乒乓”模式175

6.1.9 手动传输(manual transfer)模式176

6.1.10 dma请求源选择178

6.2 dma中断和陷阱178

6.3 和dma相关的寄存器179

6.4 dma控制器的使用183

6.4.1 将dma通道和相关的外设联系起来184

6.4.2 对外设进行相应的配置184

6.4.3 初始化dpsram(双端口sram)数据起始地址185

6.4.4 初始化dma传输计数值186

6.4.5 选择相应的寻址和操作模式186

第7章 串行通信端口

7.1 通用异步收发器(uart)191

7.1.1 相关的寄存器192

7.1.2 uart波特率发生器(baud rate generator,brg)195

7.1.3 uart配置198

7.1.4 uart发送器198

7.1.5 uart接收器201

7.1.6 uart的其他特性206

7.1.7 在cpusleep和idle模式下的uart工作207

7.1.8 uart使用范例207

7.2 串行外设接口(spi)210

7.2.1 spi简介210

7.2.2 主要的寄存器及其各位的含义211

7.2.3 工作模式214

7.2.4 spi主控模式时钟频率223

7.2.5 低功耗模式下spi的工作224

7.3 内部互联总线(i2c总线)225

7.3.1 概述225

7.3.2 i2c总线特性226

7.3.3 总线协议与报文协议227

7.3.4 相关寄存器229

7.3.5 使能i2c操作233

7.3.6 在单主环境中作为主设备的通信235

7.3.7 作为主设备在多主机环境下通信241

7.3.8 作为从设备通信244

7.3.9 i2c总线的外围连接和电气规范250

7.3.10 在低功耗模式下的工作情况251

第8章 输入捕捉与输出比较..

8 .1 概述253

8.2 输入捕捉(input capture)253

8.2.1 和输入捕捉相关的寄存器254

8.2.2 简单事件捕捉(simple capture events)255

8.2.3 边沿事件捕捉(edge detection mode)256

8.2.4 预分频事件捕捉(prescaler capture events)256

8.2.5 捕捉缓冲区的操作与捕捉中断257

8.2.6 捕捉模块对uart自动波特率的支持258

8.2.7 在低功耗模式下输入捕捉模块的工作情况258

8.3 输出比较(output compare)258

8.3.1 输出比较相关的寄存器259

8.3.2 输出比较的工作模式260

第9章 电机控制专用外设

9.1 电机控制专用pwm266

9.1.1 概述266

9.1.2 与mcpwm相关的控制寄存器267

9.1.3 pwm 时基278

9.1.4 pwm占空比单元281

9.1.5 互补对称pwm输出模式(complementary pwm output)286

9.1.6 死区时间控制286

9.1.7 独立pwm输出模式(independent pwm output)289

9.1.8 pwm输出强制(pwm output override)290

9.1.9 pwm输出和极性控制292

9.1.10 pwm故障引脚(pwm fault pins)293

9.1.11 pwm更新锁定(pwm update lockout)296

9.1.12 pwm特殊事件触发器(special event trigger)296

9.1.13 芯片低功耗模式的工作情况297

9.1.14 用dspic的pwm模块产生正弦波,驱动三相交流感应电机的功率模块298

9.2 正交编码器接口(qei)303

9.2.1 qei模块简介303

9.2.2 控制和状态寄存器305

9.2.3 正交解码器(quadrature decoder)308

9.2.4 16位向上/向下位置计数器310

9.2.5 qei模块作为16位定时器/计数器313

第10章 时钟电路

10.1 dspic时钟系统概述315

10.2 振荡器控制寄存器及其初始化317

10.3 锁相环(pll)319

10.4 振荡电路及匹配元件的选择320

10.4.1 晶体振荡电路及其外围元件选择320

10.4.2 从振荡器(32.768 khz)322

10.4.3 外部rc振荡器及其元件选择322

10.4.4 内部低功耗rc振荡器(lprc)322

10.4.5 内部快速rc振荡器(frc)323

10.4.6 关于振荡器外围布线规则323

10.5 与时钟相关的配置位设置324

10.6 时钟切换操作顺序325

第11章 系统管理模块

11.1 复位管理328

11.1.1 上电复位331

11.1.2 掉电复位334

11.1.3 非法操作码复位337

11.1.4 未初始化的w寄存器复位 337

11.1.5 陷阱冲突复位337

11.1.6 外部复位337

11.1.7 软件复位337

11.1.8 看门狗复位338

11.1.9 不同配置位对于上电复位时序的影响338

11.2 功耗管理341

11.2.1 功耗管理简介341

11.2.2 睡眠模式342

11.2.3 待机模式344

11.3 看门狗定时器345

11.3.1 看门狗定时器的功能和使用原则345

11.3.2 看门狗定时器工作原理346

11.4 低电压监测348

11.4.1 低压监测模块工作原理348

11.4.2 rcon寄存器中与lvd相关的配置349

11.4.3 低电压监测模块的初始化过程351

11.4.4 关于低压监测中断对系统的唤醒351

第12章 i/o端口及相关功能

12.1 输入/输出口结构352

12.2 i/o端口控制寄存器353

12.2.1 方向寄存器“trisx”353

12.2.2 端口寄存器“portx”354

12.2.3 端口锁存寄存器“latx”355

12.2.4 在c30环境下对16位端口的高、低8位访问技巧355

12.3 外设复用356

12.3.1 端口复用原理356

12.3.2 利用复用原理用软件对外设输入引脚施加激励357

12.4 电平变化中断358

12.4.1 电平变化中断原理358

12.4.2 电平变化中断(cn)控制寄存器359

12.4.3 如何设置和使用电平变化中断360

12.4.4 sleep和idle模式下的电平变化中断361

第13章 开发工具

13.1 概述362

13.2 mplab ide集成开发环境软件包363

13.3 mplab c30编译器364

13.4 real ice高级在线仿真器367

13.5 mplab icd2在线调试器376

13.6 promate iii(pm3)生产级烧写器379

13.7 第三方开发工具380

13.8 库函数及应用工具软件381

第14章 数字滤波器设计

14.1 dspic fd数字滤波器软件包介绍384

14.2 滤波器设计实例384

14.2.1 滤波器类型的选择及滤波器参数文件的生成384

14.2.2 使用dspicworks软件包进行数字信号处理389

14.2.3 对滤波处理后的时域信号进行频域分析395

第15章 实时时钟模块(rtc)

15.1 实时时钟概述398

15.2 实时时钟模块相关的寄存器及其定义398

15.2.1 寄存器映射399

15.2.2 “写”开锁399

15.2.3 相关的寄存器400

15.3 校准406

15.4 报警407

15.4.1 配置报警407

15.4.2 报警中断408

附录a 快速傅里叶变换(fft)

a.1 快速傅里叶变换(fft)的发展和基本原理409

a.2 快速傅里叶变换(fft)用到的特殊寻址模式411

a.3 dspic系列数字信号控制器的运算特点413

a.3.1 定点处理器dspic30f/33fj家族dsc的数据格式413

a.3.2 dspic定点处理器在运算过程中的误差类型分析414

a.3.3 在c30环境下使用汇编语言编程相关问题415

a.4 基于dspic的快速傅里叶变换(fft)的程序实现415

a.4.1 代码描述415

a.4.2 相应文件及其功能417

a.4.3 推荐测试环境417

a.4.4 针对其他dspic家族芯片的重新配置418

附录b 指令集详解

b.1 指令集分类及索引419

b.1.1 数据传送类(17条)419

b.1.2 数学运算类(45条)422

b.1.3 逻辑操作类(22条)429

b.1.4 循环操作类(20条)431

b.1.5 位操作类(19条)435

b.1.6 比较跳转类(16条)439

b.1.7 程序分支类(35条)440

b.1.8 影子/堆栈操作类(10条)443

b.1.9 cpu控制类(6条)444

b.1.10 dsp类(19条)445

附录c 利用dsp核提高直流无刷电机的pid效率

c.1 直流无刷电机控制面临的挑战451

c.2 dspic30f/33f电机控制系列单片机451

c.3 实用dsp提高bldc的pid控制效率452

c.3.1 实验板配置452

c.3.2 闭环pid控制基本原理453

c.3.4 pid效率测试硬件设计454

c.3.5 使用c语言和汇编语言混合编程455

附录d 随身携带的pic开发利器pickit2

d.1 调试器兼烧写器pickit2简介458

d.2 如何使用pickit2进行脱机烧写459

d.3 pickit2工作在脱机烧写器状态时的电源供应问题462

d.4 将pickit2内部eeprom扩展到256 kb的diy方法463

参考文献...


已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

dsPIC数字信号控制器入门与实战,入门篇
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    亲爱的云图用户,
    光盘内的文件都可以直接点击浏览哦

    无需下载,在线查阅资料!

    loading icon