Questions tagged «microcontroller»

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

7
使用GPIO引脚的随机数生成器?
我刚刚阅读了AVR随机数生成器问题,并遇到了多种在AVR中生成随机种子的方法: 使用专用的“安全AVR” 使用内部温度传感器 读取未写入的EEPROM 测量用户输入之间的时间间隔 使用浮动ADC引脚。 为什么不只将一个数字引脚配置为输入而没有上拉和浮空呢?从理论上讲,应该生成随机位流。为什么不使用这个?状态变化太慢了吗?它倾向于卡在1还是0?还有其他问题吗?

10
电子工程师的编程语言
我是一名电子与通信工程专业的学生,​​在上大学之前,我对编程和计算机应用程序很感兴趣。我曾经专注于设计Windows应用程序并学习其技术,但是现在,我觉得这对我的领域毫无用处……我不必学习有关计算机科学和开发软件的所有知识!(我对吗?) 我知道VB .Net,C#和C ++。我的假期有很多时间,所以我想以编程的方式深入研究“电子领域”。那么您会建议学习或专注于什么? 我想要在微控制器和其他集成电路编程中使用的那些语言。C ++是否足够,还是我也应该精通C?请告诉我您的想法。

6
内部或外部振荡器
我一直使用图片所具有的内部振荡器,因为我从未发现需要以高于8 MHz的频率运行任何东西(这是我使用的图片往往能够达到的最快速度)。除了高于8 MHz之外,是否还有其他原因意味着我应该使用外部振荡器?对我来说,似乎错了另一件事,但我很想听听别人的所作所为。

3
板载以太网和无线电的微控制器?
有谁知道结合了以下所有特征的(合理的低成本)SoC : 微控制器(任何架构,至少4KB RAM / 8KB闪存) 无线电收发器(433MHz-915MHz或2.4GHz) 以太网MAC + PHY (对于无线传感器应用程序-连接到低功率传感器节点) 我可以找到带有任一外设但不能同时兼有的微控制器的示例: 例如。 微型+以太网: LM3S9B9x = ARM Cortex-M3 +以太网MAC和PHY PIC18F66J6x = PIC18 +以太网MAC和PHY 微型+收音机: CC430 = MSP430 + 低于 1GHz的无线电 EM250 = XAP2b + 802.15.4 / ZigBee 如果您可以命名芯片,请仅回答此问题。

4
为什么我们需要硬件程序员?
我使用Boarduino和30行面包板为ATtiny编程。我加载了一个不太复杂的草图,称为ArduinoISP(现在默认包含在Arduino IDE中),突然我有了一个正在工作的程序员。Atmel出售一款不错的编程器,价格在30到40美元之间,并且有很多工具包可以使价格更便宜。 一旦找到了工作的程序员,并做了些指示灯,我就感到非常高兴。但是,现在我可怜的boarduino被卡在程序员的职责上。 据我所知,程序员按住复位按钮,然后在MOSI和MISO引脚上进行发送和接收。 我认为SCK未使用或至少不需要。 (根据ATtiny数据表,需要SCK,如果没有它,我的程序员将无法工作,而且我找不到我认为不需要的地方。) 为什么我需要硬件编程器才能传输串行信号?我的意思是,让我们假设我愿意用手指按住复位按钮,而不是使用IC。剩下的就是串行发送和接收,所以我只需要三根线GND,RXD和TXD。哎呀,如果我有“ DTR”线或其他任何东西,您甚至可以使用串行电缆按住复位按钮。 为什么所有这些硬件解决方案也需要精美的软件(例如AVRdude或AVR Studio或其他)? 我的意思是我可以理解一条USB电缆,该电缆将微控制器作为大容量存储设备呈现出来,并允许您拖动二进制文件进行编程(例如此ARM开发板)。仅硬件,使用标准软件驱动程序。 我也可以理解纯软件的解决方案(使用FTDI芯片之类的东西简化从USB到芯片的连接线)。所有精美的编程协议都将由计算机上的软件处理,而硬件将只是一些电线。 为什么我们同时涉及(复杂的)软件和硬件?我的意思是,据我所知,对微控制器进行编程非常容易,但是当我刚接触它时,我真的很担心自己如何从mouser或digikey购买芯片而无需花一些专家来编写引导加载程序为了我。 我敢肯定有一个很好的理由(这不是我编写软件或开始制造拖放式USB编程器),但是作为一个新手,我不知道它是什么。

8
预编程表面贴装IC
我正在尝试设置一个带有atmega168且没有编程头的PCB。我打算使用串行引导加载程序(板上有ft232)进行重新编程,但是我想知道对引导加载程序进行编程的最佳方法。有人尝试过吗?我在采购tqfp-32 zif套接字时遇到麻烦。


6
您如何构造大型嵌入式项目?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5个月前关闭。 背景: 初级研发电子工程师(公司中唯一的EE)-硬件和编码不是问题。我最大的问题是对项目以及从何处开始进行适当的概述。 到目前为止,我只做过较小的软件项目(不到500行代码),但是我不能设想自己做更大的项目而不丢失功能概述或缺乏功能。 您如何最好地构建结构/使用什么工具来构建大型嵌入式软件系统? 我目前正在做什么: 我通常从勾勒项目的功能开始。它可以是一对多的分层流程图或相关图表(框图等),并且可以对组件/芯片进行一些研究。然后,我在参考数据表/ Internet时直接跳入编码(我想很快失败了),一次编码一种功能,并用伪数据对其进行测试,或类似的测试。它可能正在将数据写入MEM芯片,然后如果可行,则它可能是主芯片和MEM芯片之间的SPI驱动器。 我在寻找什么答案: 真的是。我会整理出我认为明智的内容。它可能是一本书,一篇文章,个人经历,建议等。 我对了解老年人如何解决这一问题非常感兴趣。 编辑 首先,感谢您分享您的多年经验!非常感谢所有答案。我的看法是: 创建清晰准确的规格文档。 创建一个软件设计文档。(我现在要添加的内容) 设计文档模板 在模块中考虑它看起来有多冗余。(我需要更多地关注) 遵循编码标准来构造头文件/源文件。(从未这样做) Barr C组标准 首先专注于创建底层实现。(通讯等) 尽可能/合理地实施设计模式。 设计模式 设置一些用于版本控制的内容(Github等-从未使用过太多) 研究持续集成/持续部署(偶然发现的新事物) CI和CD基础知识

7
在小型公司中如何应对较长的芯片交货时间
我是一家小公司的总工程师。我们的产品受欢迎程度迅速增长,现在我们正在学习微控制器的痛苦交货时间。所有者要求大修产品,以避免分销商提前交货。我的问题是: 电子制造业的规范是什么? 我是否应该说服他获得贷款并始终保持4-6个月的筹码量? 或者我只是不断更换零件,直到发现更容易获得的东西。

6
如何为我的项目提出对微控制器的要求清单?然后如何找到合适的微控制器?
我一直在Arduino MEGA2560上进行eBike控制项目。该程序运行3个PID控制回路,一个电池容量控制回路(基于查找表的插值),速度计(基于簧片开关的采样)以及LCD屏幕以显示信息。它的输入是3个模拟信号:电池电压,电流和用户油门输入以及数字输入:速度计(簧片开关)开/关信号。当前,所有这些都以“长”算法运行,Arduino设法每秒完成10个循环。由于TFT LCD屏幕需要大量计算能力,因此我正在考虑将其替换为字母数字屏幕。 输出包括发往电动机控制器的模拟节气门信号,LCD屏幕以及可能需要模拟信号的其他一些设备。因此,虽然我目前正在使用带有RC低通滤波器的Arduino PWM输出,但ADC转换器至关重要,而DAC将非常有用。同样,在不中断处理器的情况下读取数字和模拟信号的能力也将很高。 我希望以此为基础来生产消费类产品,因此我想使用其他微控制器从头开始构建自己的平台,该微控制器可以每秒至少提供100个样本(是Arduino的10倍)。另外,为了避免浮点数,我的计算使用了长变量,因此使用的数字大于16位,因此我假设使用32位MCU是个好主意。而且,能够进行浮点计算的MCU可能会很有趣,可以简化代码中的数学运算。 最后,我不确定如何开始寻找能够满足这些要求并允许从Arduino环境快速过渡的MCU。任何有关如何找到此类MCU的指南将不胜感激!

2
微控制器/微处理器和不同的位版本,有什么区别?
作为一般的工程爱好者,我每天都在学习有关微控制器世界的更多信息。曾经我不太了解微控制器的位版本的重要性。 我已经使用ATmega8几个月了,对于我来说,它似乎工作得很好。我知道诸如时钟速度,内存,IO引脚数量,通信总线类型等如何将一个微控制器与另一个微控制器区分开。但是我不太了解8位,16位和32位的重要性。我确实知道更高的版本允许设备存储更大的数字,但是,这又对我的决定有何影响?如果我要设计一种产品,那么在那种假设的情况下,我会决定8位处理器根本无法使用,而我需要更高的东西。 是否有理由相信,理论上ATmega8的32位版本(在其他所有条件都相同的情况下)将优于8位版本(如果可能的话)? 我可能在胡说八道,但是我想那是我困惑的结果。



5
单片机高级语言解释器/编译器的调查
我想生成一个用于微控制器的高级语言解释器和编译器的列表(例如,将LISP编译为C代码的东西)。 到目前为止,我已经做了一些研究,在此进行记录: 在微控制器上运行Python的项目列表:http : //web.media.mit.edu/~nvawter/projects/pyMicro/ PyMite:http ://wiki.python.org/moin/PyMite python-on-a-chip:http : //code.google.com/p/python-on-a-chip/ 腋窝计划:http: //armpit.sourceforge.net/ TinyScheme:http : //tinyscheme.sourceforge.net/home.html 最小的LISP解释器:http : //www.sonoma.edu/users/l/luvisi/sl5.c 嵌入式ML:http: //embeddedml.sourceforge.net/Site/Intro.html eLua:http://www.eluaproject.net/ 嵌入式JAVA:http: //en.wikipedia.org/wiki/Embedded_Java amforth:http://amforth.sourceforge.net/ TinyTCL:http://tinytcl.sourceforge.net/ Tiny BASIC:http: //www.ittybittycomputers.com/IttyBitty/TinyBasic/index.htm AVR外壳:http: //www.instructables.com/id/AVRSH-A-Command-Interpreter-Shell-for-ArduinoAVR/ Bitlash Shell(AVR):http://bitlash.net/wiki/start Transterpreter(AVR上的occam-pi):http : //www.transterpreter.org/ 礼仪(嵌入Ruby)(将于2011年发布):http: //www.slideshare.net/yukihiro_matz/rubyconf-2010-keynote-by-matz 适用于PIC的Jal(类似pascal),编译器:http : //www.casadeyork.com/jalv2/库:http : //code.google.com/p/jallib/ .NET Micro Framework(C#和VB.NET):http : //netmf.codeplex.com/ 这是一个社区Wiki –请随时添加到列表中。

8
多个微控制器之间的通讯
我想开始实现一个由N个微控制器(N> = 2个MCU)组成的系统,但是我想知道让它们彼此通信的可能性。 理想情况下,将(N-1)个微控制器放置在充当客户端的房屋内部,而最后一个(“服务器”)微控制器则通过USB连接到PC。我现在遇到的问题是如何将这些(N-1)个微控制器连接到“服务器”。客户端MCU执行非常简单的任务,因此仅使用它们提供CAN / PHY-MAC的方法,使用ARM进行此类简单的工作可能不是一个好的解决方案。 对于大多数设备而言,每隔几分钟通信一次,对于其他设备而言,通信不会超过一次。速度不是很关键(消息很短):1 Mbit / s我认为对于我的目的来说是过大了。 我计划使用的MCU如下。 Atmel AVR Tiny / Mega 德州仪器MSP430 ARM Cortex M3 / M4 (可能是Atmel AVR UC3-32位) 我想尽可能避免使用PIC(个人选择),这仅仅是因为编程它们的可能性很小(上述所有功能都有或多或少的开源工具以及一些官方工具)。 我知道有些ARM提供CAN功能,但对其他ARM 不太确定。 现在,我想到了以下可能性: 简单的GPIO发送数据(例如,高电平时> 16位表示消息的开始,低电平时> 16位表示消息的结束)。但是,它必须处于标准频率<<(frequency_client,frequency_server)才能检测所有位。每个客户端MCU仅需要一根电缆。 RS-232:我认为这是迄今为止最常用的通信协议,但是我不知道它的扩展性如何。我现在正在考虑使用多达64个客户端MCU(可能以后再考虑) USB:AFAIK大多类似于RS-232,但是在这种情况下,它的扩展性不太好(尽管USB支持许多设备-如果我记得没错,则支持255-对于此应用程序可能过于复杂) RJ45 /以太网:这是我真正喜欢使用的,因为它可以无障碍地进行长距离传输(至少使用屏蔽> Cat 6电缆)。问题是成本(PHY,MAC,变压器等)。我不知道您是否真的可以在家焊接好。这样我就不需要客户端MCU 无线/ ZigBee:模块非常昂贵,尽管这可能是避免桌子后面出现“意大利面”的一种方式 射频模块/收发器:我说的是300 MHz-1 GHz频段的模块,因此在家里很难焊接。这些模块都是内置的,但它们与ZigBee相当昂贵(至少在Mouser,Sparkfun的RF模块似乎更便宜)。 能够?它似乎非常强大。即使我不打算在汽车应用中使用它,它仍然可能是一个不错的选择。 I²C / SPI / UART?再说一次-如果可能的话,最好避免电缆出现“意大利面条” PLC并不是真正的选择。随着长度的增加,性能会很快下降,并且取决于电网的电容负载。我认为价格方面与以太网大致相同。 …

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.