Questions tagged «microcontroller»

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

5
MCU上的ADC输入阻抗
典型的MCU ADC的输入阻抗是多少?在这种情况下,我正在使用PIC24FJ64GA004。我不需要高速采样-每秒最多100个采样。 我希望将一个电阻分压器与一个100k电阻器和一个10k电阻器连接,因此阻抗应高于1M,否则阻抗将开始使读数产生偏差。

10
在爱好者友好型微控制器中从RAM执行指令
我的一个项目将从能够运行不存储在微控制器中(而是存储在SD卡中)的程序中受益匪浅。 因此,我正在寻找一种设备,该设备将允许我将SD卡中的代码加载到RAM中,然后从RAM中执行代码。目前,我只有PicKit2附带的程序员,所以我宁愿选择使用PIC。 有谁知道哪个PIC可以做到这一点?如果没有PIC能够做到这一点,那么有哪些不同的微控制器可用于此工作?最好以面包板兼容包装提供。

5
FPGA是否适合此类项目?
我目前正在开发Super OSD(一个屏幕显示项目)。http://code.google.com/p/super-osd包含所有详细信息。 目前,我正在使用dsPIC MCU来完成这项工作。这是一个非常强大的DSP(40 MIPS @ 80 MHz,三个寄存器的单周期操作和一个MAC单元),而且重要的是,它采用DIP封装(因为我正在使用面包板对其进行原型制作。)实际上,要在OSD上充分发挥性能的作用-芯片在输出级上每个像素大约有200ns或10个周期,因此该部分的代码必须进行非常优化(因此,它始终会被写入部件。) 现在,我正在考虑为此使用FPGA,因为由于这种芯片的并行架构,可能有一个运行OSD的简单逻辑程序。绘图线和算法代码之类的事情将由MCU处理,但实际输出将由FPGA完成。还有一些简单的事情,例如设置像素或绘制水平和垂直线,我想集成到FPGA上以提高速度。 我有一些问题: 它会花费更多吗?我发现最便宜的FPGA的价格约为5英镑,而dsPIC的价格则为3英镑。所以它会花费更多,但是要多少呢? dsPIC装在SO28封装中。我不想超过SO28或TQFP44。我见过的大多数FPGA都采用BGA或TQFP> 100封装,由于剪力大小以及我自己焊接的困难,目前暂时无法选择。 FPGA使用多少电流?dsPIC解决方案当前消耗约55mA +/- 10mA电流,目前还可以。FPGA会消耗更多还是更少?它是可变的还是像dsPIC一样是静态的? 我至少需要12KB的图形内存来存储OSD图形。FPGA的芯片上有这种存储器吗?还是只有外部芯片才有?

6
供电微控制器的最佳方法,SMPS与线性稳压器
我正在使用12V适配器和2S 7.4V锂离子电池为电子设备供电,我也想为其供电。要在适配器和电池之间切换,我使用的是TI 的BQ24133。 我将在定制PCB上使用STM32L4 MCU和其他使用3.3V的组件。在完全操作模式下,3V3上的所有器件最多消耗150 mA的电流。 我正在寻找最佳/最便宜的解决方案。 1.使用降压转换器与线性线性稳压器为MCU供电有什么区别? 2.线性稳压器(小包装)会不会是一个坏主意,因为电压差会很大(12-3.3 = 8.7,8.7 * 0.15 = 1.3W),会使其发热很多? 3.开关频率或输出电压纹波(噪声)是否会对MCU的正常运行产生很大影响? 4.结论,用6V至12V的输入电压为其供电的最佳方法是什么? 感谢您的耐心配合和答复。 感谢您的所有答复。你们都非常有帮助。到目前为止,我在项目中使用线性模型,但我认为现在可能会有所作为。如果您想跟我问这个问题的原因,然后看看我在做什么,请点击此链接


1
使用I2C STM32F0 HAL库寻址寄存器
我对使用STM的CUBE和HAL_libraries非常陌生。我正在使用具有32个引脚的STM32F0微控制器。I2C的原理图是正确的。所以在这里我需要一点帮助。 我有一个使用I2C通信的电容传感器(FDC1004)。我必须写这些寄存器才能读取数据。 我该如何正确地将START请求表的主机发送给从机(从机地址为A0)? 如何设置指向0x0C寄存器的指针? 数据表中看到(寄存器0x0C:bit [7:4])为1。)我不知道,该怎么做?最后如何从同一寄存器读取? 另外,在阅读之前,我必须等待DONE_x字段(寄存器0x0C:bits [3:0])吗? 但是我不知道我是否在寻找正确的寄存器!因为我没有从传感器获得任何数据! 这是我的代码: int I2Ccomm () { HAL_I2C_Master_Transmit(&hi2c1,0xA1,0x0C, 10, 100); //start bit and pointer to register HAL_Delay(50); HAL_I2C_Master_Transmit(&hi2c1,0xA1,0x054, 10, 100); // setting the register HAL_Delay(50); HAL_I2C_Master_Receive(&hi2c1, 0xA0, 0x0C, 10, 100); //read from this register HAL_Delay(50); HAL_I2C_Master_Receive(&hi2c1, 0xA0, 0x02, 10, 100); //read data from …

1
混合信号系统中的PCB微控制器布局
这是这个问题的直接延续。所以这是我的布局,您对微控制器方面有何看法? 2019年4月更新:我在2016年春/夏建立了该评估板,但从未在这里更新结果。该电路板工作正常,唯一可观察到的数字噪声泄漏到模拟信号的原因是模拟/数字接口中电路设计的某些错误选择,而不是布局/接地(并且在以后的版本中进行了修复,也消除了很小的噪声) 。现在,我只有一块商用板,其CPU部分的设计主要基于此处显示的布局,并通过了EU EMC测试,因此答案是,这种布局至少足以胜任其工作。 实际的旧问题如下: 编辑:基于Armandas的回答,我现在的印象是微控制器布局足够好。如果还有人要说这在防止数字噪声泄漏到模拟端方面有多好,我仍然会非常感兴趣,这基本上是我下面的第4点。当然,关于微控制器方面的任何其他评论也都受到欢迎。 堆叠是 TOP:信号 GND:坚固的接地层,任何地方都没有切口或走线 PWR:电源 BOT:信号 TOP(红色)和PWR(紫色)层,顶部丝网印刷[请参见下面的更新 ] BOT(绿色),带有用于与上述比较的顶部丝印 此处数字/模拟分割(逻辑上,接地层是实体)。电源(+3.3数字,DAC和MUX,模拟)输入到左下角,三个电容中有47uf储液电容。铁氧体磁珠(FB101)将+ 3.3V的走线与uC电源分开,并连接至DAC和MUX。uC位于左上角,TOP下方的平面是局部接地,通过C720附近的通孔连接到GND。±15±15\pm15 uC是STM32F103VF,我将以72MHz运行。晶体为8MHz。uC右侧是标记为“ Control 1”的部分,其中包含两个DAC和一个多路复用器,用于多路复用uC内部DAC1的输出。右下方是“ Control 2”附近的另一个多路复用器,用于多路复用uC的DAC2。从uC的DAC接收信号到运放的信号的磁道是在通向多路复用器之前对其进行缓冲(UREF1)的两条磁道,分别是从过孔到C712右上方的磁道。DAC与SPI总线连接,该总线从uC的右上角离开。 DAC和多路复用器为右侧的模拟声音生成器(大多数未显示)生成控制信号,而不是直接生成音频。但是,我希望在生成的音频中也能听到其中的任何重大数字串扰,这很糟糕。我的目标是 kHz的控制速率,这意味着8路多路复用器以 kHz 的速率获得新的采样值。111888 离开uC的其他曲目是: 地址从MCU1的uC顶部到MUX2的右侧选择并启用MUX。 PWM信号进入电阻阵列RR901。我正在尝试这种方法,本质上是通过以某些方式组合PWM波形来生成波形。如果这不起作用,或者通过此路径泄漏的噪音太多,那没关系,我将在下一个修订版中将其保留。我以为如果将RR901留在外面,基本上不会有噪声通过该路径泄漏? 来自最终音频输出(未显示)的ADC信号到达uC右下侧的引脚26。它用于校准模拟端的某些功能,因此只要能提供有效的10位左右精度,一切就可以了(这是12位ADC)。 在电源层,DAC / ADC参考来自UREF1(我实际上并不需要非常特定的参考电压,但我需要与DAC的最大输出进行精确比较)。 进入数字和模拟部分之间的某些电阻器(例如,R713和R710)的GPIO可以打开和关闭模拟部分中的各种功能。R与C一起尝试从uC滤除任何数字噪声,请参阅此问题。 最后,RC网络R715,R716,C709过滤并衰减GPIO的输出,用作VCF(未显示)的步进输入以对其进行校准。 我想知道一些特定的要点: 水晶是否足够靠近并正确布线?我必须将uC模拟部分去耦电容放在晶体和uC之间,因为那是引脚所在的位置。 C715是VDDA的去耦电容。请注意,为了将去耦电容C717连接至Vref +,Vref-,我必须将VDD路由至C715,并在C717周围有相当长的轨迹。这不好吗? VREF-和VSSA直接接地,VREF +和VDDA的去耦电容的接地侧也一样。这与奥林在上一个问题中所说的一致,所以我认为现在应该可以了吗? 看起来是否有可能从DAC获得合理的输出?我希望获得约12位有效的信噪比。uC DAC是12位的,而外部DAC是原型的16位(有引脚兼容的12位版本,所以我以后总是可以调低)。 任何其他意见或建议也非常受欢迎,因为我不是专业EE,所以我在这里可能还会犯一些愚蠢的错误:) 更新: 我将根据此处的建议收集最新版本。 根据Armandas的建议在顶层进行更改: C715和C717的互换顺序 将最大功率平面的间隙从6密耳增加到9 mil(更大的平面,并且该平面将不通过引脚流动,例如使C712接地断开) TOP …

5
日常电子学中的高级数学?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 所以我一直在看MIT 6.002x类,它们真的很有趣,我觉得我已经很好地掌握了Circuits和Basics(我获得了CS学位,但是EE也很吸引我)。 无论如何,我注意到.......可能像很多人一样,很多高级数学并没有真正用于工作上。它发生了……比我猜想更了解它。但是,不包括信号处理和类似的“强烈” /数学繁重的电子子领域....您觉得您在工作中使用了多少高级数学? 我猜有人做过电路设计,微控制器编程以及他们真正会学多少数学。 第二个问题:是否有必要针对高级数学写一本书?或做“大多数”电子书已经具备了必要的条件。

1
了解有关去耦电容器的STM32数据表
我试图了解ST对于STM32F030CC的去耦电容的建议。 数据表中的图显示了Vdd / Vss对上的“ 2x100 nF”电容。这是否意味着每对Vdd / Vss对并联2个100nF电容?还是他们指的是所需的100nF电容的总数,即,如果有2个Vdd / Vss对,那么每个Vdd / Vss对为1 100nF电容,总共2 100nF电容? STM32F030数据表

5
UART引脚连接到未供电的MCU?
我正在使用带有MCU的USB-UART IC,该IC由电池供电。 USB-UART IC由USB连接器供电,而不是由电池供电,因此,我不需要在每次开关时都打开控制台。 模拟该电路 –使用CircuitLab创建的原理图 编辑:我没有在图中画出来,但是IC有一个内部3.3V稳压器,并且当开关打开时,每个VDD都处于3.3V电平。 现在,我担心何时插入USB且开关仍处于关闭状态。 MCU文档指出,每个输入引脚的最大额定值为VDD + 0.3,如果不给MCU上电,则为0.3V。 如果USB-UART侧的TX / RX对变高,会破坏MCU侧的引脚吗? 如果是这样,我在TX / RX对之间需要什么?

8
在没有微控制器的情况下保存数据?
有没有办法将电压数据直接(无需微控制器)保存到任何地方,例如EEPROM,SDCARD等? 例如,我使用的MPX压力传感器可提供0V至5V模拟输出。首先,我要保存模拟数据,然后将这些数据保存到计算机中以将电压转换为压力,而不是在微控制器中将电压转换为压力并进行节省(这需要时间,金钱,空间等)。


3
Vdd大于Vss引脚
我目前正在从事我的第一个微控制器硬件设计。我上大学时曾上过微控制器课,但它侧重于软件方面,并使用了预制的开发板(用于Freescale 68HC12)。 我有一个我很犹豫的问题,因为它看起来很基本,甚至很明显,但同时在通过数据表或在线论坛进行搜索时,我找不到明确的答案。 我已经决定使用STM32F7系列芯片,并且在计划其基本电源和接地连接时遇到了该查询。我在144-LQFP封装上看到总共12个Vdd引脚(9xVdd + 1xVdda + 1xVddusb + 1xVddsdmmc),但只有10个Vss引脚。简而言之:在本项目中,我简短地考虑了Microchip的dsPIC33F,并且发现了类似的不平衡情况(7个Vdd引脚和6个Vss引脚)。 我一直在阅读一些入门性的硬件设计文档,并且对于高速设计而言,始终强烈强调在每个Vdd / Vss对中靠近器件放置去耦电容的重要性。我不知道该如何处理那些没有明显Vss配对的Vdd引脚。我的PCB肯定会包含一个接地层,因此我可以简单地将那些未配对的Vdd引脚直接去耦至该平面,但是我总是觉得这些Vdd / Vss引脚配对很重要。 我是否缺少明显的东西? 我在下面提供了几张图片,这些图片展示了我目前将Vdd / Vss对和单个Vdd引脚去耦的策略。如果这两种方法都存在明显问题,请务必告诉我。

4
从STM32 MCU获得快速性能
我正在使用STM32F303VC 发现套件,但对其性能感到有些困惑。为了熟悉该系统,我编写了一个非常简单的程序,只是为了测试该MCU的位速。该代码可以分解如下: HSI时钟(8 MHz)已打开; PLL用16的预分频器启动,以实现HSI / 2 * 16 = 64 MHz; PLL被指定为SYSCLK; SYSCLK在MCO引脚(PA8)上进行监视,并且其中一个引脚(PE10)在无限循环中不断切换。 该程序的源代码如下所示: #include "stm32f3xx.h" int main(void) { // Initialize the HSI: RCC->CR |= RCC_CR_HSION; while(!(RCC->CR&RCC_CR_HSIRDY)); // Initialize the LSI: // RCC->CSR |= RCC_CSR_LSION; // while(!(RCC->CSR & RCC_CSR_LSIRDY)); // PLL configuration: RCC->CFGR &= ~RCC_CFGR_PLLSRC; // HSI / 2 …

5
使用内部上拉/下拉电阻器时的注意事项
我正在使用STM32微控制器。这些微控制器可以选择将输入引脚设置为上拉或下拉: 以前,我曾经在需要时提供外部上拉或下拉电阻,但现在我想知道我是否可以省去外部组件并使用微控制器本身的下拉功能。 那会是一件好事吗? 在某些用例中,我应该格外小心或根本不使用此功能吗?

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.