PIC18F4550硬件

合集下载

外文翻译---PIC18F4520 数据手册

外文翻译---PIC18F4520 数据手册

外文翻译---PIC18F4520 数据手册
简介
本文是关于PIC18F4520微控制器的数据手册的外文翻译。

PIC18F4520是一款高性能、低功耗的8位微控制器,由Microchip
公司开发。

主要特性
以下是PIC18F4520微控制器的主要特性:
- 高性能:工作频率高达40MHz,有助于处理复杂的计算任务。

- 大容量存储器:具有32KB的闪存和1536字节的RAM,可
存储大量的程序代码和数据。

- 丰富的通信接口:支持多种通信接口,包括SPI、I2C和USART,方便与其他设备进行通讯。

- 强大的计时器和计数器:多个定时器和计数器模块,可用于
定时、计数和PWM等应用。

- 多通道ADC:具有八个模拟输入通道,支持10位精度的模
数转换。

- 丰富的外设:包括UART、PWM、比较器等外设,满足各种
应用需求。

应用领域
由于PIC18F4520微控制器具备高性能和丰富的外设,用途广泛,常见的应用领域包括:
- 工业自动化系统
- 汽车电子
- 家用电器
- 通信设备
- 医疗设备等
总结
PIC18F4520是一款功能强大的8位微控制器,适用于多种应用领域。

本文介绍了该产品的主要特性和应用领域,有助于开发人员了解该微控制器的功能和潜在应用。

基于PIC18F4550的USB接口读卡器的设计

基于PIC18F4550的USB接口读卡器的设计

基于PIC18F4550的USB接口读卡器的设计李涟凤,何胜宗,刘映杰兰州大学信息科学与工程学院,兰州(730000)E-mail:lilf03@摘要:本文设计开发了一种基于单片机PIC18F4550的USB接口非接触式智能IC卡读卡器,读卡器接收上位机命令执行相应的操作,并向上位机返回执行结果。

文中介绍了该读卡器的系统构成和硬件电路设计,编写了下位机固件程序和上位机动态链接库(DLL)及操作演示界面。

该读卡器采用USB接口供电,以兼容USB2.0接口的单片机PIC18F4550为核心,PC机与读卡器之间采用USB2.0规范的12Mb/s全速传输,克服了传统的读卡器功耗大,读写速度慢和稳定性差等缺点。

读卡芯片采用MFRC531,同时设计了SAM卡模块,提高了数据传输的安全性。

本文设计的读卡器功耗低、抗干扰能力强、读卡距离远、读写速度快,可应用在公交、考勤等多种系统中。

关键词:读卡器; USB接口;PIC18F4550;MFRC531 ;SAM卡中图分类号:TP334.11. 引言近年来,随着计算机、通信、电信、金融等行业的发展和人们生活水平的提高,人们对智能IC卡的使用不断增加,对智能IC卡读卡器的性能也提出了更高的要求。

非接触式智能IC 卡以其高可靠性、安全保密性、灵活便携性成为IC卡领域的先锋,设计低功耗、高性能、抗干扰性强、稳定可靠、读写速度快的智能IC卡读卡器则成为设计人员的主要目标。

由于传统的基于RS232接口的IC卡读卡器速度存在限制,本文设计开发了一种基于通用串行总线(USB)接口的IC卡读卡器,同时设计了相应硬件电路并编写了下位机固件程序和上位机动态链接库(DLL)及操作演示界面。

该读卡器采用USB接口供电,以兼容USB2.0接口的单片机PIC18F4550为核心,PC机与读卡器之间采用USB2.0规范的12Mb/s全速传输,克服了传统的读卡器功耗大,读写速度慢和稳定性差等缺点。

PIC18F4550单片机三个操作寄存器的使用方法

PIC18F4550单片机三个操作寄存器的使用方法

PIC18F4550单片机三个操作寄存器的使用方法试验芯片:Microchip PIC 18F4550集成开发环境:MPLAB IDE v8.53编译器:Microchip C18PIC18系列单片机是美国微芯公司(Microchip)8位单片机系列中的高档系列,其任一I/O 引脚允许的最大灌电流或最大拉电流达25mA,可以直接驱动LED和继电器。

PORTA、PORTB和PORTE的最大灌电流或最大拉电流总和为200mA,PORTC和PORTD的最大灌电流或最大拉电流总和为200mA,PORTF和PORTG的最大灌电流或最大拉电流总和为100mA(注:PIC18F4550没有这两个端口)。

单片机和外设的交互都是通过I/O端口进行,每个I/O端口均有三个操作寄存器:1、TRISx———数据方向寄存器用来控制I/O引脚的方向,即用来控制PORTx是输入还是输出。

2、PORTx———端口寄存器用来锁存输出数据。

当读PORTx时,器件直接读I/O引脚电平(而不是锁存值)。

3、LATx———输出数据锁存器写端口就是写该锁存器(LATx)。

数据锁存器也可以直接读写。

如果外设没有使用该引脚,并且TRISx位配置该引脚为输出,则将锁存器内的数据输出到引脚。

在复位状态下,TRISx的复位值为0xff,即TRISx寄存器的8个位(D0 ~ D7)的值均为1。

此时相应的PORTx引脚被定义为输入,相应的输出驱动器呈现高阻状态。

设置为0时表示相应的引脚定义为输出。

这里应注意的是写PORT就是写LAT,但读PORT和读LAT不同。

读PORT读的是引脚的状态,无论该引脚设置为输入引脚还是输出引脚。

而读LAT得到的是输出数据锁存器的存储值,读LAT得到的值可能和读PORT得到的值存在不同。

基于USB2.0的无线文件传输系统的设计与实现

基于USB2.0的无线文件传输系统的设计与实现

基于USB2.0的无线文件传输系统的设计与实现
安国娇;王代华;张志杰
【期刊名称】《电子设计工程》
【年(卷),期】2010(18)3
【摘要】为了在无网络的情况下,安全、方便地传输文件,设计一个采用具有
USB2.0接口的PIC18F4550单片机和高速无线收发器件nRF24L01构建的无线文件传输系统,介绍了其硬件电路和软件程序设计,并详细阐述了单片机与计算机间的USB通信以及单片机与射频器件之间的通信过程.实验表明,该系统可传输不同格式不同大小的文件,且传输速率最高可达1.28 Mb/s.该设计具有电路简单、传输速率高、性能稳定且便于携带等特点.
【总页数】3页(P99-100,103)
【作者】安国娇;王代华;张志杰
【作者单位】中北大学,信息与通信工程学院,山西,太原,030051;中北大学,信息与通信工程学院,山西,太原,030051;中北大学,信息与通信工程学院,山西,太原,030051【正文语种】中文
【中图分类】TP393
【相关文献】
1.基于nRF24L01和FT245BM的无线文件传输系统设计 [J], 时志云;杨毓;王代华;张志杰
2.2.4G无线文件传输系统的设计与实现 [J], 吴江源;刘玉兵;张俞
3.基于OpenSSL的PKI文件传输系统的设计与实现 [J], 刘娅
4.基于嵌入式Linux的无线文件传输系统的实现 [J], 李铁男
5.基于VxWorks实时操作系统的文件传输软件的设计与实现 [J], 谢佑波;万福;袁朝晖;许建南
因版权原因,仅展示原文概要,查看原文内容请购买。

pic18f4580功能

pic18f4580功能

ic18f2480 & pic18f2580 & pic18f4480 & pic18f4580,基于增强型flash带ecantm总线和10位a/d转换和纳瓦技术的28/40/44脚单片机:开发工具支持: 集成开发环境:mplab ide 数据手册:pic18f2480 & pic18f2580 & pic18f4480 & pic18f4580一、电源管理模式: 运行模式:cpu on 外围on 空闲模式:cpu off 外围on 睡眠模式:cpu off 外围off 空闲模式低电流典型值5。

8ua 睡眠模式低电流典型值0。

1ua tmr1振荡模式典型值:2v,32khz,1。

8ua 看门狗定时器典型值2。

1ua 双速晶振启动二、柔性振荡结构: 4种晶振模式40mhz 4段锁相环路pll-可用晶振和内部振荡2种外部时钟模式40mhz 内部振荡时钟:8种可选择频率31khz~8mhz 当使用pll时完全的时钟速率范围31khz~32mhz 使用可调可补偿频率漂移次级振荡使用tmr1在32khz 故障安全性时钟动作如果时钟故障,允许器件安全关闭三、特殊特征: c编译器优化带选择可扩展指令设置的体系结构增强功能的flash可经受100,000次擦/写操作eeprom可经受1,000,000次擦/写操作flash/数据eeprom数据保存期可超过40年软件控制自动可改编程序中断优先级8 x 8单周期硬件乘法器扩展的看门狗定时器41ms~131s可编程周期通过2个引脚和5v电源支持在线串行编程icsptm 通过2个脚在线调试器宽电压工作范围2v~5。

5v四、外围高亮特性: 高拉出/灌入电流能力25ma/25ma 3个外部中断脚一个捕捉器/比较器/pwm模式ccp 增强功能的eccp模式(仅适用40/44,脚系列)1,2或4路pwm输出pwm极性选择pwm可编程死区时间自动关断和自动重启主同步串行口mssp的两种工作模式:3线spitm(支持全部4种spi模式)i2ctm主动和从动模式增强功能的可寻址通用同步异步收发器usart模式:支持rs-485和rs-232串口和lin1。

基于PIC单片机的数码相-仅供参考

基于PIC单片机的数码相-仅供参考

摘要数码相框是一种以数码照片的保存、回放和浏览为核心功能的产品,随着数码相机的普及,开发基于嵌入式系统的数码相框已成为消费类电子产品领域的一个热点,本文设计了一个基于PIC18F4550的数码相框系统,具有实际应用价值。

文中详细介绍了系统的软、硬件设计。

它以PIC18F4550为核心处理器,采用SD卡存储图像文件,并利用TFT-LCD显示照片。

实现了SD卡内FATl6文件的读取、图像数据的显示。

通过从解码的图像质量和速度两个方面进行测试,本文设计完成的数码相框系统,能够达到图像重构的要求和对图像进行实时解压显示的目标,具有成本低,易于升级的特点,有很好的应用前景。

关键词:数码相框, PIC, SD卡, TFTABSTRACTDigital photo frame is a product which is used to store and display the digital photo. With the popularity of digital cameras, developing the digital photo frame based on embedded system has become a hot in the field of consumer electronics products. This thesis designs a digital photo frame based on PIC18F4550, it has practical application value.The system is composed of PIC18F4550, SD card, TFT-LCD. It realizes reading the FAT16 file in SD card, displaying the image in TFT-LCD.Through the test of decoding speed and the image quality, the results show that the system can reach the requirement of image reconfiguration and the target of real-time decoding and display images. It has the characteristics of low cost, easy to upgrade,and has good application prospects.Key words:digital photo frame , PIC, SD, TFT目录第1章绪论 (1)1.1.课题背景 (1)1.2.国内外研究现状 (1)1.3.论文架构 (3)第2章数码相框系统设计基础 (4)2.1.开发技术基础 (4)2.1.1. PIC单片机介绍 (4)2.1.2. TFT-LCD介绍 (5)2.1.3. SD卡介绍 (7)2.1.4. 集成开发环境MPLAD IDE (8)2.2.数字图形基础 (9)2.2.1. 图像数字化 (9)2.2.2. 颜色模型 (9)2.2.3. 颜色模型 (9)第3章系统设计 (11)3.1.系统硬件结构 (11)3.2.核心处理器模块 (11)3.3.TFT-LCD模块 (12)3.4.SD卡模块 (13)3.5.按键模块 (14)第4章数码相框的软件设计 (15)4.1.主程序模块 (15)4.2.图像文件读取模块 (16)4.2.1. SPI数据传输 (16)4.2.2. SD卡驱动 (16)4.2.3. FAT16文件系统的读取 (18)4.3.图像文件解码模块 (24)4.4.图像显示模块 (25)4.4.1. 图像显示程序流程 (25)4.4.2. 图像数据写入程序 (25)4.4.3. TFT-LCD驱动 (26)4.5.按键模块 (28)第5章图像显示结果分析 (29)总结 (30)参考文献 (31)致谢 (32)第1章绪论1.1.课题背景数码相机的普及,使得拍摄下来的数码相片呈现出了几何级数的增长,用各种存储器保存照片已成为大家习惯的做法,于是在这个趋势下衍生出了数码相框。

比较CAN和ECAN模块

比较CAN和ECAN模块

PIC18F2458/2553/4458/4553数据手册采用12位A/D和纳瓦技术的28/40/44引脚高性能增强型闪存USB单片机© 2007 Microchip Technology Inc.初稿DS39887B_CNDS39887B_CN 第ii 页初稿© 2007 Microchip Technology Inc.提供本文档的中文版本仅为了便于理解。

请勿忽视文档中包含的英文部分,因为其中提供了有关Microchip 产品性能和使用情况的有用信息。

Microchip Technology Inc.及其分公司和相关公司、各级主管与员工及事务代理机构对译文中可能存在的任何差错不承担任何责任。

建议参考Microchip Technology Inc.的英文原版文档。

本出版物中所述的器件应用信息及其他类似内容仅为您提供便利,它们可能由更新之信息所替代。

确保应用符合技术规范,是您自身应负的责任。

Microchip 对这些信息不作任何明示或暗示、书面或口头、法定或其他形式的声明或担保,包括但不限于针对其使用情况、质量、性能、适销性或特定用途的适用性的声明或担保。

Microchip 对因这些信息及使用这些信息而引起的后果不承担任何责任。

如果将Microchip 器件用于生命维持和/或生命安全应用,一切风险由买方自负。

买方同意在由此引发任何一切伤害、索赔、诉讼或费用时,会维护和保障Microchip 免于承担法律责任,并加以赔偿。

在Microchip 知识产权保护下,不得暗中或以其他方式转让任何许可证。

商标Microchip 的名称和徽标组合、Microchip 徽标、Accuron 、dsPIC 、K EE L OQ 、K EE L OQ 徽标、microID 、MPLAB 、PIC 、PICmicro 、PICSTART 、PRO MATE 、rfPIC 和SmartShunt 均为Microchip Technology Inc.在美国和其他国家或地区的注册商标。

基于PIC18F4550的USB-CAN总线通信模块设计

基于PIC18F4550的USB-CAN总线通信模块设计

t i p p r u s f r r a e in f hs a e p t o wa d d sg o US CAN c mm u ia in o nc to m o u e a e o sn l~ hp d l b sdБайду номын сангаасn i gec i PI 8 4 5 .CAN u o to lr M CP 5 5 a d h g — p e C1 F 5 0 b sc n r l e 2 1 n ih s e d CAN r n c ie CP 5 1 Th a d ta s ev rM 25. e h r—
wa e i t r a e cr u to a h mo u e i n r d c d,a d t e f mwa e p o r mm i g a d t e US ’ r n e f c ic i fe c d l s i t o u e n h i r r r g a n n h B S d i e sa e e a o a e .Th d l a e n s c e s u l p l d i h o u e ie l tk i i g ma rv r r l b r t d e mo u e h s b e u c s f l a p i t ec mp t rz d f n t n — y e n a t
问的硬件接 口电路 , 同时对固件编程 以及 US B驱动程序 的设计进行 了详细分析 , 目前该模块已成 功应用 于电
脑 横 机 控 制 系统 中 。
关键词 : A C N总线 ; 微控制器编程 ; 口通信模块 ; 接 通用 串行总线
中图分 类号 : P 3 T 36 文献标志码 : A 文章 编号 :0 356 (0 0】 6 80 1 0—00 2 1 )114 —4

带全速USB接口的PIC18F4550应用设计

带全速USB接口的PIC18F4550应用设计

括一个片上收发器和一个并行流端 E , l 能把数据直接传送
到外 部 的 设 备 , 仅 减 小 了 C U 的 开 销 , 且 大 大 增 强 了 不 P 而 系统 的 抗 干 扰 能 力 和 工 作 可 靠 性 。 PC 8 45 I 1F 5 0的 硬 件 资 源 非 常 丰 富 , 含 3 包 3个 IO, / IO E为 端 E A、 、 、 E 具 有 多 个 中 断 源 和 1 中断 / 端l l B C D、 ; 个 优 先 级 选 择 , 定 时 器 ,2KB程 序 闪 存 ,5 4个 3 2 6字 节 E P E— R M 数 据 存 储 器 , 4 O 20 8字 节 数 据 随机 存 储 器 以 及 8 ×8 硬件乘法器 ; 成 了 1 集 3通 道 的 1 O位 A/ 转 换 器 , D 2个 C P 比较 / 捉 / WM ) 块 , C ( 捕 P 模 1个 增 强 型 C P模 块 和 1 C
全速 US B接 1 P C1 F 5 0 光 栅 位 移 传 感 器 固件 : 1 I 8 4 5

关键词
引 言
随 着 U B U i r l ei u ) 术 的 发 展 , 别 是 S ( nv s r l s技 e aS aB 特 高 速 ( 8 p ) B . 4 0Mb sUS 2 0协 议 的 出 现 , 乎 所 有 的 P 外 几 C
间是巨大的 , 甚至在不久 的将来 , B将 完全取代 异步 串 US
口和 打 印 机 并 口 , C机 厂 商 将 不 会 再 生 产 机 箱 上 带 异 步 P 串 口和 打 印 机 并 口的 P C机 了 , 箱 上 也 不 会 再 有 那 么 多 机
的连线了 。
点外 , 配备 了自编程 闪存 存储 器 以及 纳 瓦节能 技术 , 还 工 作 频率达 4 z数据 传输速率高达 1 p 。另外 , 8MH , 2Mb s 还

开发板如何作为万用烧写座使用和开发板如何使用不同种类的单片机

开发板如何作为万用烧写座使用和开发板如何使用不同种类的单片机

开发板如何作为万用烧写座使用作者:爱晶电子王伟民开发板作为万用烧写座使用,可以对6脚到40脚的10F、12F、14F、16F及18F、16位、DSPIC单片机进行在线烧写。

下面我们以3ePIC PLUS开发板为例进行讲解,TOPPIC开发板完全类似,不再重复讲解。

1、ICSP的5个引脚与16F877A、18F4520引脚兼容的单片机我们首先到MICROCHIP网站(/)下载我们要用的单片机的数据手册,如果它的VPP、PGD、PGC、VSS、VDD引脚的排列和16F877A、18F4520引脚的一致,请将开发板接驳区(下)的VPP-VPP、以及接驳区(上)的PGD-PGD、PGC-PGC GND-VSS、VCC-VDD这五个短路帽接好,和ICD2之间用6芯线连好,即可用ICD2对单片机进行烧写:如下图,单片机为18F4550:如下图,单片机为16F876A:2、ICSP的5个引脚与与16F877A、18F4520引脚不兼容的单片机下面我们以12F683为例介绍。

我们首先到MICROCHIP网站(/)下载我们要用的单片机的数据手册,如下图:在12F683数据手册中找到其引脚排列图,如下图:引脚排列图中,找到VDD、GND、VPP、PGD、PGC这5个脚,要注意的是MICROCHIP 有个别型号的单片机引脚采用了特殊的标法,一般ICSPCLK=PGC、ICSPDAT=PGD、VSS=GND、VCC=VDD,这样,我们找到了ICSP必需的5个脚,12F683的VDD在1脚、GND在8脚、VPP 在4脚、PGD在7脚、PGC在6脚。

接下去,我们首先将12F683装到开发板的宽测试座上(板上面很大的绿色的座就是,也叫零拔插力插座),首先松开宽测试座左下角的手柄,然后将12F683定位标记朝左,轻轻放入宽测试座中,12F683是一款8脚单片机,大家可能会问,插到宽测试座的什么位置呢?呵呵,可以装在任意位置的,然后,将压紧宽测试座左下角的手柄。

Microchip PIC18F K40系列单片机拥有独立于内核的外设

Microchip PIC18F K40系列单片机拥有独立于内核的外设

Microchip PIC18F K40系列单片机拥有独立于内核的外设佚名
【期刊名称】《世界电子元器件》
【年(卷),期】2016(000)011
【摘要】<正>Microchip Technology Inc.(美国微芯科技公司)近日宣布推出PIC18F K40系列单片机(MCU)。

该系列共包含10款新器件,闪存容量从16KB到128KB不等,封装选择涵盖28-64个引脚。

新的8位MCU器件实现了成本优化,是首个拥有Microchip广受好评的、独立于内核的外设(CIP)的PIC18产品系列。

有了CIP,开发人员仅依靠硬件就可以完成任务,而CPU则可被释放出来去处理其它任务或
【总页数】1页(P25-)
【正文语种】中文
【相关文献】
1.Microchip推出40MHz PIC18F单片机系列 [J], 无
2.Microchip推出新型8位单片机,集成独立于内核的外设,缩短了CAN网络关键系统事件的响应时间 [J],
3.Microchip新一代8位AVR MCU问世,首度集成独立于内核的外设 [J],
4.Microchip推出全新低成本PIC32MX1/2/5系列32位单片机,提供功能丰富的外设组合与可扩展的大容量存储配置 [J],
5.集成独立于内核的外设新型8位单片机 [J],
因版权原因,仅展示原文概要,查看原文内容请购买。

关于pic18f4550的c语言编程实例

关于pic18f4550的c语言编程实例

关于pic18f4550的c语言编程实例下面的示例应用程序将使得与PIC18C452 单片机PORTB 端口相连的LED 闪烁。

编译此应用程序的命令行是:mcc18 -p 18c452 -I c:\mcc18\h leds.cc:\mcc18 是安装编译器的目录。

这个示例应用程序设计为与PICDEM 2 演示板配合使用。

示例程序包括:1. 中断处理(#pragma interruptlow、中断向量、中断服务程序和现场保护)2. 系统头文件3. 针对处理器的头文件4. #pragma sectiontype5. 行内汇编/* 1 */ #include/* 2 */ #include/* 3 *//* 4 */ #define NUMBER_OF_LEDS 8/* 5 *//* 6 */ void timer_isr (void);/* 7 *//* 8 */ static unsigned char s_count = 0;/* 9 *//* 10 */ #pragma code low_vector=0x18/* 11 */ void low_interrupt (void)/* 12 */ {/* 13 */ _asm GOTO timer_isr _endasm/* 14 */ }/* 15 *//* 16 */ #pragma code/* 17 *//* 18 */ #pragma interruptlow timer_isr save=PROD/* 19 */ void/* 20 */ timer_isr (void)/* 21 */ {/* 22 */ static unsigned char led_display = 0;/* 23 *//* 24 */ INTCONbits.TMR0IF = 0;/* 25 *//* 26 */ s_count = s_count % (NUMBER_OF_LEDS + 1);/* 27 *//* 28 */ led_display = (1 << s_count++) - 1;/* 29 *//* 30 */ PORTB = led_display;/* 31 */ }/* 32 *//* 33 */ void/* 34 */ main (void)/* 35 */ {/* 36 */ TRISB = 0;/* 37 */ PORTB = 0;/* 38 *//* 39 */ OpenTimer0 (TIMER_INT_ON & T0_SOURCE_INT & T0_16BIT);/* 40 */ INTCONbits.GIE = 1;/* 41 *//* 42 */ while (1)/* 43 */ {/* 44 */ }/* 45 */ }第 1 行:这一行包含了一般处理器头文件。

pic18f4550的usb应用例程

pic18f4550的usb应用例程

typedefint.h#define USE_USB_BUS_SENSE_IO//-------------------------------USB端点定义#define _EP01_OUT 0x01#define _EP01_IN 0x81#define _EP02_OUT 0x02#define _EP02_IN 0x82#define _EP03_OUT 0x03#define _EP03_IN 0x83#define _EP04_OUT 0x04#define _EP04_IN 0x84#define _EP05_OUT 0x05#define _EP05_IN 0x85#define _EP06_OUT 0x06#define _EP06_IN 0x86#define _EP07_OUT 0x07#define _EP07_IN 0x87#define _EP08_OUT 0x08#define _EP08_IN 0x88#define _EP09_OUT 0x09#define _EP09_IN 0x89#define _EP10_OUT 0x0A#define _EP10_IN 0x8A#define _EP11_OUT 0x0B#define _EP11_IN 0x8B#define _EP12_OUT 0x0C#define _EP12_IN 0x8C#define _EP13_OUT 0x0D#define _EP13_IN 0x8D#define _EP14_OUT 0x0E#define _EP14_IN 0x8E#define _EP15_OUT 0x0F#define _EP15_IN 0x8F//-------------------------------USB各种标准请求类型#define GET_STATUS 0 // 主机请求一个设备、接口或端点的特性状态#define CLR_FEATURE 1 // 主机请求禁止一个设备、接口或端点上的特征#define SET_FEATURE 3 // 主机请求启用一个在设备、接口或端点上的特征#define SET_ADR 5 // 主机指定一个地址来与设备通信#define GET_DSC 6 // 主机请求一个指定的描述符#define SET_DSC 7 // 主机新增一个描述符,或是更新一个存在的描述符#define GET_CFG 8 // 主机请求目前设备配置的数值#define SET_CFG 9 // 指示设备使用选择的配置#define GET_INTF 10 // 如果设备支持的配置支持多个互不相关设置的端口,主机请求目前的设置#define SET_INTF 11 // 如果设备支持多个互不相关设置的接口,主机请求设备使用一个指定的设置#define SYNCH_FRAME 12 // 设备与报告一个端点的同步帧#define DEVICE_REMOTE_WAKEUP 0x01 // 设备远程唤醒#define ENDPOINT_HALT 0x00 // 端点挂起/* Endpoint Transfer Type */#define _CTRL 0x00 //Control Transfer#define _ISO 0x01 //Isochronous Transfer#define _BULK 0x02 //Bulk Transfer#define _INT 0x03 //Interrupt Transfer/* Descriptor Types */#define DSC_DEV 0x01#define DSC_CFG 0x02#define DSC_STR 0x03#define DSC_INTF 0x04#define DSC_EP 0x05/* Configuration Attributes */#define _DEFAULT 0x01<<7 //Default Value (Bit 7 is set)#define _SELF 0x01<<6 //Self-powered (Supports if set)#define _RWU 0x01<<5 //Remote Wakeup (Supports if set)//-------------------------------USB类型定义/*MUID = Microchip USB Class ID用来指明usb的那个类型获得EP0数据的流通*/#define MUID_NULL 0 //无#define MUID_USB9 1 //USB控制传输#define MUID_HID 2 //HID#define MUID_CDC 3 //海量传输//------------------------------- 端点状态定义#define OUT 0#define IN 1#define PIC_EP_NUM_MASK 0b01111000#define PIC_EP_DIR_MASK 0b00000100#define EP00_OUT ((0x00<<3)|(OUT<<2))#define EP00_IN ((0x00<<3)|(IN<<2))#define EP01_OUT ((0x01<<3)|(OUT<<2))#define EP01_IN ((0x01<<3)|(IN<<2))#define EP02_OUT ((0x02<<3)|(OUT<<2))#define EP02_IN ((0x02<<3)|(IN<<2))#define EP03_OUT ((0x03<<3)|(OUT<<2))#define EP03_IN ((0x03<<3)|(IN<<2))#define EP04_OUT ((0x04<<3)|(OUT<<2))#define EP04_IN ((0x04<<3)|(IN<<2))#define EP05_OUT ((0x05<<3)|(OUT<<2))#define EP05_IN ((0x05<<3)|(IN<<2))#define EP06_OUT ((0x06<<3)|(OUT<<2))#define EP06_IN ((0x06<<3)|(IN<<2))#define EP07_OUT ((0x07<<3)|(OUT<<2))#define EP07_IN ((0x07<<3)|(IN<<2))#define EP08_OUT ((0x08<<3)|(OUT<<2))#define EP08_IN ((0x08<<3)|(IN<<2))#define EP09_OUT ((0x09<<3)|(OUT<<2))#define EP09_IN ((0x09<<3)|(IN<<2))#define EP10_OUT ((0x0A<<3)|(OUT<<2))#define EP10_IN ((0x0A<<3)|(IN<<2))#define EP11_OUT ((0x0B<<3)|(OUT<<2))#define EP11_IN ((0x0B<<3)|(IN<<2))#define EP12_OUT ((0x0C<<3)|(OUT<<2))#define EP12_IN ((0x0C<<3)|(IN<<2))#define EP13_OUT ((0x0D<<3)|(OUT<<2))#define EP13_IN ((0x0D<<3)|(IN<<2))#define EP14_OUT ((0x0E<<3)|(OUT<<2))#define EP14_IN ((0x0E<<3)|(IN<<2))#define EP15_OUT ((0x0F<<3)|(OUT<<2))#define EP15_IN ((0x0F<<3)|(IN<<2))//-------------------------------缓冲期描述符状态定义/* Buffer Descriptor Status Register Initialization Parameters */#define _BSTALL 0x04 //缓冲器停止始能#define _DTSEN 0x08 //数据套索同步使能#define _INCDIS 0x10 //地址递增禁止#define _KEN 0x20 //保持保存所有权使能#define _DAT0 0x00 //包期待下一个#define _DAT1 0x40 //包期待下一个#define _DTSMASK 0x40 //如果DTSEN没有使能,保持置1 #define _USIE 0x80 //SIE拥有缓冲区#define _UCPU 0x00 //CPU拥有缓冲区//-------------------------------控制传输常量定义/* Control Transfer States */// 控制传输状态定义#define WAIT_SETUP 0 // 等待状态#define CTRL_TRF_TX 1 // 控制传输发送数据状态#define CTRL_TRF_RX 2 // 控制传输接收数据状态/* USB PID: Token Types - See chapter 8 in the USB specification *///PID 令牌#define SETUP_TOKEN 0b00001101 // 主机到设备的控制管道设置事务#define OUT_TOKEN 0b00000001 // 主机到设备的数据事务#define IN_TOKEN 0b00001001 // 设备到主机的数据事务/* bmRequestType Definitions */#define HOST_TO_DEV 0 //主机到设备(数据方向)#define DEV_TO_HOST 1 //设备到主机(数据方向)#define STANDARD 0x00 // 标准类别#define CLASS 0x01 // 特定USB类别定义,HID的请求属于这一类#define VENDOR 0x02 // 厂商自定义请求#define RCPT_DEV 0#define RCPT_INTF 1#define RCPT_EP 2#define RCPT_OTH 3//-------------------------------HID常量定义/* HID */#define HID_INTF_ID 0x00 //HID接口ID号#define HID_UEP UEP1#define HID_BD_OUT ep1Bo //HID输出事务端点#define HID_INT_OUT_EP_SIZE 8 //输入事务端点缓冲区大小#define HID_BD_IN ep1Bi //HID输入事务端点#define HID_INT_IN_EP_SIZE 8 //输出事务端点缓冲区大小#define HID_NUM_OF_DSC 1 //HID描述符个数#define HID_RPT01_SIZE 47 //HID报表描述符大小#define HID_INTF 0x03#define HID_INPUT_REPORT_BYTES 2 //输出报表大小#define HID_OUTPUT_REPORT_BYTES 2 //输入报表大小#define HID_FEATURE_REPORT_BYTES 2 //特征报表大小/* Class Descriptor Types */#define DSC_HID 0x21#define DSC_RPT 0x22#define DSC_PHY 0x23// HID特定请求#define GET_REPORT 0x01#define GET_IDLE 0x02#define GET_PROTOCOL 0x03#define SET_REPORT 0x09#define SET_IDLE 0x0A#define SET_PROTOCOL 0x0B//--------------------------------端点数以及EP0缓冲区字节数定义#define EP0_BUFF_SIZE 8 // 8, 16, 32, or 64#define MAX_NUM_INT 1 // 为跟踪交替设置,中断端点最大个数#define MAX_EP_NUMBER 1 // 端点号定义,本例用到端点0和1//--------------------------------端点N的初始化配置字#define EP_CTRL 0x06 // 配置SETUP事务并是能输入输出#define EP_OUT 0x0C // 配置使能输出#define EP_IN 0x0A // 配置使能输入#define EP_OUT_IN 0x0E // 配置使能输入输出#define HSHK_EN 0x10 // 使能握手信号#define _RAM 0 // 数据区区别定义#define _ROM 1//---------------------------------USB接入断开标志#define USB_BUS_ATTACHED 1 //USB上电#define USB_BUS_DETACHED 0 //USB断点/* USB Device States - To be used with [byte usb_device_state]USB设备状态定义,最终应该达到CONFIGURED_STATE状态,算USB与主机配置完成*/#define DETACHED_STATE 0 //分离状态#define ATTACHED_STATE 1 //接入状态#define POWERED_STATE 2 //使能状态#define DEFAULT_STATE 3 //缺省状态#define ADR_PENDING_STATE 4 //地址未决状态#define ADDRESS_STATE 5 //地址配置状态#define CONFIGURED_STATE 6 //配置状态//************************************************************************#define _PPBM0 0x00 // 乒乓缓冲模式0#define _PPBM1 0x01 // 乒乓缓冲模式1#define _PPBM2 0x02 // 乒乓缓冲模式2#define _LS 0x00 // 低速USB模式#define _FS 0x04 // 全速USB模式#define _TRINT 0x00 // 使用内部收发器#define _TREXT 0x08 // 使用外部收发器#define _PUEN 0x10 // 使用内部上拉电阻#define _OEMON 0x40 // 使用OE信号监视器#define _UTEYE 0x80 // 使能眼图//***********************************************************************#define MODE_PP _PPBM0#define UCFG_V AL _PUEN|_TRINT|_FS|MODE_PP //USB配置寄存器设置//--------------------------------------数据类型定义typedef unsigned char byte; // 8-bittypedef unsigned int word; // 16-bittypedef unsigned long dword; // 32-bit//-----------------------------------USB设备状态类型typedef union _USB_DEVICE_STATUS{byte _byte;struct{unsigned RemoteWakeup:1;// [0]Disabled [1]Enabled: See usbdrv.c,usb9.cunsigned ctrl_trf_mem:1;// [0]RAM [1]ROM};} USB_DEVICE_STATUS;//-----------------------------------字节位定义类型typedef union _BYTE{byte _byte;struct{unsigned b0:1;unsigned b1:1;unsigned b2:1;unsigned b3:1;unsigned b4:1;unsigned b5:1;unsigned b6:1;unsigned b7:1;};} BYTE;//------------------------------------字定义类型typedef union _WORD{word _word;struct{byte byte0;byte byte1;};struct{BYTE Byte0;BYTE Byte1;};struct{BYTE LowB;BYTE HighB;};struct{byte v[2];};} WORD;#define LSB(a) ((a).v[0]) //定义低字节(如果是WORD型的可以直接用这个替代高低字节)#define MSB(a) ((a).v[1]) //定义高字节//-------------------------------------指针类型定义(双字节的)typedef union _POINTER{struct{byte bLow;byte bHigh;//byte bUpper;};word _word; // bLow & bHigh//pFunc _pFunc; // Usage: ptr.pFunc(); Init: ptr.pFunc = &<Function>;byte* bRam; // Ram byte pointer: 2 bytes pointer pointing// to 1 byte of dataword* wRam; // Ram word poitner: 2 bytes poitner pointing// to 2 bytes of datarom byte* bRom; // Size depends on compiler settingrom word* wRom;//rom near byte* nbRom; // Near = 2 bytes pointer//rom near word* nwRom;//rom far byte* fbRom; // Far = 3 bytes pointer//rom far word* fwRom;} POINTER;//----------------------------------USB缓冲描述符类型定义typedef union _BD_STAT //缓冲描述符状态寄存器位定义{byte _byte;struct{unsigned BC8:1;unsigned BC9:1;unsigned BSTALL:1; //Buffer Stall Enableunsigned DTSEN:1; //Data Toggle Synch Enableunsigned INCDIS:1; //Address Increment Disableunsigned KEN:1; //BD Keep Enableunsigned DTS:1; //Data Toggle Synch Valueunsigned UOWN:1; //USB Ownership};struct{unsigned BC8:1;unsigned BC9:1;unsigned PID0:1;unsigned PID1:1;unsigned PID2:1;unsigned PID3:1;unsigned :1;unsigned UOWN:1;};struct{unsigned :2;unsigned PID:4; // PID包定义,占4位unsigned :2;};} BD_STAT; // 缓冲描述状态寄存器typedef union _BDT{struct{BD_STAT Stat; //缓冲描述符状态byte Cnt; //缓冲描述符字节计数byte ADRL; //缓冲区地址低字节byte ADRH; //缓冲区地址高字节};struct{unsigned :8;unsigned :8;byte* ADR; //缓冲区地址,ADR占两个字节,但数据是一个字节};} BDT; //缓冲描述符表//----------------------------控制传输配置标准数据字节类型定义typedef union _CTRL_TRF_SETUP{// 排列间接地址struct{byte _byte[EP0_BUFF_SIZE]; //#define EP0_BUFF_SIZE 8 ,8个字节的EP0缓冲区};// 标准的设备请求,在USB配置设备时用到的各个位下面都有定义,具体见USB标准请求struct{byte bmRequestType; //设置数据的格式(标准的数据请求)byte bRequest; //一个字节用来指定请求word wValue; //主机用来传输信息给设备。

PIC18F4550芯片

PIC18F4550芯片

带全速USB接口的PIC18F4550单片机应用设计USB是一种快速的、双向同步传输的、廉价并可以进行热插拔的串行接口。

利用USB 总线技术,开发适用于科学研究和工业牛产的各种仪器仪表设备,借以取代传统计算机测控系统中采用串行RS232或并行接口的仪器仪表设备,使计算机测控系统更加高效实时,方便灵活。

利用USB总线的数据采集方案有两种,一种是采用普通单片机加上专用的USB通信芯片。

该方案可充分利用开发人员原有的硬件资源和软件知识,开发成本较低,但系统的设计和调试较为麻烦,且电磁兼容性差,容易造成主机不能识别USB设备。

另一种是利用具有USB接口功能的单片机。

使用这些专用芯片构成的数据采集系统电路设计简单,调试方便,电磁兼容性好。

然而,目前大部分具有USB功能的单片机都是专门针对个人计算机外围设备或消费市场的需要而设计的,忽略了嵌入式工程师的需要。

Microchip公司新款PIC18F4550系列单片机的问世,为广泛的嵌入式应用增添了全速USB的优势,即使遇到恶劣的操作环境或在只能不定时地连接个人计算机的情况下,也能正常工作。

本文以光栅位移传感器检测系统的设计为背景,详细介绍了带全速USB接口的单片机PIC18F4550的应用设计方法。

1 PIC18F4550介绍PIC18F4550是Microchip公司最新生产的带全速USB接口的8位高档单片机,芯片为40/44脚封装。

该单片机除了具有PIC单片机所特有的精简指令集(RISC)、数据总线和指令总线相互独立的哈佛(Harvard)结构等特点外,还配备了自编程闪存存储器以及纳瓦节能技术,工作频率达48 MHz,数据传输速率高达12 Mbps。

另外,还具有Microchip先进PMOS 电可擦除单元(PEEC)闪存技术,耐擦写次数可高达100万次,而数据保存期能超过40年。

因而该芯片有很强的控制能力和灵活的工作方式。

新器件的全速USB 2.0接口具有1 KB双重存取RAM,支持高达32个端点(双向16对)和2种数据传输速率(即全速模式1 2 Mbps和低速模式1.5 Mbps),具有USB协议所规定的4种数据传输方式(控制传输方式、中断传输方式、批量传输方式和实时传输方式)。

PIC最小系统电路图(PIC18F4520)

PIC最小系统电路图(PIC18F4520)

RB1 C1 R1 4.7K RC3 104
/MCLR
C
RP1 1K VCC 9 8 7 6 5 4 3 2 1
LED1 LED LED2 LED LED3 LED LED4 LED LED5 LED LED6 LED LED7 LED LED8 LED
RD7 RD6 RD5 RD4 Y1 RD3 RD2 RD1 RD0 C2 22P 4M OSC2 C3 22P GND 1 VCC 2 VO1 3 RE0 4 RE1 5 RE2 6 RD0 7 RD1 8 RD2 9 RD310 RD411 RD512 RD613 RD714 VCC 15 GND 16 J7 GND VCC VL RS LCD1602 R/W E D0 D1 D2 D3 D4 D5 D6 D7 BLA BLK LCD1602 GND VCC VO2 RE0 RE1 RE2 RD0 RD1 RD2 RD3 RD4 RD5 RD6 RD7 VCC VOUT VCC GND VO2 VCC VOUT VR2 10K Title VIA VIA3
B
C8 J4 100uF
GND DC-PORT
5V电电
J5 0 0 2 1 VDD DD+ GND USB-B VIA VIA2 1 2 3 4 F1 FUSE1 VCC
2
GND VCC
电电电电
SW1 2 4 6 SW 1 3 5
A
3
4
A
PIC18F4520最最最最V2.0
Size A4 Date: File: 15-Aug-2014 F:\PIC18F4520最最最最V2.ddb Sheet of Drawn By: 4 Number Revision
PIC单单单单单

ICD2系列说明书

ICD2系列说明书

ICD2系列说明书MPLAB IDE⼊门指导 mini-PRO ICD2系列说明书编著尤思胜上海湘渐电⼦科技2008年第2版⽬录mini-PRO ICD2 在线仿真调试器/编程器简介 (2) MPLAB ICD2简介 (3)在线调试器和在线仿真器⽐较 (3)仿真调试功能的限制 (4)调试序保留的资源 (4)使⽤的软件 (4)ICD2⽀持的芯⽚型号 (5)ICSP接⼝与芯⽚的连接 (5)6芯排线连接说明 (6)ICD2 USB驱动安装 (6)ICD2串⼝设置 (7)选择芯⽚型号 (7)设置芯⽚CONFIG(配置)字 (7)使⽤ICD2作为调试器 (8)1.硬件连接 (8)2.设置ICD2选项 (8)2.1 选择⼯具类型 (8)2.2 设置通信⽅式 (8)2.3 设置编程选项 (8)2.4设置电源 (9)2.5⼯作状况及其它信息 (9)3.建⽴⼯程项⽬ (9)3.1建⽴项⽬ (9)3.2添加(删除)⽂件 (10)4.使⽤ICD2进⾏调试 (10)4.1打开源程序和变量观察窗⼝ (10)4.2软件模拟器的秒表功能 (12)4.3编译项⽬ (12)4.4编程(烧写)⽬标芯⽚ (12)4.5运⾏及运⾏⽅式 (12)4.6断点设置 (13)MPLAB IDE的主菜单 (13)使⽤ICD2作为编程器 (14)1.硬件连接 (14)2.选择⼯具类型 (14)3.ICD2的编程设置 (15)4.导⼊导出烧写代码⽂件 (15)读写芯⽚操作 (15)5.项⽬实例 (16)常见问题解释 (17)mini-PRO ICD2 在线仿真调试器/编程器 mini-PRO ICD2是在Microchip最新版本MPLAB-ICD2框架上研发的在线仿真调试器/编程器,⼯作在Microchip免费提供的MPLAB-IDE集成开发环境,实现ICD2的全部功能,其主要功能特性有:源程序编辑直接在源程序界⾯调试可设置⼀个断点寄存器和变量观察程序代码区观察寄存器修改单步调试停⽌冻结芯⽚的运⾏(不包括定时器)实时在线调试可做编程器使⽤根据多年⽣产和使⽤ICD2遇到的问题,mini-PRO ICD2相对MPLAB-ICD2,作以下⼏点改进:z去除232串⼝连接,改⽤单⼀⾼速USB2.0接⼝(PIC18F4550⾼达12Mbit/s)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
– USB 状态寄存器报告 SIE 中的事务状态。 当 SIE 发出USB 传输 完成中断信号时,应该读 USTAT 以确定传输的状态。 USTAT 包 含传输端点编号、传输方向和乒乓缓冲器指针值 (如果使用的 话)。
• USB 设备地址寄存器 (UADDR) • 帧编号寄存器 (UFRMH:UFRML)
存储器介绍
• USB RAM
USB使用bank4-bank7共1k的空间,在usb模块禁止的时候,普通内存 空间一样使用,当使能usb模块时,此空间用作usb双缓冲内存,作为单片 机内核和 串行接口引擎(SIE)共享内存; Bank 4 用于 USB 缓冲器管理,并在使能模块期间不可用作其他目的。
乒乓缓冲
USB 模块跟踪每个端点的乒乓指针。当使能此模块时,所有指针都复 位到指向偶数 BD。在事务完成之后(UOWN 被 SIE 清零),指针被 切换到奇数 BD。在下一次事务完成之后,指针被切换回偶数 BD。 • 上次事务的奇 / 偶状态保存在 USTAT 寄存器的 PPBI 位中。 用户可以 使用PPBRST 位将所有乒乓指针复位到偶数状态。 •
– 帧编号寄存器包含 11 位帧编号。 低位字节保存在UFRML 中,而高 3 位则保存在 UFRMH 中。 不管是否接收到 SOF 令牌,都用当前帧编号 更新该寄存器对。对于单片机而言,这些寄存器是只读的。 帧编号寄存 器主要用于同步传输。
• 端点使能寄存器 0 到 15 (UEPn)
缓冲器描述符
PIC18F4550硬件介绍
2011.3.20
硬件特点
• USB外设
– 内置稳压器的片上USB 收发器 – 兼容USB V2.0 – USB 具有1 KB 双重存取RAM
• 高灌/ 拉电流25 mA/25 mA / 25 • 10 位最多13 路通道模数转换器模块 (A/D),采集时间可编程
存储器介绍
USB 中断
• • • • USB 中断状态寄存器 (UIR) USB 中断允许寄存器 (UIE) USB 错误中断状态寄存器 (UEIR) USB 错误中断允许寄存器 (UEIE)
Bank 4 中的寄存器组成称为缓冲器描述符表 (BufferDescriptor Table,BDT)的结构,专用 于控制端点缓冲器。 • 这为用户构建和控制各种长度和配置的端点缓冲器提供了 灵活的方法。 • 每个BD都由4个寄存器组成,共64组。 •
– BDnSTAT:BD 状态寄存器<最高位UOWN决定BD拥有权,0归 内核,1归SIE,拥有权只包括修改权。内核和SIE都可以读取,,当 SIE拥有缓冲器时单片机内核仍可以读 BDnSTAT ,反之亦然。> – BDnCNT:BD 字节计数寄存器 – BDnADRL:BD 低地址寄存器 – BDnADRH:BD 高地址寄存器
乒乓缓冲
• 当端点有两组 BD 项时 (一组用于偶数传输,一
组用于奇数传输),它被定义为具有乒乓缓冲器。 这样就允许CPU 在处理一组 BD 的同时,SIE 处 理另一组 BD。这种方式的双向缓冲BD 可实现单 片机与USB 之间的最大数据吞吐量。 • USB 模块支持四种模式的操作:
– 不支持乒乓缓冲 – 仅支持 OUT 端点 0 的乒乓缓冲 – 支持所有端点的乒乓缓冲 – 支持除端点 0 外的所有其他端点的乒乓缓冲 <使用UCFG寄存器中的PPB1:PP寄存器 (UCON)
使能主 USB 外设 乒乓 (Ping-Pang)缓冲器指针复位 挂起模式控制 禁止包传输 总线速度 (全速和低速) 片上上拉电阻使能 片上收发器使能 乒乓缓冲器的使用
• USB 配置寄存器 (UCFG)
-
USB寄存器
• USB 传输状态寄存器 (USTAT)
• 数据存储器
– 最多16个存储区,bank0-bank15,每个256个字节,共4k byte,范围0x000-0xfff。 – 分为通用寄存器(GPR)和特殊功能寄存器(SFR)两部分, 复位不会改变其内容。 – 存储区选择寄存器(Bank Select Register,BSR)。
内存地址<11:0>=BSR<3:0>+偏移地址<7:0>
存储器介绍
• 快速操作存储区(AccessBank)
为了确保能在一个周期内存取常用寄存器(SFR 和所选的 GPR),PIC18 器件设置了快速操作存储区(AccessBank)。
bank0
bank15
USB模块介绍
• 时钟源
– 当PIC18F4550 进行USB 连接时,它必须提供 6 MHz或48 MHz 的时钟以进行USB 操作。 – 可以使用独立于内核的时钟源。
相关文档
最新文档