Mac系统搭建单片机运行环境-1-2
Mac系统搭建单片机运行环境-1-2
1.概述
这篇文章掀起了一个新篇章,打开了一扇从虚拟世界进入物理世界的大门。嵌入式系统是一个软硬结合的工程,既有软件的柔情似水还有硬件的骨干之美。
从此刻开始不仅有了大海还有了大陆。
第一篇文章介绍了windows系统搭建单片机运行环境,这篇文章介绍Mac系统搭建单片机运行单片机环境。
windows系统搭建单片机运行环境-1-1
2.推开单片机大门
2.1.目的
搭建一个最小单片机运行环境,就是打开大门的钥匙,我们的目的就是获取这把钥匙进入单片机世界。
2.2.制造钥匙
搭建单片机运行环境的过程划分了几个阶段,接下来按照每个阶段逐步实现完成环境的搭建。还可以根据实际情况选择需要的阶段进行搭建。
- 1.准备硬件
- 2.PC机与单片机通信
- 3.烧录程序
2.3.准备硬件
名称 | 型号 |
---|---|
单片机 | STC12C2052 |
USB转UART模块 | CP2102芯片 |
杜邦接口排线 | 无 |
面包板 | 无 |
面包板导线 | 无 |
LED灯 | 直插 |
2.4.PC机与单片机通信
单片机与PC机通信采用串口方式,PC机通过RS-232串口通信协议,将数据发送到单片机上,单片机接收的是TTL电平信号,因此需要通过芯片将RS-232转为UART将数据传输给单片机,这里采用的是CP2102芯片实现。
SILICon Laboratories公司推出的USB接口与RS232接口转换器CP2102/CP2103是一款高度集成
的USB-UART桥接器,提供一个使用最小化元件和PCB空间来实现RS232转换USB的简便解决方案。
1.制作ISP下载线
给单片机烧录程序的方式有三种:
- ISP(In-System Programming)在系统编程,使用引导程序(Bootloader)加上外围UART/SPI等接口进行烧录。
- ICP (In-circuit programmer)在电路编程,使用SWD/JTAG接口。
- IAP(In-Application Programming)指MCU可以在系统中获取新代码并对自己重新编程,即用程序来改变程序。
我们使用的是第一种ISP方式给单片机烧录程序,这个传输数据的线就是ISP下载线。
元件清单
名称 | 型号 | 数量 |
---|---|---|
USB转UART模块 | CP2102 | 1 |
芯片座 | 20PIN管孔 | 2 |
杜邦接头 | 3PIN和1PIN各一个 | 2 |
杜邦接口排线 | 长0.1m,4芯 | 1 |
USB转UART模块,芯片CP2102在网上就可以买到。
接线顺序
硬件准备完毕后就可以制作ISP下载线了,下面是接线原理图。
注意:
- USB上芯片的
TXD
对应的是单片机的RXD
- USB上芯片的
RXD
对应的是单片机的TXD
USB转UART模块 接线图
将杜邦排线一端接在USB转TTL模块上,之所以分成3PIN和1PIN的2个接头,是考虑到电源输出有3.3V和5V两种,单独分出1个接头可以很方便地选择单片机需要的电源,而且还可以当作电源开关来用。
芯片座 接线图
排线的另一端每条线剥去10mm左右的外皮,按照4根线的功能分别插入20PIN芯片座的管孔里面,用牙签或针压实。注意接线的顺序和技巧,心灵手巧是你的优点,只要认真考虑好结构,怎么接好看就怎么接。
接好线之后,再拿另外一个芯片座压在第一个芯片座的孔里,一款ISP下载线就制作好了。
单片机头部有个缺口,对应插座缺口位置,将单片机插到插座上。
2.安装驱动程序
ISP线制作好了之后,如果想让PC机识别并操作CP2102芯片
需要给芯片安装驱动程序,驱动程序安装可以到官网下载,或者网上找一个。
- 1.访问 Silicon Labs 官方网站:https://www.silabs.com
- 2.在官网首页右上角点击搜索图标,输入
CP210x USB to UART Bridge VCP Drivers
搜索驱动 - 3.在搜索结果页面列表中点击驱动,跳转到下载页面,点击下载驱动即可。这里直接给出一个mac系统的驱动下载地址:https://www.silabs.com/Support%20Documents/Software/Mac_OSX_VCP_Driver.zip
- 4.安装驱动默认下一步直到安装完成
2.5.烧录程序
1.安装stcgal工具
在windows中使用STC厂家出的工具STC-ISP软件烧录程序,这个程序没有mac版本。我们可以使用开源项目stcgal工具完成程序烧录工作,并且这个工具既可以通过命令行模式操作,还可以与第三方IDE软件集成直接,界面化调用。
stcgal项目地址:github 地址:https://github.com/grigorig/stcgal
stcgal项目是python语言开发,因此可以通过pip方式安装,如果没有python可以通过homebrew
工具安装。如果已有python可以直接通过安装stcgal,下面介绍完整的安装步骤
安装homebrew
运行下面的命令,出现镜像选择时,输入1选择1(中科大的下载源),直到安装完成。
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
验证homebrew
输入下面的命令brew -v
出现版本号,即为安装成功
brew -v
-------------------------------------
Homebrew 4.1.19-37-g275078d
fatal: detected dubious ownership in repository at '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core'
To add an exception for this directory, call:
安装python
brew install python3
# 验证python是否安装
python3 --version
安装stcgal
pip3 install stcgal
# 验证是否安装成功
stcgal -h
2.准备测试代码
将下面的代码复制到文件中,命令为led.hex
注意后缀是hex
:10000300EF1F70011E144E600BE4FDEDC3947D5091
:04001300EF0D80F776
:0100170022C6
:0B002400B2977FFA7E0012000380F507
:03000000020018E3
:0C001800787FE4F6D8FD75810702002413
:00000001FF
3.烧录程序
- 1.将USB-ISP下载线插入PC机
- 2.查看当前ISP驱动设备
ls /dev/tty.*
# 下面就是ISP设备端口
/dev/tty.SLAB_USBtoUART /dev/tty.usbserial-0001
- 3.烧录程序
stcgal -p /dev/tty.SLAB_USBtoUART -b 2400 led.hex
# 参数说明
-p:ISP设备端口
-b:设置波特率
led.hex 烧录的程序文件
如果出现下面的提示表示给单片机上电,这个时候需要将USB上对应 5V
引脚的PIN杜邦接口线拔下来,然后在插回去。程序才可以完成烧录。(此操作就是单片机冷启动)
stcgal -p /dev/tty.SLAB_USBtoUART -b 2400 led.hex
Waiting for MCU, please cycle power:
烧录完成
stcgal -p /dev/tty.SLAB_USBtoUART -b 2400 led.hex
-----------------------------
Waiting for MCU, please cycle power: done
Protocol detected: stc12a
Target model:
Name: STC12C2052
Magic: F202
Code flash: 2.0 KB
EEPROM flash: 4.0 KB
Target frequency: 6.822 MHz
Target BSL version: 5.8D
Target options:
low_voltage_reset=high
clock_source=internal
watchdog_por_enabled=False
watchdog_stop_idle=True
watchdog_prescale=256
eeprom_erase_enabled=False
bsl_pindetect_enabled=False
Loading flash: 47 bytes (Intel HEX)
Switching to 2400 baud: checking setting testing done
Erasing 2 blocks: done
Writing flash: 640 Bytes [00:01, 328.53 Bytes/s]
Setting options: done
Disconnected!
2.6.用钥匙打开单片机大门
我们的测试程序就是点亮led灯,下面通过单片机点亮我们第一个led灯,单片机的大门就被我们打开了。
操作步骤
- 1.将ISP线的USB插入PC机
- 2.将单片机插入面包板
- 3.将led灯的长脚插入面包板对应单片机右侧第一个引脚(20)位置,也就是单片机的VCC引脚
- 4.将led灯的短脚插入面包板对应单片机右侧第二个引脚(19)位置,也就是单片机的P1.7引脚
2.7.stcgal工具使用说明书
https://gitee.com/mirrors/stcgal/blob/master/doc/zh_CN/USAGE.md