Questions tagged «microcontroller»

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

2
如何从微控制器驱动TRIAC(低电压)?
作为此问题的后续,我想弄清楚从微控制器驱动TRIAC的精确度(对于低压应用,例如24VAC)。想象一下一个场景,其中我有一个低压AC电源,该电源运行一个为我的微控制器供电的简单开关模式电源。将GPIO引脚连接到TRIAC栅极并将GPIO驱动为高电平(在这种情况下为3.3V)是否简单?假设我使用的是简单,廉价且通用的(显然)MAC97 TRIAC。GPIO引脚上需要电阻吗?TRIAC栅极是否导通电流,还是像MOSFET栅极一样?如果它导通电流,则导通到哪里(仅有的另外两个连接到AC线路)? 请注意,我在这里不使用电源电压。这是用于驱动低压交流电磁铁。我了解在使用电源电压时,建议格外小心,并且实验可能是致命的。

4
ST-LINK可以进行串行通讯吗?
我正在使用STM32F4发现板和适用于ARM Lite 3的Atollic TrueStudio 我想使用printf将一些调试数据传递到PC,但找不到通过STLink进行调试的方法。可能吗 对于任何调试过程,它似乎都是必不可少的功能。 编辑:我需要使用串行线查看器,但仍然无法使它工作。

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电阻才能使其正常工作(即使我的节点没有电阻并且工作正常,只要在重新配置后有一定的时间来解决)。我怀疑总线分析仪的引入会以某种方式更改某些网络的电气参数,从而缩短我的节点在重新配置后建立所需的时间。但我不确定.. :(

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

1
使用74HC154绘制8x32 LED矩阵
如何将图案发送到8x32 LED矩阵中?我将AT89S52微控制器与74HC154 4-16线解码器配合使用,并使用Keil IDE在C语言中进行编程。我已经完成了垂直扫描,但是在下一步中遇到了麻烦。如果需要,我将提供原理图。电路与下面包含的电路相同,仅不使用74HC138,公共阳极矩阵,而是使用UN2803作为驱动器,不使用内存 端口1是列,端口2是行...代码: row = 0xFF; //for (j=0x01; j< 0x08; j<<=1) { /* scan left to right */ for (j=0x00; j<=0x0F; j++) { E1=0; E2=0; P1 = j; P2 = row; /* Output to LED Port */ for (i = 0; i < 100; i++) { /* Delay …

3
DIY FP-在没有硬件FPU的微控制器上实现浮点数学运算
我正在做一个小的个人项目(针对Parallax Propeller,但应该可以推广),需要浮点数学运算。 我正在使用的微控制器没有本机浮点或股票浮点库。 是否有关于实施软件浮点数学的良好资源或教程?最好在真正有限的资源上(我什至没有堆栈!)。 我想支持 double大尺寸的花车。螺旋桨是32位MCU,因此我必须为每个浮点使用多个变量。 我知道那里有一个用于螺旋桨的软件浮点库,但它仅支持single大小不定的浮子。 不,我可能真的不需要double大小的浮标,但这听起来像是一个非常有趣的项目。我想这样做的一半原因是,我会在此过程中学到很多东西。

5
Kinetis和STM32
我正在研究一个新的工业控制应用程序,通过搜索,我将其范围缩小到2个看起来很适合该应用程序的微控制器。STM32和Kinetis。他们俩似乎都很有能力胜任这项工作,而且我已经在其他不相关的应用程序中使用了STM32。我喜欢STM32系列,因为有如此广泛的配置选择,大部分都与引脚兼容。但是,对于降压处理器/内存,Kinetis似乎更具优势。 因此,对于那些有更多经验的人,我的问题是……每个家庭的优缺点是什么? 我敢肯定,对于我的应用程序,这里没有完全错误的选择,但是我想从飞思卡尔和ST以外的人那里获得更多细节。我意识到我的应用程序的细节可能是这里的一个因素,但是就功能而言,它是一个非常广泛的应用程序。促使我们转向其他控制器的最大限制是内存(〜16k RAM 256k闪存)。 任何见解将不胜感激。谢谢

3
将长I / O线连接到微控制器是否安全?
我正在考虑使用一个位于我的车库中的MCU从几个传感器读取数据,其中一个传感器的距离可能长达10m。正如这个问题所问,我没有使用模拟传感器,而是使用Maxim OneWire器件(在非寄生功率模式下使用)。 我相信实际的数字信号和电源在这些距离上应该没问题(我可能会使用CAT5之类的东西,如果需要的话我可以将多根导线绑在一起),但是我担心其他问题,主要是EMI,在我最担心的清单的顶部,当附近有雷击时会发生什么?这根电线不是充当大天线吗?当雷击时可能会吸收有意义的电压吗? 声明所讨论的导线将在建筑物内部(在阁楼中)而不是在露天中延伸,可能与或无关。我不必担心直接在电线上产生雷击,因为我担心附近发生雷击时可能在电线中产生很大的EMI电压。

5
MCU如何处理带小数点的数字?
请告诉我MCU如何处理十进制数字(例如“ 23.3”,“ 3.24”等)?它如何存储在存储器寄存器中?我知道在编程时处理这些数字时必须使用浮点数据类型。但是实际上在处理这些类型时,MCU内部正在发生什么。还告诉我没有FPU单元的MCU如何处理Float数据类型。

3
MCU输出的典型导通电阻是多少?
就我而言,我使用的是PIC24F和dsPIC33F微控制器,但是数据手册中说明了PIC的IO端口的导通状态电阻在哪里?我在任何地方都找不到。以及这如何适用于其他处理器-16F / 12F PIC,PIC32,MSP430,AVR等。 我之所以这样问,是因为我正在设计一个敏感电路,通过使一个10k电阻悬空或接地来改变ADC输入的范围。如果导通电阻为100欧姆,则将引入1%或更多的误差项。


3
如何选择一个开关晶体管来驱动LED?或者,如何读取晶体管数据表?
我要从PIC micro的单个输出驱动20-25个LED排。显然,我需要一个晶体管,因为它将在400 mA附近(LED的规格为20 mA,压降为3.2V,我将通过使用100 ohm电阻和5V电源接近)供应)。 当我试图弄清楚应该使用哪种晶体管时,我会遇到麻烦,因为我不了解晶体管的额定值。在讨论通用晶体管时,2N3904G和2N3906G都是出色的全能NPN和PNP晶体管。我如何查看晶体管数据手册并了解这些晶体管可以工作?我需要注意哪些参数?我想确保晶体管可以承受负载,并且我想确保PIC的输出可以使晶体管一直导通。 我对数字电子学有些熟悉,但是当我们进入模拟世界时,我只是没有足够的参考框架。

12
淘汰了不断增长的8位AVR,不确定要转移到哪里
几年来我一直在使用8位AVRS。最近,我一直受到外围数据传输速度和高级库的限制。 我在寻找/选择新的微控制器产品线时遇到了麻烦。我看过 恩智浦-找不到程序员 飞思卡尔-必须注册IDE AVR32-Digikey上的芯片选择受限 恩智浦芯片看起来非常不错,但是与其他非PIC / AVR / Ardiuno芯片一样,学习曲线也非常陡峭。 我想知道是否有人可以建议满足(按重要性顺序)以下要求的微控制器系列 手工可焊芯片。(我可以做LQFP 100) 32位 Linux主机 免费工具链 良好/免费的IDE 无限的编程/调试/编译,启动成本<500美元 CAN支持 以太网/ USB支持 如果有人可以告诉我,我错过了有关其工具链和程序员的一些信息,我愿意再次看一下Freescale和NXP。我想您可能会说AVR32正是我想要的,但是我对他们的芯片选择不满意。它们的引脚数都较高,digikey的库存较低。 谢谢。

4
自动测距仪设计
我正在设计一个自动量程电压表,它使用了我的微型板载ADC从A到D,以及一个数字电位计作为可编程电阻分压器来控制量程。 我担心的是,在微控制器将电位器调整到适当范围之前,ADC输入可能会短暂地短路到测量的输入电压。 在这种情况下通常如何实施过压保护? 另外,如果有用于数字万用表设计的资源(例如,原理图等),这对创意也非常有用(因为我敢肯定有比我的方法更好的方法),我已经搜索了但没有发现太多。 更新资料 感谢大家提供的有益答案。这是Iv决定的过压保护电路。我计划使用肖特基二极管来提高精度。 在负电压瞬变期间,底部二极管将导通,从而将电压钳位到接地以下的一个二极管压降。在正电压瞬变期间,顶部二极管将被正向偏置,从而将电涌传导至电源轨。 来自:http : //www.conformity.com/artman/publish/printer_116.shtml

3
哪个外部传感器可以检测到CD托盘是否已打开?
我可以用来检测台式机CD托盘是否打开的传感器是什么? Digikey目录中有太多传感器可供选择。 我应该使用机械零件吗? 光束干扰成分? 哪一种可以让我检测我的CD托盘是否打开,以便可以将信息输入到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.