Questions tagged «pic»

PIC是Microchip生产的8位,16位和32位RISC微控制器品牌。“ PIC”最初是“ Peripheral Interface Controller”的缩写。

3
dsPIC上的EEPROM读/写错误
我正在运行Microchip dsPIC30F6012a。我在多个运行相同软件的PCB上安装了该芯片,并在所有PCB上观察到相同的问题。这意味着系统性问题,而不是一次性生产问题。这个问题也是可以重现的,这意味着如果我知道在哪里看,我应该可以杀死它。但是我仍然很难调试应用程序。 被测板接受24V,通过V7805降压至5V。该芯片在带有16x PLL的内部振荡器上运行,运行速度约为29.5 MIPS。该板上的相关代码本质上非常简单:唤醒,从EEPROM读取数据,然后进入无限循环。每毫秒中断一次,观察一些环境数据,并将更新的值写入EEPROM。还有其他事情,但是即使不相关的代码被注释掉,问题仍然会发生,因此我可以肯定地确定它与当前的问题无关。 在一般情况下,板卡有95%的时间以正确的内存值唤醒,然后继续其业务。但是,其他5%的时间会以错误的值唤醒。具体来说,它会以本应具有的数据的位翻转版本唤醒。我正在看的是一个四字节的无符号长整数,长整数的高位或低位字都可能被翻转。例如,10变成2 ^ 16-10,之后变成2 ^ 32-10。我可以通过手动重启数十次来重现故障,但这并不是很一致,并且我的开关手指已经磨损了。 为了以受控方式重现该问题,我制作了第二块板,该板驱动被测板的24V电源。(另一个dsPIC驱动达林顿光电耦合器。)测试板将24V关断1.5秒(足够长的时间使5V电源轨降到基本为0并停留在那里一秒钟),然后将24V开通一段可配置的时间长度。凭借大约520 mS的接通时间,我每次都能在五个电源周期内重现该EEPROM故障。 5V电源轨表现合理。假设我可以相信我的示波器,它会在开机1毫秒内稳定在5V,可能会有0.4V的过冲。关断时,它以指数方式衰减至0V,在50 mS内达到1V。我没有看似相关的构建警告,只有未使用的变量和文件末尾缺少换行符。 我已经尝试了几件事: 启用/禁用MCLR 启用/禁用WDT 启用/禁用代码保护 启用/禁用/更改掉电检测电压 启用/禁用/更改开机定时器 主内部振荡器上的不同PLL设置 连接/断开我的PICkit 3编程器 在5V电压轨上增加470 uF的电容 在我的MCLR引脚上的4.7k上拉电阻上添加/移除0.1 uF 禁用代码中的所有中断,并且在主循环中仅保留EEPROM更新 开始读取EEPROM之前,在启动例程中增加了1.5秒的延迟 我还编写了单独的测试代码,除了继续将值写入EEPROM然后再将它们读回以确保该值没有更改外,它什么也没做。数以万计的迭代没有出错。我所能得出的结论是,EEPROM读取或写入出现问题,特别是在上电/掉电时。 自2007年以来,我一直在使用相同的EEPROM库。我偶尔看到故障,但没有可重复的内容。相关代码可以在这里找到:http: //srange.net/code/eeprom.c http://srange.net/code/readEEByte.s http://srange.net/code/eraseEEWord.s http:/ /srange.net/code/writeEEWord.s 我以前在其他应用程序中曾见过EEPROM错误,但始终都是一次过的小故障,没有任何可重复的或一致的。 有人知道发生了什么吗?我没办法尝试了。

3
除非启动延迟时间长或连接了总线分析仪,否则为什么我的CAN收发器不会收到消息?
我正在使用16位MCU PIC24HJ64GP504编写基于CAN的应用程序。基本上,这是我的电路板与另一个节点之间的通信,该通信持续不断地以1 Mbit / s的速度使用CAN向我的电路板发送数据。我正在将PIC24中的ECAN模块配置为以1 Mbit / s的速度工作。我以这样的方式编写代码:在开始的10毫秒内,ECAN模块将接受来自另一侧的所有消息,然后,我将ECAN模块重新配置为仅接受消息ID为0x13的那些消息。 现在出现问题了。另一个节点和我的电路板同时启动。另一个节点在通电后约40毫秒后开始传输消息。但是我无法从董事会上收到任何消息。现在,如果我先给板子加电,给它一些时间用新的滤波器重新配置ECAN模块,然后安定下来再给另一个节点加电,那么一切就可以正常工作。 现在是最奇怪的部分。.如果我在电路板和另一个节点之间连接了CAN总线分析仪,并且即使我同时为两个节点加电,则一切正常……不需要先为电路板加电。我已经使用来自不同制造商的三种不同的总线分析仪进行了尝试,并获得了相同的结果。 在我看来,在重新配置ECAN模块期间,需要一些时间才能解决。随着总线中总线分析仪的引入,这段时间被缩短了,以便一切正常。但是我不确定到底是什么问题。 在过去的七天里,我一直在努力解决这个问题。 PS:今天我检查了一个示波器,发现如果另一个节点在加电后170毫秒后开始传输,则整个工作正常。在此之前,除非连接了总线分析仪,否则我的设备不会收到任何消息。最糟糕的部分是我无法延迟其他节点的传输,该节点的固件是专有的。 我也在今天的一个论坛上读到,CAN需要在节点处使用120电阻才能使其正常工作(即使我的节点没有电阻并且工作正常,只要在重新配置后有一定的时间来解决)。我怀疑总线分析仪的引入会以某种方式更改某些网络的电气参数,从而缩短我的节点在重新配置后建立所需的时间。但我不确定.. :(

3
#if 0有什么作用
今天,我开始使用MPLAB X对PIC进行编程,并找到了一个代码模板,其中包含多个文件和可填充代码的位置。在我拥有包含我的代码的单个文件之前。在此模板中,我应将配置位放在其中,其中包含以下文本: /* TODO Fill in your config bits here. Remove #if 0 to embed config words. */ #if 0 /* General syntax for configuration word 1 - Check your device .h file for an up to date listing of available macros.*/ __CONFIG(FOSC_INTOSC & WDTE_OFF & PWRTE_OFF & MCLRE_OFF & …

5
HEX文件中可编辑的PIC序列号
目前,我的固件中有一个硬编码的序列号,用于正在使用的设计。固件可以读取并报告序列号。可以满足我的需求。麻烦在于,每个新的序列号都需要我更改代码并重新编译。当要建造许多单元时,这很麻烦,可能会引入错误,并且是全面的不良做法。序列号是给我的,硬件设计是一成不变的,因此我无法在硬件中添加任何功能来序列化这些单元(EEPROM /硅ID芯片/上拉)。我想做的是将序列号定位在固定地址,编译一次代码,然后在已编译的HEX文件中为每个新序列号编辑该地址。该数字在多个地方都有引用,因此理想情况下,我想一次定义和定位它,然后在我的代码的其他地方引用该“变量”。有谁知道如何使用C18编译器在我选择的特定可寻址存储器位置中定位常量数据?有没有人可以建议的更好的方法?

4
SPI的速度明显快于位冲击吗?
我有一个基于图片18f4550的项目。要写入'595移位寄存器,使用spi优于常规io引脚是否有明显的优势?我听说spi更快,但是我不确定如何。它使用的时钟不同于其他芯片吗?还是效率更高?我可以通过很少数量的指令通过常规io引脚对字节进行位敲打。SPI是否使用较少的处理能力?在相当密集的计算过程中,我将经常移出我的办公室,因此我希望有尽可能多的周期专用于我的过程而不移出。 我不想使用spi的主要原因是,我当前的布局会使访问所需的引脚变得更加困难,因为我已经将其中的一些引脚用于其他用途,并且必须将其改组。我想先了解一下有什么好处,然后再开始整理和移动它们。
8 pic  spi 

3
哪个外部传感器可以检测到CD托盘是否已打开?
我可以用来检测台式机CD托盘是否打开的传感器是什么? Digikey目录中有太多传感器可供选择。 我应该使用机械零件吗? 光束干扰成分? 哪一种可以让我检测我的CD托盘是否打开,以便可以将信息输入到PIC MCU中? 我知道我可以对此类问题进行系统调用,但我希望使用某种外部传感器。

3
模拟量规提供者[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为电气工程堆栈交换的主题。 5年前关闭。 我正在设计基于pic微控制器和飞思卡尔压力传感器的高度计。 我想使用模拟量规从图片中输出高度。我在这里找到了一些有用的信息。 我想知道的是在哪里可以买到模拟仪表,我可以自己放置秤(我基本上是在寻找原始电流表)
8 gauge  pic  analog 

3
在嵌入式系统中安全地存储和使用密钥
我正在使用一个微处理器-PIC32MZ2048efm144 MCU,该单片机接收使用特定密钥加密的命令,将其解密并执行该命令。加密的命令是脱机存储的,所以我不能随时更改密钥。密钥是FIXED。这些命令由服务器加密,并由电话下载。当手机不在线时,电话会在以后的时间将加密的命令发送到MCU 。在电话将其传达给MCU之前,这些命令已被加密,因此无法使用会话密钥。 我可以将外部加密/解密模块连接到PIC,但随后数据将至少在一个方向上通过解密。 解决方案带来了这里: 在嵌入式设备的内存中存储安全密钥 使用一次性密钥进行加密,但是我需要存储一个超级秘密密钥 我的雇主所要求的是密钥不可访问,因此除了安全存储模块和MCU提供的物理保护之外,不考虑物理保护。 假设不使用军事级设备,你们是否知道并可以推荐解决方案? 提前致谢!
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.