Questions tagged «microcontroller»

紧密耦合的独立设备中包括中央处理器(CPU),内存和(通常)各种I / O外设(UART,ADC,DAC,通用I / O,I2C等)的设备包。

3
7段LED闪烁的可能原因
我正在与国外的供应商合作以改进现有产品。我们正在努力降低成本。 当前产品包括: 4个大按钮 4个双数字7段LED。(每个按钮下方都有两位数字) 1个LCD(8个字符...每个字符显示由3x8的LCD点网格组成) 演讲者 微控制器 LCD驱动器 在改版中,供应商希望解决当前产品的问题。所有四个两位数的LED都有明显的闪烁。 供应商给我们一个估计,其中包括使用新的微控制器,重新设计电路以及重做整个程序!(我们只想交换音频文件并解决闪烁问题……我认为该产品的一般逻辑根本不需要更改) 我不确定之前的电路是如何设计的,但是可能出现闪烁现象是由于单片机在点亮LED时不够快,无法进行PWM。 通常,根据经验,可能是导致7段LED闪烁的其他原因。我只想了解这个问题,以便可以辨别供应商是否在不需要的时候在预算其他工作。

3
电子玩具中使用哪些典型的低成本微控制器和芯片?
我正在研究用于简单电子玩具的微控制器,存储芯片和声音芯片。这些玩具可能会通过按钮或开关接受用户输入,然后播放存储在存储芯片中的声音,并可能通过某些声音芯片或音频放大器播放它。 这些芯片的典型型号是什么?过去,我曾是业余爱好者使用PIC芯片。我正在寻找玩具制造商通常在其产品中使用的产品。这些可能比我以前作为业余爱好者工作时更具成本效益。 澄清 我正在研究这个b / c,我有一个玩具主意,想了解制作它的成本。我希望能够大量生产此产品。

2
您如何确定新的微控制器是否有故障?
我从未处理过来自数码相机的故障部件,但是我收到的3台新Atmel ATmega164A一直表现出极其奇怪的性能。 我将其范围缩小到与时钟有关,结果表明,所谓的“经过工厂校准”的内部振荡器产生的时钟信号在650-700 kHz之间抖动,而不是原来的1 MHz。我能够写入校准字节以使其非常接近1 MHz(仍然有些抖动),并且大多数情况下都可以正常工作,但是UART的工作方式并不正常,无论它们似乎输出连续的短脉冲流您要求他们做什么。 我已经处理过此微控制器的低功耗版本(164P),零问题,并决定将其放下并检查时钟输出,以及其稳定的1 MHz且无抖动。我倾向于得出这些164A芯片有缺陷的结论,但是我还有其他测试可以尝试确认这一点吗? 编辑:只是以为我会描述我测量时钟的过程。我已经启用了时钟输出熔丝位,并使用逻辑分析仪以很高的速率测量了适当的引脚。我有一个程序可以写入校准寄存器,OSCCAL并且已经能够尝试并尝试将错误频率提高到1 MHz。 编辑#2:经过进一步调查,似乎在一定程序大小后,微控制器开始工作阈。一个带有一个源文件并闪烁一个LED的简单项目似乎没问题,但是编译并链接我的任何其他文件(例如UART库或任何其他文件)而没有对这些方法进行函数调用都会导致微控制器在上述行为。电源连接良好,已进行了正确的去耦。目前我没有时间进一步调试它,因此我们改用了低功耗版本。我不确定确切的问题可能出在哪里1)164A和164P不兼容代码2)这两个uC的编程步骤不同3)单元有故障。我对我们的电路板设计充满信心,并将排除电源问题。不幸的是,我不能真正选择正确的答案,所以我将这个问题保留原样-也许我 将来会再次回到该问题。感谢所有提供有见地的评论或答案的人,它们对于开箱即用的uC问题可能对其他人很有用。

7
微控制器编程与面向对象编程
我已经用C ++完成了一些基本的面向对象的编程(创建B树,哈希算法,双链表),并且已经在C中完成了小项目(例如制作科学计算器等)。 就程序员必须具有的思维方式和“思维”而言,硬件编程(特别是针对微控制器)与面向软件/对象的编程有何不同? 我大多数人通常认为一个人比另一个人难吗? 以我的背景(如上所述),我是否需要为硬件编程做很多准备工作,还是可以在没有太多准备工作的情况下直接涉足?

3
使用MCU控制220V AC线
我想使用MCU打开和关闭白炽灯泡。请为220V 50Hz AC线建议一个电气开关(如继电器或其他),可在此处使用。我希望使用非常便宜的东西来使总项目成本保持最低。 编辑:不要将其限制为白炽灯泡。该解决方案应适用于每个日常生活的电器。

6
便宜的1英寸LCD适合与微控制器一起使用吗?
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为电气工程堆栈交换的主题。 4年前关闭。 有哪些便宜的LCD像素显示器可以与微控制器接口,而尺寸为1英寸或更小?(AVR,PIC24等) 我想制作一个交互式钥匙扣。 重要的因素是尺寸小,最大1.5“ ^ 2。 我看过LCD钥匙链中的小型彩色显示器,看起来很理想-但是,看起来好像它们使用了一些只与USB通讯的自定义控制器逻辑。 如果我能找到可通过SPI控制的显示器(该设备具有自定义的斑点),则像16x16单色LCD这样的显示器就可以了。 http://img.skitch.com/20090406-8dargu3hrnwdnfpgdu35k3tu78.jpg 有任何想法吗?


4
ICSP或预编程微控制器
我已经设计了用于小规模生产的PCB。目前,我要一次手工焊接20批。该PCB使用ATMEGA168微控制器,我在焊接到电路板上之前对其进行了编程-此方法目前对我来说效果很好。 我正在考虑为我制造和组装一批200块板,因为我设计的产品似乎很受欢迎。更好的做法是将ICSP接头连接到板上,还是自己继续对IC进行预编程?在制造或组装后对板进行重新编程不是预期或必需的功能。 我不确定在大规模生产环境中如何完成此操作?添加ICSP接头会稍微增加制造成本,所以预先编程是否是标准做法?


2
在两个IC之间共享一个振荡器
我在同一块板上有一个微控制器和一个FPGA。如果它们都将以相同的时钟速度运行,我是否可以仅使用一个振荡器为它们两个时钟?似乎有些事情我应该提防,但是如果我只留下简短的痕迹,我不会马上想到它的任何问题。有人做过吗?这样做会有哪些常见的陷阱?


4
Cortex M3 .bss区域初始化的裸机启动代码
我从这里得到了启发,为手臂皮质M3设计了一个裸机启动代码。但是,我遇到以下问题:假设我声明了一个未初始化的全局变量,例如main.c中的unsigned char类型 #include ... unsigned char var; ... int main() { ... } 这使得STM32 f103中的.bss区域开始于_BSS_START = 0x20000000并结束于_BSS_END = 0x20000001。现在,启动代码 unsigned int * bss_start_p = &_BSS_START; unsigned int * bss_end_p = &_BSS_END; while(bss_start_p != bss_end_p) { *bss_start_p = 0; bss_start_p++; } 尝试将整个.bss区域初始化为零。但是,在while循环内,指针增加了4个字节,因此在执行bss_start_p = 0x20000004的步骤之后,它将始终与bss_end_p不同,从而导致无限循环等。 有什么标准的解决方案吗?我是否想以某种方式“强制” .bss区域的尺寸为4的倍数?还是应该使用指向无符号字符的指针来遍历.bss区域?也许像这样: unsigned char * bss_start_p = …

1
检测哪个瞬时开关导致STM32 cpu唤醒
编辑:这个问题是错误的。stm325105只有一个唤醒引脚。但是其他ST部分具有多个唤醒引脚,因此给定的答案对此有效。 我有一个stm32f105,其中有两个连接到唤醒输入的瞬时按钮。处理器被置于待机模式。当按下任意按钮或RTC计时器触发时,CPU会唤醒。 问题是我希望CPU根据触发的唤醒输入执行不同的操作。根据5.3.5从ST stm32f105xx参考手册,没有寄存器被保留,除了表明我们已经唤醒状态寄存器(但不是以谁)和42个备份寄存器。 待机模式可实现最低功耗。它基于Cortex®-M3深度睡眠模式,禁用了稳压器。因此,1.8 V域已关闭电源。PLL,HSI振荡器和HSE振荡器也被关闭。除了备份域和备用电路中的寄存器外,SRAM和寄存器内容都会丢失。 从待机模式唤醒后,程序执行将以与复位后相同的方式重新开始(启动引脚采样,获取向量复位等)。电源控制/状态寄存器(PWR_CSR)中的SBF状态标志指示MCU处于待机模式。 此ST论坛帖子,如何确定从待机状态唤醒的起源?,表明我无法检测到软件中触发了哪种唤醒。我发现那里没有其他可以给人更多启发的帖子。 唤醒后,如何使用软件或硬件确定触发了哪个唤醒输入?


2
启用中断但没有ISR
我想知道如果启用了中断会发生什么情况(例如:恩智浦LPC1778的CAN模块中的仲裁丢失中断),但是没有为该中断定义ISR。 当发生这样的中断时,我知道相应的中断标志将被置位,但是由于我尚未定义任何ISR,因此不会为该中断的控制传递存储任何中断向量偏移地址,因此控制将回传到主例程,我可以通过在主例程中轮询中断标志来重置中断标志(这是我的想法)。当CPU确定没有ISR跳到该中断标志时,会有任何延迟吗? 任何可能发生的解决方案都可以真正帮助我。 谢谢。 更新: 我在uC上启用了CAN中断,但是没有定义ISR。当我执行内部回送测试时,代码进入了无限循环。这是在LPC1778上执行的无限循环的反汇编代码: B . ENDP 所以,如果您正在使用中断,请使用ISR。

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.