查看: 1040|回复: 0
收起左侧

嵌入式IoT[04]_ESP32-C3上手体验与开发环境搭建

[复制链接]

  离线 

  • TA的每日心情
    慵懒
    2021-7-23 17:16
  • 签到天数: 17 天

    [LV.4]

    发表于 2021-5-18 18:54:31 | 显示全部楼层 |阅读模式

    有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    本帖最后由 草帽王子 于 2021-5-18 18:54 编辑

    ESP32-C3上手体验与开发环境搭建

    1.说明
    2.开发环境搭建
      2.1 下载ESP-IDF的环境
      2.2 编译代码
      2.3 程序烧录与验证
    3.ESP32-C3 LED分析
    4.使用WiFi功能
    5.小结


    1.说明

    ESP32-C3采用的是RISCV架构的芯片,目前又专注RISCV研究,所以特此来研究一下这个芯片的使用情况。
    该芯片的主要特性如下:
    • 采用RSCV-V 32位的单核处理器,四级流水线架构,主频是160MHz。
    • 内置400KB SRAM,384KB ROM
    • 完善的Wi-Fi子系统
    • 低功耗蓝牙

    ESP32-C3 单片机芯片-嵌入式IoT[04]_ESP32-C3上手体验与开发环境搭建risc-v单片机中文社区(1)

    外设支持方面

    外设
    备注
    GPIOx22
    SPIx3
    UARTx2
    I2Cx1
    I2Sx1
    红外收发器2
    LED PWM6
    USB串口1
    看门狗3

    从芯片的设计的定位上来看,主要定位在智能家具或者小型的物联网设备端等等。


    下面来体验一下开发流程。



    2.开发环境搭建


    要想使用该芯片,开发环境搭建很关键,这样才能玩的更加的好。本文主要是基于Ubuntu20.04进行环境搭建,当然也支持Windows等平台的环境搭建。


    • ESP32-C1
    • Ubuntu20.04 PC
    • 串口线


    2.1 下载ESP-IDF的环境


    注意:当前ESP-IDF还没有集成在ESP-IDF正式发布的版本(v4.2)中。需要使用v4.3 beta版本。

    下载的地址如下:

    1. https://dl.espressif.com/dl/esp-idf/releases/esp-idf-v4.3-beta3.zip
    复制代码

    下载完成解压即可。

    注意编译时需要安装以下的软件包

    1. sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
    复制代码

    进入esp-idf-v4.3-beta3中,执行./install.sh。

    ESP32-C3 单片机芯片-嵌入式IoT[04]_ESP32-C3上手体验与开发环境搭建risc-v单片机中文社区(2)


    编译完成后,出现上述图片结果即可。


    输入

    1. . ./export.sh
    复制代码

    导入环境,这一步会将ESP-IDF需要的PATH添加到环境变量中,如果希望下次开机,这些环境变量还存在,可以添加到系统环境变量中~/.bashrc

    1. alias get_idf='. /home/bigmagic/workspace/esp-idf-v4.3-beta3/export.sh'
    复制代码

    ESP32-C3 单片机芯片-嵌入式IoT[04]_ESP32-C3上手体验与开发环境搭建risc-v单片机中文社区(3)

    然后更新一下源即可

    1. source ~/.bashrc
    复制代码

    每次开启新的窗口,只需要输入get_idf即可自动进行环境路径的添加。


    2.2 编译代码


    ESP-IDF环境搭建完成后,即可进行源代码的编译与下载。


    首先创建一个自己的工作目录。


    注意:每次新开一个终端,输入get_idf更新环境。

    首先简单的编译hello_world程序。

    ESP32-C3 单片机芯片-嵌入式IoT[04]_ESP32-C3上手体验与开发环境搭建risc-v单片机中文社区(4)

    依次输入

    1. cp -r $IDF_PATH/examples/get-started/hello_world .
    复制代码

    然后开始进行配置

    1. cd hello_world
    2. idf.py set-target esp32c3
    3. idf.py menuconfig
    复制代码

    其中menuconfig是配置相关的设置,这里可以配置Wi-Fi的SSID,等等,由于helloworld没有许多需要配置的,所以不用管理。

    直接输入

    1. idf.py build
    复制代码

    开始编译。

    ESP32-C3 单片机芯片-嵌入式IoT[04]_ESP32-C3上手体验与开发环境搭建risc-v单片机中文社区(5)


    2.3 程序烧录与验证


    程序烧录可以通过如下的命令进行

    1. idf.py -p PORT [-b BAUD] flash
    复制代码

    其中[-b BAUD]可选的设置波特率的地方。


    需要注意的是,在Ubuntu下可能出现串口硬件没有权限访问的错误。


    可以修改串口权限

    1. sudo chmod 777 /dev/ttyUSB0
    复制代码

    由于我插入设备识别的是/dev/ttyUSB0,所以改变该权限即可。

    1. idf.py -p /dev/ttyUSB0 flash
    复制代码

    正常情况下,会出现如下的信息。

    ESP32-C3 单片机芯片-嵌入式IoT[04]_ESP32-C3上手体验与开发环境搭建risc-v单片机中文社区(6)


    最后输入

    1. idf.py -p /dev/ttyUSB0 monitor
    复制代码

    可以看到串口的输入信息。

    ESP32-C3 单片机芯片-嵌入式IoT[04]_ESP32-C3上手体验与开发环境搭建risc-v单片机中文社区(7)

    退出监听模式输入Ctrl + ]。



    3.ESP32-C3 LED分析


    前面已经完成相关的基础环境搭建,接着可以根据上面的环境,分析一下外设的使编程。


    在ESP32-C3-DevKitC-02的原理图可以在下面的网站中找到。

    1. https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32c3/hw-reference/esp32c3/user-guide-devkitc-02.html
    复制代码

    其RGB LED的原理图如下

    ESP32-C3 单片机芯片-嵌入式IoT[04]_ESP32-C3上手体验与开发环境搭建risc-v单片机中文社区(8)


    当前采用的是SK68XXMINI-HS,该LED的驱动主要是依靠PWM的驱动进行。


    其相关的原理说明如下

    1. https://www.rose-lighting.com/wp-content/uploads/sites/53/2020/05/SK68XX-MINI-HS-REV.04-EN23535RGB-thick.pdf
    复制代码

    按照不同的PWM的调节,可以产生不同颜色的光。

    ESP32-C3 单片机芯片-嵌入式IoT[04]_ESP32-C3上手体验与开发环境搭建risc-v单片机中文社区(9)


    在ESP-IDF中,已经存在demo。

    1. cp -r $IDF_PATH/examples/peripherals/rmt .
    复制代码

    然后进入led_strip的目录。


    依次输入

    1. idf.py set-target esp32c3
    复制代码

    然后选择配置

    1. idf.py menuconfig
    复制代码

    选择相关的配置

    ESP32-C3 单片机芯片-嵌入式IoT[04]_ESP32-C3上手体验与开发环境搭建risc-v单片机中文社区(10)


    将硬件引脚改为8。

    ESP32-C3 单片机芯片-嵌入式IoT[04]_ESP32-C3上手体验与开发环境搭建risc-v单片机中文社区(11)


    配置完成,输入S保存,输入Q退出,接着进行编译。

    1. idf.py build
    复制代码

    下载程序

    1. idf.py -p /dev/ttyUSB0 flash
    复制代码

    下载完成后,可以看到LED正常的闪动。



    4.使用WiFi功能


    使用ESP32-C3的比较重要的功能就是使用其WiFi联网功能。


    第一步:获取代码

    1. cp -r $IDF_PATH/examples/wifi .
    2. cd wifi/getting_started/station
    复制代码

    第二步:选择配置

    1. idf.py set-target esp32c3
    复制代码

    第三步:设置WiFi的SSID与密码

    1. idf.py menuconfi
    复制代码

    ESP32-C3 单片机芯片-嵌入式IoT[04]_ESP32-C3上手体验与开发环境搭建risc-v单片机中文社区(12)


    设置SSID与密码

    ESP32-C3 单片机芯片-嵌入式IoT[04]_ESP32-C3上手体验与开发环境搭建risc-v单片机中文社区(13)

    第四步:开始编译

    1. idf.py build
    复制代码

    第五步:下载程序

    1. idf.py -p /dev/ttyUSB0 flash
    复制代码

    第六步:测试程序

    1. idf.py -p /dev/ttyUSB0 monitor
    复制代码

    此时测试的是通过连接自己的路由器,然后通过局域网内的ip去ping该station。

    ESP32-C3 单片机芯片-嵌入式IoT[04]_ESP32-C3上手体验与开发环境搭建risc-v单片机中文社区(14)

    可以看到可以正常获取到IP地址,并且可以ping通模块,表示实验成功。



    5.小结


    本文通过环境搭建、外设编程、WiFi程序的演示,大致的描述了ESP32-C3的编程方式。总的说起来,采用ESP-IDF的集成开发环境,很大程度上可以减少环境搭建的烦恼,可以非常顺利的做上层业务的开发。


    特别是采用API的编程方式,让编程的模型更加专注于业务上的设计,比如可以做一些网络应用,智能家居,远程监控等等。体验下来这个RISCV的芯片和其他的ESP32的使用上并无十分明显的区别。后续会通过ESP32-C3上做一些div小项目,只有在更多的测试数据上,才能体现的出优劣。







    上一篇:ESP32-C3 (RISC-V)单片机简介
    下一篇:嵌入式IoT[05]_ESP32-C3 mqtt操作实践
    RISCV作者优文
    全球首家只专注于RISC-V单片机行业应用的中文网站
    回复

    使用道具 举报

    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    关闭

    RISC-V单片机中文网上一条 /2 下一条



    版权及免责声明|RISC-V单片机中文网 |网站地图

    GMT+8, 2024-4-26 14:56 , Processed in 0.804805 second(s), 48 queries .

    快速回复 返回顶部 返回列表