发 帖  
原厂入驻New
[问答] 无法运行我的PIC32是什么回事
88 PIC32
分享
嗨,我试图让我的PIC32MZ2048ECM064把RD0调高,但当我编程时,什么也没发生。我在VCC和RDO上有PICOSCOPE,VCC是3.3V,即使用VCC高编程,RDO也总是很低。在管脚OSC1和OSC2上有一个24Mhz的外部晶体。这是我的代码:CON.://PIC32MZ2048ECM064配置位设置//'C'源行配置语句//DEVCFG3//USERID=No Setting#pragma config FMIIEN=ON//.RMII/MII Enable(MII启用)#pragma config FETHIO=ON//.I/O Pin Select(默认以太网I/O)#pragma config PGL1WAY=ON//Permission Group Lock OnWay配置(只允许一个重新配置)#pragma配置PMDL1WAY=ON//外围模块禁用配置(只允许一个重新配置)#pragma配置IOL1WAY=ON//外围引脚选择配置(只允许一个重新配置)#pragma配置FUSBIDIO=ON//USB USBID Selection(由USB模块控制)//DEVCFG2#pragma配置FPLLIDIV=DIV_8//系统PLL输入分频器(8x分频器)#pragma配置FPLLRNG=RANGE_21_42_MHZ//系统PLL输入范围(21-42MHz输入)#pragma配置FPLLICLK=PLL_FRC//系统PLL输入时钟选择(FRC输入到系统P#pragma配置FPLLMULL=MUL_128//系统PLL乘法器(PLL乘以128)\\\\\\\pragma配置FPLLPLPLPLPLPLL乘=MUL_128_128_128//系统PLL乘法器(PLL乘以128)\\\\\#pragma配置FPPLPLPLPLPLPLPLPL配置FPLLODODODIV=DIV_32//系统PLL输出时钟分配器///系统PLL输出时钟分配器(32x分配器//系统PLL输出时钟分配器(32x分配器)\\\\\32xPLL启用(USB PLL被启用)//DEVCFG1#ins语用配置FNOSC=POSC//振荡器选择位(主振荡器(HS,EC))\pragma配置DMTINTV=WIN_127_128//DMT计数窗口间隔(窗口/间隔值为127/128计数器值)\pragma配置FSOSCEN=ON//辅助振荡器启用(Enable SOSC)#pragma config IESO=ON//内部/外部切换(启用)#pragma config POSCMOD=EC//主振荡器配置(外部时钟模式)#pragma config OSCIOFNC=OFF//CLKO输出信号在OSCO管脚上激活(禁用)#pragma config FCKSM=CSECME//时钟切换和M洋葱选择(时钟开关启用,FSCM启用)#pragma配置WDTPS=PS1048576//看门狗定时器后置定时器(1:1048576)#pragma配置WDTSPGM=STOP//看门狗定时器停止在闪存编程(WDT在闪存编程期间停止)#pragma配置WINDIS=NORMAL//看门狗定时器窗口Mode(看门狗定时器处于非窗口模式)#pragma配置FWDTEN=OFF//看门狗定时器启用(WDT禁用)#pragma配置FWDTWINSZ=WINSZ_25//看门狗定时器窗口大小(窗口大小为25%)#pragma配置DMTCNT=DMT31//Deadman定时器计数选择(2^31(2147483648)\#pragma配置FDMTEN=FDMTENON//Deadman Timer Enable(Deadman Timer被启用)//DEVCFG0#pragma配置debug=OFF//后台调试器启用(调试器被禁用)#pragma配置JTAGEN=ON//JTAG启用(JTAG端口启用)#pragma配置ICESEL=ICS_PGx1//ICD Comm Channel Select(在PGEC1/PGED1上通信)#pragma配置TRCEN=ON//Trace Enable(启用了CPU中的跟踪特性)#pragma配置BOOTISA=MIPS32//Boot ISA选择(引导代码和例外代码是MIPS32)#pragma配置FECCCON=OFF_UNLOCKED//Dynamic Flash ECC配置(ECC和动态ECC被禁用(ECCCON位被写入)#pragma config FSLEEP=OFF//Flash Sleep.(当设备处于睡眠模式时,Flash断电)#pragma config DBGPER=PG_ALL//调试模式CPU访问权限(允许CPU访问所有权限区域)#pragma config EJTAGBEN=NORMAL//EJTAG引导(正常EJTAG功能)//DEVCP0#pragma配置CP=OFF//代码保护(保护禁用)//SEQ0//DEVADC1//DEVADC2//DEVADC3//DEVADC4//DEVADC5//pragma配置语句应该在项目文件include.//useprojectenums而不是define for ON和OFF.include<xc.h>MAIN:include<xc.h>//mai之前n个引脚库包括“Config.h”//Fuse设置定义SYSCLK 24000000L//时钟速度24MHz外部空闲主(void){ANSELD=0;//将所有端口D设置为数字TRISDbits.TRISD10=0;//D10=输出LATDbits.LATD10=1;//D10=HIGH,而(1){}}我有没有设置正确的东西吗?任何帮助都很好,谢谢。
0
2020-4-28 10:14:30   评论 分享淘帖 邀请回答
19个回答
你有没有读过硅胶勘误表和你的MCU的数据表?项目41。晶体振荡器不能用作初级振荡器(OSC1/OSC2引脚)的输入。
2020-4-28 10:23:51 评论

举报

这解释了很多!请你帮我设置内部振荡器好吗?
2020-4-28 10:29:58 评论

举报

最简单的方法是设置COSC位,使用内部快速RC振荡器除以FRCdIV。请参阅MCU数据表,第8部分:“振荡器配置”的详细信息。
2020-4-28 10:44:21 评论

举报

我已经检查了开发板的微芯片数据表,它有这个选项。请参阅第22页!HTTP//WW1.MICCHIP.COM/DeLoSt/En/DeVICECD/O7000 014147A.PDF
2020-4-28 11:03:42 评论

举报

什么选择?据我所知,实际的显影板使用一个外部振荡器(与晶体相反)。
2020-4-28 11:16:16 评论

举报

我想他的意思是说电路板允许晶体直接连接到PIC。显然,电路板是在发现勘误表之前开发的。
2020-4-28 11:33:16 评论

举报

即使在PIC32数据表的第640页上,它也给出了一个24MHz的晶体代码差异的例子,它使用PIC32 MX设备上的外部24 MHz晶体故障安全时钟监控器(FSCM)来实现最大速度,内部FRC成为时钟源失效的时钟源。独立的内部备份FRC(BFRC)在时钟源上的故障变成时钟源。在PIC32 MX设备上,时钟故障导致在切换完成时触发特定中断。在PIC32 MZ设备上,NMI被触发,而必须由NMI Rout处理。FSCM产生一个中断。FSCM产生一个NMI。FCKSM和LT的定义在PIC32 MZ设备上发生了变化。FCKSM & lt;1:0Gt;(DEVCFG1和LT;15:14&Gt)1x=时钟切换被禁用,FSCM是DababeDe0.01=时钟切换被启用,FSCM被禁用。00 =时钟切换被启用,FSCM是FabCKSM & lt;1:0GT;(DeVCFG1和lt;15:14&GT)11启用时钟切换并启用时钟监控10=时钟切换被禁用并且时钟监视被启用01=时钟切换被启用并且时钟监视是禁用的:00 =时钟切换被禁用并且时钟监视是Dabablon PIC32 MX设备,CF(OSCCon & LT;3和gt)位指示时钟故障。写入该位将引发FSCM事件。在PIC32MZ设备上,CF(OSCCON<3>)位具有与PIC32MX设备相同的功能;然而,可以使用附加的CF(RNMICON<1>)位来指示NMI事件。写入该位会导致NMI事件,但不是FSCM事件。在PIC32MX设备上,时钟(OSCCON<7>)位由FSCM控制。在PIC32MZ设备上,时钟(OSCCON<7>)位不受FSCM.CLKLOCK(OSCCON<7>)的影响。如果时钟切换和监视被禁用(FCKS)。M<1:0>=1x):1=时钟和PLL选择被锁定0=时钟和PLL选择没有被锁定并且可以被修改,如果时钟切换和监视被启用(FCKSM<1:0>=0x):时钟和PLL选择从不被锁定并且可以被修改。CLKLOCK(OSCCON<7>)1=时钟和PLL选择锁定0=时钟和锁PL选择不锁定,并且可以修改A-1:振荡器配置配置差异(连续)振荡器配置差异(连续)PIC32MX5XX(连续)PIC32MX5XX/6XX/7XX/7XX特征PIC32MZ特征PIC32MZ特征PIC32MZ特征PIC32MX32MX32MX32MX5XX/6XX/6XX/7XX/7XX/7XX 32MX32MX32MXXXXXXXXXXXXXXXXX5XX/6XX/7XX/7XX/7XX/7XX/7XX/7XX/7XX/7XX(200MHz 32M32M32MZ为20=P#pragma配置FPLLIDIV.#pragma配置FPLLIDIV=DIV_6#pragma配置FPLLMUL=MUL_20\#prag配置FPLLMUL配置FPLLMUL_20\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\DIV_3#pragma配置FPLLRNG=RANGE_5_10_MHZ#pragma config FPLLMULT=MUL_50#pragma config FPLLODIV=DIV_2#define SYSFREQ(200000000L)所以不支持Crystal?我有点困惑,那么我需要配置内部振荡器,然后在我得到振荡器之前吗?这是我用C语言,PIC32和IDE的第2天,所以我在一个非常陌生的环境里尽我最大的努力。
2020-4-28 11:52:31 评论

举报

是的,它不支持晶体。“Errata”是芯片制造后发现的问题。通常在以后的芯片修订版中修复。您实际阅读过PIC的勘误表文件了吗?
2020-4-28 12:11:12 评论

举报

“勘误表”文档以这样的方式开始:“您所接收到的PIC32 MZ嵌入式连接(EC)家庭设备在功能上与当前的设备数据表(DS600 01191C)一致,除了本文档中描述的异常。”
2020-4-28 12:22:41 评论

举报

那么?顺便问一下,你报告的是哪一份文件?
2020-4-28 12:40:26 评论

举报

对不起,是的,这里是HTTP//W1.MICCHIP.COM/DeLoSt/En/DeVICECD/O9005888 J.PDF
2020-4-28 12:55:46 评论

举报

所以你要么使用精确的晶体,要么使用外部振荡器(如当前开发工具包),或者内部FRC。
2020-4-28 13:11:06 评论

举报

使用内部FRC的时刻,它的工作,好。我想我会先看看它是否足够快。谢谢你的帮助,非常感谢。
2020-4-28 13:20:04 评论

举报

使用FLR和PLL,你的芯片肯定会跑得足够快。FCR的问题是它对温度的准确性。你注意到PIC32 MZ2048 ECM064是“不推荐用于新的设计”吗?顺便说一下,不客气。
2020-4-28 13:34:54 评论

举报

你能在PIC32上禁用MCLR吗?看不见保险丝
2020-4-28 13:48:43 评论

举报

你注意到PIC32 MZ2048 ECM064是“不推荐用于新的设计”吗?是的,我现在注意到了…我很久以前开始这个项目,但是已经开始了另一个部分的工作,修改后的原型将有推荐的更换。
2020-4-28 13:54:48 评论

举报

显然你不能,只要把它拉上去就行了。
2020-4-28 14:13:02 评论

举报

我强烈建议您切换到您的PIC的MZ…EF版本。它们是引脚兼容的,并且您得到的优点是:(大部分)工作ADC。工作PMP(不阻塞设备上的大多数其他引脚)工作SkyWork以太网络更好的USABA(主要)工作主振荡器(Rev)A3)+其他修复的负载和一个FPU抛出!
2020-4-28 14:21:23 评论

举报

只有小组成员才能发言,加入小组>>

113个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表