Questions tagged «microcontroller»

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




5
在微控制器电路中使电池持续很长时间
我希望使用一些小的电池(可能是纽扣电池)为ATtiny85V供电很长时间。 我已经研究了软件方面,我的代码是由看门狗定时器驱动的,关闭了未使用的模拟和数字转换器,芯片以1MHz的频率运行,等等。当然在这方面既忙又新它消耗了多少电流,但我希望基本上已将其最小化。 它每隔几秒钟醒来一次,对ADC进行电压电平检查,将其记录到ram中,然后返回睡眠状态。如果检测到串行线已连接,则将数据喷出。 但是,现在我正在查看整个电路,并想知道是否应该做一些事情使整个电路对电池更友好? 在设计一个组件(微控制器)具有重复但可变电流消耗的持久(简单)电路时,基本的基本原则是什么? 例如: LED指示灯有什么大不了的吗?电池没电了吗?我应该在其上放一个巨大的电阻以使其变暗,还是仅仅使电阻使用电池? 我应该使用旁路/去耦电容器来均衡从电池汲取的电流,还是电容器会浪费电池的电量? 微控制器仅需要1.8V,但我没有任何1.8V电池。我应该使用两节1.x电池并发送太多电压吗?我可以通过不使用很多伏特来延长电池寿命吗?我怎么做? 检查引脚为高电平还是低电平需要额外的功率吗?与无操作或某种算术相比,检查GP I / O引脚之一的状态是否有很多额外的功耗使用? 我模糊地知道如何计算(更模糊地如何测量)电流,电压,功率,但是我不确定这些东西中的哪一部分等同于电池寿命。电池寿命的重要衡量单位是库仑吗? 我有一个模糊的想法,认为电池充满了诸如以下内容: 收费,以安培小时为单位 能源,以瓦特小时为单位 功率,以瓦特为单位 但是我不清楚电路在运行时会“吃掉”什么。我已经阅读了大量的EE101和物理教科书,但实际上我没有任何实验经验。换句话说,我已经阅读了大量有关电池的信息,但是我不确定在实践中大多数含义是什么。 电阻器会耗尽电池寿命吗?做电容器吗?二极管吗?我怀疑它们都可以,但是哪个数字重要呢?阻抗?功耗?当前?电压? 有没有一种方法可以降低电压而不浪费电池?有没有办法在增加电池寿命的同时降低电压?

2
什么有点撞
我是微控制器编程的新手。我正在使用ATmega32-A控制器和CodeVisionAVR编译器。我正在使用波形发生器(AD9833)通过SPI通信生成正弦波信号。我能够成功生成正弦波。现在,我将该信号传递给传感器。传感器输出通过多路复用器选择,并发送到ADC。现在,我想使用SPI通信读取ADC值。我已经尝试了很多设置ADC的寄存器。仍然无法正常工作。要查看SPI通信,请看我以前发布的使用spi通信的ADC寄存器设置。我正在使用USART(RS232)通信在PC(PuTTY)上打印值。 有人建议我使用位撞击。我是这个概念的新手。谁能给我提供SPI通信位冲击的示例代码。如何开始该程序?任何人都可以给我提供良好的物资。我需要任何外部硬件吗? 我已经写了这个,包括引脚连接: #define ADC_CS PORTB.3 #define MOSI PORTB.5 #define MISO PINB.6 #define SCK PORTB.7 void send_8bit_serial_data(unsigned char data) { int i; ADC_CS=0; for (i = 0; i < 8; i++) { // consider leftmost bit // set line high if bit is 1, low if bit is 0 if …

5
为什么相对简单的设备(例如微控制器)比CPU慢得多?
给定相同数量的管线级和相同的制造节点(例如65 nm)和相同的电压,简单的设备应该比复杂的设备运行得更快。同样,将多个流水线级合并为一个流级不应比级数慢很多。 现在以使用五年的CPU为例,它以2.8 GHz的频率运行14个流水线级。假设一个合并阶段;那会减慢到200 MHz以下 现在增加电压并减少每个字的位数;实际上会加快速度。 这就是为什么我不理解为什么许多当前制造的微控制器(例如AVL)以惊人的速度运行(例如5 V时为20 MHz)的原因,尽管几年前制造的复杂得多的CPU能够运行150倍或10倍以上的速度如果将所有流水线级合为一个,电压为1.2 V-ish。根据最粗略的计算,即使使用边界过时技术制造的微控制器,在其提供的电压的四分之一处,其运行速度也应至少快10倍。 因此产生了一个问题:微控制器时钟速率降低的原因是什么?

3
什么是微控制器的不同存储器类型?
编译后,从C代码将不同类型的数据放入不同的内存段。即:.text,.data,.bss,栈和堆。我只想知道这些段中的每一个在微控制器存储器中的位置。也就是说,给定存储器类型为RAM,NVRAM,ROM,EEPROM,FLASH等,哪些数据将进入哪种类型的存储器。 我在这里找到了类似问题的答案,但是他们无法解释每种不同内存类型的内容。 任何帮助都将受到高度赞赏。提前致谢!

5
FPGA,ASIC和通用微控制器之间有什么异同?
我已经阅读了这篇文章,但并没有完全回答我的问题: 我认为微控制器是指具有一些内存,寄存器并可以处理诸如LOAD,STORE和ADD之类的指令的任何事物。它包含逻辑门等以执行其作用,但是其主要任务是成为通用的位处理器。我认为Microntroller是一个相互连接的ASIC设计系统,可以创建存储和处理指令的功能。 我认为ASIC器件是一种使用逻辑和电气组件专门构建的电路,可以执行一项任务,无需考虑其他任务,也不需要额外的硬件。 我认为FPGA设备是ASIC设备(低级设备)+一堆未使用的东西,用于实现特定的真值表。 尽管有其名称,FGPA仍感觉非常“特定于应用程序”,因为必须重新连接它才能执行新的不同任务。这导致与ASIC的混淆。但是,在重新连接FPGA的情况下,应提供所有必需的硬件。而且,FPGA的目的是可编程的,但这不是微处理器的目的吗? 我上面提到的帖子还提到了HDL,我很熟悉。HDL不能同时用于ASIC和FPGA并通过代理设计整个微控制器吗?


4
如何在四层PCB中放置去耦电容器?
我搜索了有关去耦电容器放置的技术文档,其主要思想如下图所示: 我认为这是合理的,但是我必须将去耦电容器和MCU放在同一层吗?我放置其他设备不方便。所以我选择将去耦电容放在底层 我的PCB是四层(signal-power-gnd-signal),当我拆分电源和gnd层时,上图中靠近MCU引脚的两个过孔将不包含在电源和gnd层中。它具有与图一中的情况f相同的良好性能吗?在这种情况下,我是否必须考虑过孔的电感?

6
为什么Atmel AVR如此受欢迎?
最近的一个问题询问了各种类型的MCU的优缺点。鉴于答案,AVR似乎甚至都不值得一提。为什么在局外人看来,AVR越来越流行了?这是仅由于Arduino,还是因为其他因素使AVR成为特别优秀的微控制器?

3
Cortex-M系列和Cortex-R系列之间的真正区别是什么?
这真有趣!我搜索了一篇清晰的文章,但找不到与此相关的清晰文章。我也找到了此链接:ARM Cortex-R和此链接:Cortex-R系列,但它们并不十分清楚。在Wiki页面中写道: 这些内核旨在用于强大的实时使用 并在Cortex-R的页面中写道: ARMCortex®-R实时处理器为需要可靠性,高可用性,容错,可维护性和实时响应的嵌入式系统提供了高性能计算解决方案。 还有这些: 高性能:快速处理和高时钟频率 实时:处理在任何情况下都满足严格的实时约束 安全:可靠,可靠的系统,具有较高的抗错误性 经济高效:具有性能,功率和面积最佳的功能 例如:Cortex-M,最近恩智浦制造了NXP_LPC4XXX系列,时钟频率为200Mhz,Cortex-R,您可以看到:TMS570LS ARM Cortex™-R4微控制器,很有趣,因为它具有180Mhz时钟频率。 第二点:很明显。 对于第三点:还不清楚!这句话是什么意思?意味着Cortex-M不是安全/可靠的吗? 对于第五点:恩,我认为这只是一个要求! 谁有这个系列(Cortex-R)的工作经验?您对此有何看法?Cortex-M系列和Cortex-R系列之间的深刻而又确切的区别是什么?

4
从微控制器的输出引脚驱动MOSFET是否安全?
我通过在我的MCU的“饱和模式”下操作它们,将2N2222和2N3904等常用BJT用作开关。但是我相信,对于这类应用,MOSFET是更合适的器件。我有几个问题。 1)MOSFET是否像BJT一样具有“饱和模式”?通过仅在MOSFET完全“导通”的基础上提供足够高的电压就可以实现这种“饱和”吗? 2)从MCU直接驱动MOSFET是否安全?我知道MOSFET的栅极的行为就像一个电容器,因此在“充电”时会汲取一些电流,此后没有。充电电流是否高到足以损坏MCU引脚?通过将一个电阻与栅极串联,我可以保护该引脚,但这会降低开关的速度,可能导致MOSFET的高散热? 3)什么是适用于各种低功耗情况的常见“爱好者” MOSFET?IE,相当于2N2222或2N3904的MOSFET是什么?

4
您如何确定微控制器需要多少闪存/ RAM?
假设您正在启动具有某些已知功能的嵌入式项目。选择微控制器时,如何选择所需的RAM? 您是否使用开发板并先对项目进行编码,然后查看已使用了多少内存,然后选择适合该内存的合适微控制器? 您是否只是选择功能强大的微控制器作为原型,然后在拥有可用的产品后缩小规模? 您是否只是选择一种您肯定会够用的东西,如果空间不足,只是升级到更高的内存密度,否则,您只需保留现有的微控制器? 什么被认为是好的做法?

7
一个大型微控制器,还是很多小型微控制器?
相对而言,我习惯于用微控制器来做基本而直接的事情。诸如驱动LED,运行电动机,基本例程,字符LCD上的GUI等之类的东西,总是总是一项关键任务,最多还有一些其他小任务。这使我只能使用低端产品,因为在这些情况下,这确实是所有需要的东西。 我想开始设计更复杂的东西,但是微控制器连续体的上层并不是我接触过的东西。因此,在尝试选择一个微控制器同时执行许多任务的过程中,我一直处于非常困难的时期–我不能仅凭MIPS编号和令人满意的引脚排列来判断它是否具有足够的功能来执行我想要的事情去做。 例如,我想通过PI例程,一些串行和USB通讯,GUI以及一系列其他任务来控制2台BLDC电机。我很想为每个电动机配备一个微控制器,然后为其他任务配备一个微控制器,所以我可以保证杂项的开销不会增加关键的电动机功能。但是我不知道这实际上是个好主意还是幼稚的处理方式。 我想我的问题确实有两个方面: 在必须执行大量多任务处理时,多合一方法是一个好主意吗?或者细分和隔离更好,并且 如何根据任务列表直观地确定正在查看的微控制器是否具有足够的计算能力来执行所需的工作? 我一直在研究中等dsPIC33,直到运行RTOS的ARM SoC。一种系统化的方法来磨练我的需求将对我有很大帮助。

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.