问题标签 [dspic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1445 浏览

uart - dsPic33E:没有 DMA 的 UART 示例不工作

我正在使用 dsPic33EP512GM604。我设计了一个测试电路来测试UART通信。

我已经从 Microchip 网站下载了一个示例代码,并针对我设计的设备和电路进行了相应的修改。

我在调试时面临两个问题。

  1. PLL 设置不起作用。每次它卡在“while(OSCCONbits.COSC!= 0b011);”。因此,我评论了时钟配置和使用简单的内部振荡器 FRC。

  2. UART 通信不工作。我在电路上使用RPI25作为RX,而RP20作为TX电路原理图

这是我正在使用的最终代码:

我已经通过在 RA10 上添加 LED 及其工作来测试电路。所以,我想我的代码可能有错误。

得到了问题。现在它的工作

编辑测试代码如下:

应用这些更改使我的代码正常工作。

0 投票
1 回答
1657 浏览

frequency - dsPIC33 更新 PWM 占空比和频率

我正在尝试为每个对角线使用一个 PWM 发生器(在我的情况下为 PWM1 和 PWM4)来控制 H 桥转换器。

我希望能够同时控制频率和占空比。为此,我在 PWM4 周期开始时生成触发中断,然后更新两个 PWM 通道的周期、相位和占空比寄存器。

问题是,当此更新发生时,一段时间内会出现一些意外行为。见图片。

PWM4 为青色,PWM1 为品红色,当 PWM4 触发中断发生时黄色切换。

PWM1(洋红色)似乎更新为较慢的频率(应该如此),但 PWM4 继续在旧频率上运行另一段时间。PWM1 还会产生一个更短的脉冲。我测量了更新周期、占空比和相位寄存器值所需的时间,大约是 1us,所以这应该不是问题。以下是 PWM 配置:

它们被设置为独立模式,使用主时基。

0 投票
1 回答
2242 浏览

microcontroller - dsPic33E:如何在数字输入引脚上实现输入变化通知?

正如问题所说,我想为数字输入引脚实现 ICN(输入更改通知)。

我正在使用 dsPic33EP512GM604。

我已将 Pin<22> RB1​​ 配置为输入引脚。

IR 传感器连接到同一引脚。我正在寻找一种方法(轮询除外),以在传感器检测到对象(发送高信号)时中断。

在浏览设备数据表时,我发现了一个可用的功能输入更改通知 (ICN)。

它说 :

“I/O 端口的输入变化通知功能允许设备向处理器生成中断请求,以响应选定输入引脚上的状态变化 (COS)。此功能可以检测输入状态变化 (COS) ),即使在时钟被禁用时处于休眠模式。每个 I/O 端口引脚都可以被选择(启用)以在状态改变时生成中断请求。

我试图搜索有关其实施的更多信息,但找不到任何信息。

谁能指导我实现它的方式或分享解释其实现或相关信息的链接???

0 投票
2 回答
886 浏览

at-command - HM-10:可能有些 AT 指令没有执行?

我正在开发一个项目,其中 PIC dsPIC33 通过串行端口连接到 HM-10 设备。我向设备发送 AT 命令,但似乎某些 AT 命令未在 HM-10 固件中实现。详细地:

你有类似的问题吗?非常感谢您的帮助和合作亲切的问候

0 投票
1 回答
492 浏览

microcontroller - dsPic33E:RS485 通信问题

我在通过 RS485 端口进行串行通信时遇到问题。

我正在使用带有 Max485 的 dsPic33E 微控制器。

使用断点我分析了每当我向控制器发送“0x00”时,都会收到“0xFF” 。然后我发送了“0x01”,控制器收到了“0xFD”,依此类推。

我也尝试使用环回逻辑,意味着发回接收到的字符,但每次我收到“0x00”发送的任何值。

我无法解决这个问题。下面是我正在使用的代码的快照:

这是一个测试代码。实际通讯将使用 Modbus 协议。请帮助我纠正问题。

0 投票
1 回答
1578 浏览

microcontroller - RS485:来自微控制器的传输问题

我有一个与微控制器的“传输”相关的问题。微控制器可以接收,但无法发送。

这是我之前提出的问题的另一个问题[这里]

下面是与微控制器的 max485 接口:

与微控制器的 max485 接口

这是我的代码快照:

在上面的代码中,我有一个 UART 接收中断例程。

每当接收到任何字符时,UART ISR 都会接收到它,但无法发送回任何内容。

在我的 ISR 中,我试图发回收到的字符。

此问题可能与 max485 控制引脚 (!RE/DE) 有关,在我的代码中称为RS485_CTRL 。

所以,我试图纠正这个问题,如下所示:

  1. 如果 ISR 写成

    然后微控制器发送2字节,第一个是接收到的字符,第二个字节是假字节,即。0x00之后,ISR 没有接收到任何字符。

  2. 如果 ISR 写成:

    /li>

比它传输接收到的第一个字符。但是在 ISR 进入无限循环之后,即。接收一个 NULL 字符并发送一个 NULL 字符。

根据 RS485 实施规则,

  1. RS485_CTRL (!RE/DE) 应为 0 以接收数据

  2. RS485_CTRL (!RE/DE) 应为 1 以传输数据。

我的微控制器充当从属设备,因此默认情况下我将其保持在监听模式。但是当收到数据时,我无法传输。

请帮我找出我的错误???

根据@linuxfan 给出的建议,正确的 ISR 应如下所示:

现在我的代码按预期工作正常。

0 投票
2 回答
1286 浏览

mplab - MPLAB X IDE 2.05 无法写入 Microchip dsPIC30F6014A

我们正在使用具有 Microchip dsPIC30F6014A 的 e-puck 真实机器人。我们使用 MPLAB X IDE 2.05 和 3.55 在 64 位的 Windows 8.1 中工作。我们的机器人的 PIN 码有问题,所以您告诉我们解决方案是购买 ICD 编程器来重新刷新 e-puck 中的固件并恢复它们的 PIN 以进行蓝牙连接。

我们得到了 ICD 3,用于重新闪存并开始在 MPLAB X IDE 2.05 中工作的电缆。但是,最初我们无法为机器人编程以获得内存许可,这表明在此处输入图像描述使用此配置的以下图像,我们尝试再次对其进行编程。我们被这个消息卡住了:



我们尝试按照http://www.gctronic.com/doc/index.php/E-Puck的第 5.5 节中的说明擦除闪存设备,它给我们带来了以下消息:



然后,我们再次尝试对机器人进行编程并得到相同的消息



有什么建议可以解决这个问题吗?

0 投票
0 回答
479 浏览

c - DSPIC33 ADC 转换时间

我的代码有问题;我的目标是创建一个每秒从 ADC 获取 8000 - 10000 值的代码。现在我编写了一个测试代码来配置 ADC,但根据我的计算 ADC Time for Conversion 应该是:

,但是在 MPLAB 中,当我使用 StopWatch 时,我发现 1 次转换需要将近 5 毫秒。

配置 :

ADC配置功能

读取 ADC 值的功能

0 投票
0 回答
638 浏览

usb - dspic33EP 上的 CDC USB

我正在尝试让我的照片通过 USB 与我的 PC(MacBook Pro)进行通信。这是我自制电路板的原理图,使用 dsPIC33EP256MU806: 在此处输入图像描述 我已经调整了 microchip 的 MLA 库,特别是 cdc_basic 固件。以下是我对代码所做的更改:

  • 将 ACLKCON3 更改为 0x24C3,因为我使用的是 16MHz 晶体振荡器。
  • 删除了所有与按钮和 LED 相关的代码。
  • 代码没有编译,所以我不得不添加一些#includes。

这是我的编译指示配置:

这是我的主循环:

其余代码在这里:https ://github.com/RuiLoureiro/CDC_USB_dsPIC33e256MU806

当我使用ls /dev/tty.*列出当前连接到我的 macbook 的 USB 设备时,图片没有显示。任何帮助将不胜感激。

0 投票
2 回答
566 浏览

embedded - dsPIC33EP128MC202 UART 接收器不工作

我编写了UART通信代码。TX 工作正常,但 RX 不工作。我搜索了很多,但没有找到解决方案。

我正在以时间间隔将字符 x 传输到 PC,并且我能够看到数据。但是当传输数据图片时没有收到任何东西。

下面是用于uart

我可以将数据传输到电脑,但 PIC 没有从电脑接收任何字符。提前致谢

这是我的代码。DSPIC33EP128MC202