Questions tagged «arm»

32位微控制器IP。设计ARM内核的ARM公司本身并不制造控制器,而是将IP许可给其他制造商。ARM是领先的32位控制器,可从数十个供应商处购买。

2
ARM MCU如何比外部晶振运行得更快?
因此,在此之前,我只使用简单的8位Atmel MCU,并在开发板原理图中意识到它只有12Mhz的晶体,但MCU的工作频率高达100MHz。(我认为默认值是80MHz。我只是为了娱乐而将其提高了一次。这只是代码中的一条简单代码。) 它是如何做到的?例如,为什么Atmega328以所使用的晶振速度运行?
12 arm  crystal  cortex-m 

3
有集成了WiFi的基于ARM的微控制器吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为电气工程堆栈交换的主题。 5年前关闭。 我正在寻找一种带集成WiFi的基于ARM的低成本SoC,尝试了不同的搜索引擎,但仍然找不到一个。 我想知道是否有人知道这样的设备,它只需要集成WiFi控制器和外部天线。 我可能会选择ARM以外的其他体系结构,但是我宁愿选择已经具有正常工作的SW开发环境的CPU体系结构。 ---- 7月27日更新-----我发现有一个带有ARM Cortex M3和WiFi接口的设备,名字叫Imp,他们在这里用IC出售一个小型的舷外机。 http://smartmaker.com/en/home/602-electric-imp-002.html 这个问题是与该设备的所有通信都必须通过其服务器。现在的问题是,是否还有其他公司拥有这样的产品,它们具有开放的界面而不是像Imp!这样的封闭界面? Update 2 REALTEK似乎为此创建了一个完美的低成本模块,这些模块在e-bay和AliExpress上广泛可用,如下所示: http://fr.aliexpress.com/item/RTL8710-WiFi-Wireless-Transceiver-Module-SOC/32666025289.html 该模块的售价在2美元到4美元之间,具体取决于数量和出货量。RTL8710基于Cortex M3,并具有5​​12k和2M之间的可用内存。 在Hackaday上有一个关于RTL8710的写得很好的页面: http://hackaday.com/2016/07/28/new-chip-alert-rtl8710-a-cheaper-esp8266-competitor

4
小包装的ARM控制器
是否有用于小型应用(例如Cortex M0)的ARM控制器,采用小封装(最多20个引脚)提供?我的印象是,在这方面,它们对像PIC和AVR这样的通常嫌疑犯并不构成威胁。

1
ARM在彩色LCD上高效显示简单文本/图形
当设计一种基于ARM的设备,该设备应在彩色LCD上显示简单的图形时,如何最好地进行设计以允许快速更新,最好不要与特定的ARM或LCD供应商绑定?我当前的项目使用的是黑白显示屏,该显示屏可以通过PIC上的SPI端口实现闪电般的驱动(在1/60秒内重新绘制复杂的显示屏)。似乎普通的彩色LCD显示器具有SPI端口,但是即使以纯色填充160x120的LCD也要花费30ms,而在320x240的最佳情况下要花费120ms(10MHz的移位时钟)。 如果可以腾出控制器引脚,并行模式可能会更好,但是我不知道任何独立于家庭的方式来连接并行接口,而无需为每个像素分配三个独立的存储指令(一个用于设置数据,一个将时钟输出设置为高电平,另一个将其时钟设置为低电平)。某些ARM芯片具有内存总线接口,但那些芯片通常想要执行多路复用地址和数据之类的操作,或者将大量引脚用于输出无关的地址位(LCD仅需要一个地址位)。 看看ILITEK的ILI9320或Renesas的HD66789,一种似乎很有趣的方法是使用CPLD将SPI转换为并行数据,并包括一种可每位输出像素的模式。查看瑞萨数据表,通过使所有并行端口数据位都跟踪串行数据引脚,并使用除像素以外的所有内容的串行模式,可能需要最少的硬件(无需CPLD)来按位写入像素写入,并使用比较/掩码功能,以便全零像素将是透明的,而全零像素将设置GRAM中的选定位,或者全零像素将是透明的,全零像素将清除选定的位。IKITEK数据表的“功能”部分表明它具有类似的功能,但寄存器映射不具有此功能。 假设代码将主要显示纯色文本和图形,则理想的方法似乎是使用CPLD将ARM的SPI端口连接到显示器的并行端口,并允许CPLD加载前景色/背景色。如果人们有一种写“透明”像素的方法,那就特别好。给定一种字体为两种颜色的位图,只需将字体数据直接加载到SPI端口即可。这样可以使字体数据以每两个ARM时钟一个像素的速率显示。另一方面,足以处理这样的显示控制任务的CPLD将花费约2美元。 如果目标是主要显示纯色文本或简单(例如16色或64色)图形,那么将ARM与彩色LCD相连的最佳方法是什么? 编辑 我已经完成了许多LCD显示器项目,包括许多类型的LCD,包括字符模式LCD,使用我自己的驱动方法基于定制的3:1多路复用段,具有内置控制器的黑白图形LCD以及黑白显示器。我设计了自己的基于CPLD的控制器以与微控制器的通用DMA(甚至提供四级灰度)接口的白色LCD。我以制作蓬乱的显示感到自豪。其中一个图形控制器有点像一条狗,即使写入恒定数据也需要大约1/10秒才能进行全屏刷新,但是我的大多数显示器甚至可以在1/50秒内渲染出相当复杂的图像。 我从事的许多项目都是电池供电的,因此电流消耗是一个问题。我基于DMA的显示控制器工作得很好,但是它是用于线路供电项目的。我相信从图形LCD获得合理电流的唯一方法是使用结合了显示缓冲区和列驱动器的控制器。每帧在芯片之间发送大量的显示内容会浪费很多能量,即使在每像素一位显示上也是如此。在每像素16位的彩色显示器上,情况会更糟。 我只是开始查看彩色LCD数据表。尽管我在基于通用设计的控制器上找到的所有数据表都被标记为“初步”,但许多显示器似乎都使用了与ILITEK ILI9320类似的控制器。有些人喜欢ILITEK,有人声称它具有屏蔽和透明功能,但没有列出它们的任何寄存器。我不知道真正的芯片是否具有这样的功能,但是“初步”数据表中却忽略了这些功能,或者它们是否省略了这些功能却忘记了提及它们。如果实际上所有这些芯片都具有透明度功能,那么为它们设计似乎是合理的;如果不是,则不会。 我希望对于大多数项目而言,典型的屏幕将由任意放置的文本以及适量的任意大小的纯色字体组成。字体很可能会存储为每像素数据。使用Cortex-M3,如果我想用并行数据编写显示,则代码的“内部循环”中要写入两个像素可能会导致如下结果: rol r0,r0,#2; 在C中获得一位,在N中获得另一位 itcs strhcs r1,[r3,#DATA_OFS]; 写数据 strhcc r2,[r3,#DATA_OFS]; 写数据 strb r4,[r3,#CLOCK_SET_OFS]; 将时钟设为高 strb r4,[r3,#CLOCK_CLR_OFS]; 将时钟设为低 Itmi strhmi r1,[r3,#DATA_OFS]; 写数据 strhpl r2,[r3,#DATA_OFS]; 写数据 strb r4,[r3,#CLOCK_SET_OFS]; 将时钟设为高 strb r4,[r3,#CLOCK_CLR_OFS]; 将时钟设为低 并非世界上最快的东西。消除对设置/清除时钟指令的写入将有所帮助。我的猜测是,没有消除所有时钟写操作的与体系结构无关的好方法,但是可能有一种非常普遍的方法可以消除一个时钟写操作(例如,许多芯片可能具有可以使输出脉冲的计数器/ PWM)简要响应单个内存存储操作)。 使用SPI端口并添加硬件以每位时钟1个像素将大大加快显示访问速度。如果使用不带遮罩和透明性的显示器,则CPLD将必须包括一个地址计数器,并且对于每个像素,时钟一个像素数据字或一个用于下一个像素位置的set-address命令(为此需要一个计数器) )。相比之下,如果显示器具有遮罩和透明性,我所要做的就是让CPLD支持一种模式,在该模式中,当它以16位时钟输出之后,每增加一位将用一个时钟将数据字输出到显示器。 LSB跟踪SDI引脚(可能甚至不需要使用CPLD,仅使用一些普通逻辑芯片即可)。我将透明色设置为我要写的颜色,但LSB翻转了。 我不想提出依赖于遮罩和透明度的精美设计,然后发现仅有的具有此类功能的显示器的交货时间为30周。另一方面,如果这样的显示器易于被许多供应商使用并保持广泛使用,我不想让对可用性的偏执驱使我使用劣质的设计。
12 arm  lcd 

5
简约的Cortex-A9设计
有谁知道好的Cortex-A9基本设计?有足够的功率和以太网来运行吗?我正在寻找一些起点,也许还有鹰文件。 编辑:虽然这不是我第一次设计。我确实认为我仍然无法解决。我正在寻找具有大功率+ 1GHz的产品。我真的很喜欢熊猫板,这将是我的首选。唯一的问题是附加功能,视频,声音只会消耗额外的电量,而不会被使用。M3设计紧密,即可以通过USB加载(SD卡也可以)。我真的只是在寻找马力。我也没有拿出芯片,我想保持打开状态,但是正在查看OMAP4430。 感谢所有的投入。除非有人知道更好的设计,否则我可能只会使用熊猫板。我认为老鹰(完整版)的成本会使该项目超出我的原型范围。
12 arm 


2
是否在标准单元中实现了某些CPU,是否对它们进行了定制?
进一步解释这个问题,我看到一些芯片图片,这些芯片正在实现Cortex-M0,蓝牙LE等,具体取决于芯片的功能,并且看起来像这样(nRF51822): 在较旧的CPU上,我看不到太多的数字“模糊”逻辑实现,例如(AMD386): 经过一番摸索之后,似乎今天的ARM实现是使用标准单元(在管芯上创建非晶形状)完成的。因此,我可以说第一张图片上的“模糊”实现是Cortex本身。 我知道所有常规形状都可能是记忆,所有“手绘”部分都是类似的。所以我想知道,过去模拟设计师是在定义架构的数字专家的指导下实现数字部分的吗? 我想念什么?
11 arm  cpu  semiconductors  die 

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 …

1
为什么有些微控制器具有如此大的同步延迟?
在Atmel SAM-D21系列微控制器上,许多外围设备使用的时钟与主CPU时钟异步,并且对这些外围设备的访问必须通过同步逻辑进行;在时钟相对于CPU时间较慢的外设上,这会增加一些非常大的延迟。例如,如果将RTC配置为使用1024Hz时钟(这似乎是设计意图),并且CPU以48Mhz运行,则读取“当前时间”寄存器将导致总线逻辑插入超过200,000个等待状态(最小1024Hz时钟的五个周期)。尽管有可能让CPU发出读取请求,执行一些其他不相关的代码,然后在以后返回200,000个以上的周期来获取时间,但似乎没有任何方法可以更快地实际读取时间。 根据我对同步的理解,一个单位同步电路会将信号延迟目标时钟的2-3个周期。同步多位数量会比较困难,但是有多种方法可以保证目标时钟的五个周期(比源时钟快)在五个时钟周期内具有可靠的行为,如果不是,则只能保证几个周期。Atmel SAM-D21的工作将需要在源时钟域中进行六个周期来进行同步,并且哪些因素会有利于其同步延迟足够长以至于需要“同步完成”中断的设计,而确保同步的中断则需要一个周期。同步延迟足够短,以致于不需要此类中断?
11 arm  atmel  synchronous 

1
Cortex M0真的是低功耗吗?
我正在使用NXP LPC1100系列CPU,这是他们功耗最低的Cortex M0产品。但是,在数据表中指出,在最佳条件下(休眠模式+禁用所有外围设备),它仍然使用6 mA电流,我的测量结果证实了这一点。 我的智能手机(具有1Ghz CPU和许多活动外围设备)在待机状态下如何才能使用3 mA电流,而这款48Mhz Cortex甚至在不活动时也会使用更多电流?

4
是否可以从3.3v微控制器驱动TTL输入
我需要快速解决我要在工作中解决的问题。我正在尝试连接到用于访问智能卡的接口模块上的并行数据端口。该端口具有一个8位输入和一个8位输出以及相关的选通/就绪引脚。我有一个带有ARM皮质的微控制器板(mbed.org),非常适合将这些端口连接到我的PC以进行测试。ARM板载有I / O负载,但其负载为3.3v。我已经将其与典型的2行LCD显示器(5v部件)一起使用了,没有问题(我知道ARM i / o可以承受5v),并且我可以控制LCD。我想知道的是,可以假设我可以从3.3v输出引脚驱动任何5v TTL电平输入吗?我很高兴能够阅读5v ttl级别,因为我说过ARM Cortex芯片的文档说它可以承受5v。
11 arm  3.3v 

3
每个人都为stm32使用什么免费的IDE?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3年前关闭。 我当前正在使用Atmel SAM系列。选择很容易:IDE是Atmel Studio,它非常好,免费,我以前用它来开发AVR。我拥有的调试器是Atmel ICE,我也将其用于AVR,它也支持ARM系列。 STM32系列之所以有趣,是因为芯片和开发板的成本非常低。但是,人们使用什么IDE进行开发?我对尽可能完全免费的主流产品感兴趣,因此可以在需要时轻松寻求帮助,并确保工具保持最新状态。我可以在Google或ST的网站上找到明确的答案,因此,如果有人已经参与了该平台的开发,请与我分享数据和意见,我们将不胜感激。
11 arm  stm32  ide 

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
如何从STM32F103C8T6板开始?
几年来,我一直在使用8位AVR MCU与学生一起构建线跟随机器人。现在,我想使用ARM Cortex-M3,因为我想添加一些更多的CPU密集型功能,例如里程表和传感器融合。 要求是: 8个模拟输入, 4个PWM输出 我2 C 2个正交编码器输入, 串行I / O, 无线自编程,无需物理访问机器人。 多平台工具链+ IDE(OS X,Linux,Windows)。 到目前为止,我已采取的步骤是: 我正在使用基于STM32F103C8的电路板。我相信该MCU具有我所需的一切,包括我计划在软件中实现的2 x QEI,但是这个恰好在硬件中具有,所以很棒: 董事会http://eud.dx.com/product/high-quality-cortex-m3-stm32-stm32f103c8t6-development-board-w-swd-interface-844380789 程序员http://eud.dx.com/product/st-link-v2-programmer-emulator-mini-stlink-downloader-for-stm8-stm32-mcu-development-board-844380733 我遵循此步骤来设置我的工具链+ IDE: http://www.davidrojas.co.uk/stm32f3discovery-on-mac-os-x-using-eclipse-gcc-arm-and-openocd/ 我发现该芯片的文档分散在许多PDF中,这些PDF是我下载的: STM32F103x8数据表http://www.st.com/st-web-ui/static/active/zh/resource/technical/document/datasheet/CD00161566.pdf 参考手册http://www.st.com/st-web-ui/static/active/en/resource/technical/document/reference_manual/CD00171190.pdf 我将来可能会需要一些其他文档,例如AN2606(内存启动模式),PM0075(闪存编程手册)和AN3155(串行启动加载程序协议)。 我还下载了STM32F10x标准外围设备库,但这反过来又建议我购买较新的STM32CubeF1,我相信这只是上述产品的市场重命名,因此我同时获得了两者: http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/LN1939/PF257890 http://www.st.com/web/zh/catalog/tools/PF260820 最后,我还收到了Joseph Yiu撰写的“ ARM Cortex-M3权威指南”,我在等这些板到达时正在阅读。 我的问题是: 至少可以说,我对文档有点不知所措,而且我甚至不确定我是否掌握了全部内容。例如,数据表和参考手册指出该芯片具有3个能够正交编码输入的定时器。但是,我无法在上述PDF的任何地方找到控制定时器的寄存器的文档。我想念什么? 我应该使用(较旧?)标准外围设备库还是(较新?)多维数据集?有什么不同?我知道这两个库都使我免于直接操作寄存器,这是推荐的方法。我对吗? 库的文档在哪里(除了嵌入式doxygen注释之外,这些注释很好,除了我自己,我宁愿拥有可搜索的html / pdf)? 我选择Eclipse + GCC ARM + OpenOCD作为我的工具链,因为我认为这是唯一可以在3个主要OS上运行且没有代码大小或其他限制的选项。还有其他选择吗?

1
将安全密钥存储在嵌入式设备的内存中
我正在嵌入式设备上工作,该设备发送/接收数据并以密文模式(加密模式)存储它们。现在,什么是存储密钥的最佳方法(我使用了ARM CORTEX M系列MCU)? 1-将密钥存储在SRAM存储器中,并在每个引导顺序中,将密钥注入嵌入式MCU,并将其存储在SRAM存储器中。我认为这是最好的方法,然后,当MCU感应到渗透(使用篡改传感器或...)时,它可以快速擦除SRAM并自行复位。缺点:如果攻击者成功通过篡改并访问设备,则SRAM存储器的安全性(针对代码挖掘)。我在MCU中找不到此存储器的任何安全功能。 2-生成密钥并将其存储在编程MCU中的闪存中。MCU闪存支持CRP(代码读取保护),可防止代码挖掘,并借助其内部AES引擎和RNG(随机数生成)引擎,我们可以制作随机密钥并加密闪存并将该随机密钥存储在OTP中(一次可编程存储器-128位加密存储器),然后在执行代码时,我们使用RNG密钥对闪存进行解码,并访问初始密钥和代码。缺点:密钥存储在非易失性存储器中,篡改是无用的,攻击者有很多时间来挖掘密钥。 3-存储在EEPROM存储器中的密钥,上述两种方法的结合,密钥存储在非易失性存储器中,但当篡改时可穿透EEPROM。 我认为LPC18S57FBD208(具有1MB闪存,180MHZ,136KB SRAM,16KB EEPROM和TFT LCD控制器的皮质m3,我需要驱动7英寸TFT LCD和AES 128位加密引擎)对此是否还有其他更好的建议?
10 arm  cortex-m3  lpc 

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.