在 ARM 微控制器上开始编程的绝对最便宜(简单)的方法

电器工程 手臂 程序员 开发工具
2022-01-12 16:01:16

我想开始使用 ARM 处理器,从我使用太久的 PIC 迁移。8 位模型的价格低于 1 美元,程序员的价格低于 10 美元,而且我已经被入门的简易性和低成本所宠坏了。但是看到他们的能力在同价位的一些ARM芯片中相形见绌,并且厌倦了闭源软件,我想进行切换。

我宁愿避免使用任何开发板,而是直接使用便宜的通用分线 pcb(1 美元)直接进入它,并在面包板上使用任何必要的外部组件来实现它。

以这种方式对 ARM 芯片进行编程有哪些选择?是否有像 PICKit2 这样的编程器使用 USB 连接到 PC,通过简单的串行连接(如 ICSP)与芯片进行编程?不同的 ARM 制造商、ARM 版本和单个芯片需要多少设置差异?(ST、Atmel...)例如,每个制造商是否都需要自己的编译器、编程器、IDE 等?还是有适合所有人的通用工具?

编辑:好吧,所以经过更多的研究,我相信我已经想出了一个相对便宜的解决方案,一个 stm32 开发板可以刷上 DAPLINK 固件,但我不相信官方 github 固件会原生工作(所有这些都是猜测,直到我通过邮件获取我的 stm32 开发板)。但是我发现readbear mk20附带的daplink_usb板运行的是stm32芯片,他们已经发布了固件,需要更改一行以使其与8mhz晶体兼容(详见下面链接的论坛帖子)。否则用 16 兆赫的晶体换掉。当我的开发工具包到货时,一旦我确认了这一点,我就会更新。

GitHub 回购

好的论坛资源在这里

Redbear Github 分叉

4个回答

stm32F0 和 stm32L0 系列的发现板售价约为 10 美元,Keil 将以零成本为该系列提供全功能 IDE。

Keil free pro MDK 安装说明在这里

此外,ARM 有一张关于从 PIC 迁移到 Cortex M3的白纸,您可能会觉得有帮助

最简单的方法 - 为功能齐全的 Keil Pro 编译器支付 > 10K 美元,购买他们的 JLINK 调试器(可能再花费 1000 美元 - 有一些更便宜的但有一些限制)。IAR 是另一种昂贵的可能性(提供了适用于 30 天 IAR 演示的 STM32F7 Cortex M7 处理器的示例)

最便宜的方式 - 下载并安装带有 JLINK 调试器插件的(免费)GCC-ARM + Eclipse 工具链。以 20 美元左右的价格获得一个 JLINK 克隆,我认为它可以正常工作 - 尚未测试,用于调试。

网上有后者的详细说明,但是他们做出了某些假设。预计要花一天或更长时间才能完成,尤其是在 Windows 下。不要期望能够在不做一些工作的情况下使用为其他 IDE 提供的许多示例。令人印象深刻的是,免费工具链可以使用“包”(现在是“实验性”)。

还有其他系统,例如 Rowley Crossworks(我相信它使用 gcc),它们在经济上不那么痛苦。Atmel Studio 是另一个,但我非常有经验的固件开发人员对它提出了严厉的抱怨(我自己只是短暂地玩过它)。

如果您的代码需求少于 32K,您可以免费使用相同的 Keil 系统(代码限制版本),但请注意升级路径很简单但相当昂贵。例如,它不会为 SAME70 编译简单的以太网示例。如果您用低端 ARM 替换 PIC 或 AVR,则很好,但如果您要使用 ARM,则不是很好,因为您实际上需要与 LCD 显示器通信并运行复杂的通信协议(可能包含预编译模块而不影响32K限制,我没有研究过那个特定的角度)。

这是我使用的:

  • STM32F103“最小系统板”(参见此处Cortex-M3 内核),在 3.3V 或 USB 电源上运行,无需任何外部组件,每个克隆的价格约为 3 美元。这非常符合您的要求,即“使用廉价的通用分线 pcb 直接进入它,并在面包板上”。
  • ST-Link V2 USB 编程器克隆(看起来像这个),起价约 2 美元,同时支持片上调试。
  • EmBitz(以前的 Em::Blocks)作为带有 gcc 工具链的 IDE,0 美元
  • STM 的CubeMX帮助开始新项目,0 美元

最简单的开始可能是第三方克隆板之一。来自 ST 的随机示例这需要使用“SWD”协议的程序员。ST 制造“ST-LINK”品牌的产品,我不确定您是否必须将 ST-LINK 产品与 ST 设备一起使用,或者它是否真的是通用的。

SWD 和 JTAG 的某种组合在 ARM 系统上扮演 ICSP 的角色,为您提供编程和调试功能。

软件方面,通常可以在大多数芯片上使用 GCC 和 OpenOCD。每个设备的细节略有不同。专业人士经常使用相当昂贵的 Keil 工具链。

某些设备(例如 Kinetis 系列)具有 USB 引导加载程序:设备显示为大容量存储设备,您将 BIN 文件下载到其上并按下按钮。最简单的解决方案,无需程序员。Atmel AT91 有一个 USB 引导加载程序,它与称为 SAM-BA 的专有协议一起工作。