找回密码
 立即注册
查看: 957|回复: 10

【实验箱已发出】参加 STC 研讨会,day01感悟,day02感悟,day03感悟

[复制链接]

该用户从未签到

6

主题

6

回帖

152

积分

注册会员

积分
152
发表于 2023-8-5 16:39:29 | 显示全部楼层 |阅读模式
本帖最后由 STC32G12K128 于 2023-8-16 15:59 编辑

第一节课的感受:
       传统8051单片机的特点:
         (1)8051单片机中存在用于标准核心总线宽度的8位。
         (2)它的速度是每个机器周期12个时钟周期。
         (3)使用UART、USART、I2C、SPI、通信协议。
         (4)Flash、ROM、SRAM存储器用于8051单片机。
         (5)它基于CISC指令集架构。
         (6)8051单片机是基于哈佛的架构,但它允许我们连接外部存储器并模拟冯诺依曼的架构。
         (7)8051单片机的功耗是平均的。
         (8)它的成员包括8051变体。
         (9)与提供的功能相比,8051单片机的成本非常低。

         ARM单片机的特点:
         (1)大多数32位总线宽度存在于ARM单片机中,也有64位可用。
         (2)它的速度是每个机器周期1个时钟周期。
         (3)使用UART、USART、以太网、I2S、DSP、SPI、CAN、LIN、I2C通信协议。
         (4)Flash、EEPROM、SDRAM存储器用于ARM单片机。
         (5)它基于RISC指令集架构。
         (6)PIC单片机基于哈佛架构。
         (7)ARM单片机功耗低。
         (8)其系列包括ARMv4、5、6、7和cortex系列。
         (9)与提供的功能相比,ARM单片机的成本较低。

      单片机发展的焦点:单核CPU的处理能力、外设的集成规模、功耗的控制。

     1.单片机主要解决的问题是利用其较低的成本和优异的性能。通过硬件工程师的巧妙设计和软件工程师的业务设计充分发挥其特殊性能,解决嵌入工业、商业、餐饮、医疗、教学等各个领域,重复工作的问题(人工智能)。
         其主要特点:批量制造成本低,存储资源单一、适应性强,解决问题特点突出,应用可以依赖于网络或者不依赖网络。
     2.桌面系统分为两部分:
        1.电脑端桌面系统主要人机互动,主要用于桌面办公与生产制造。2.移动终端桌面系统主要使人们能够随时随地的享受人机互动带来的便捷。
          其主要特点:算力强劲解决复杂的问题。存储资源丰富、成本较高,能够深层次人机互动解决办公问题。
     3.应用角度:
        一般是将二者进行网络连接进行组网应用是想建立宏观的分布式网络生态系统,可以解决行业问题。比如:将单片机设计的终端设备与云服务器联网,通过网络控制设备的的运行与监控设备的运行状态。
单片机定义:
      术语:Microcontroller Unit-MCU微型控制器属于片上系统,自己理解人们是对广义世界生态法则理解在微观电子行业的科学展现,它有属于自己的片上生态架构(中央处理单元、存储单元、外设单元,以及四通八达的内部总线和繁忙的运行事物)和可操做存储事物逻辑(单片机编程)接口。
      随着科学的进步每个行业都已经进入严重的内卷时代,之前在单片机外部扩展的好多模块器件被集成到芯片内部这是一大科技进步,单片机工程师的工作重点正在逐步偏向软件化。
      system on chip SOC MCU的发展方向。
1、单片机与桌面系统的基本架构:

    day01回放感悟-1.png

day01回放感悟-2.png

day01回放感悟-3.png
上图的内核架构图将stc32g和arm contex-m3 做了一下对比,从图中可以看出同老师说的一样国产单片的不论是在内核结构还是在硬件外设方面都已经同国外的单片机达到同等的水平。而且在某些地方有自己的特殊的优势。比如CISC复杂指令集和工作寄存器组stc有4通用寄存器多态复这个特点在相同的时钟频率下让STC单片机的指令运行效率有了成倍的提高。硬件浮点数硬件计算单元同CISC指令集的结合让内核负载率大大降低。剩下的就是外设单元挂载规模而已正如老师所讲国产芯片的春天才刚刚开始!
      单片机:
       1.STC处理器 遵循intel MCS-51/MCS251的CISC复杂指令集的(8/16/32位操作)微架构真正实现。两者的关系好像是接口interface与实现类的对象的关系。
       2.SRAM(static random access memory) 随机访问存储器,是一种易失性存储器,实现成本较高所以规模一般不是很大。用于临时保存程序运行过程中所产生的数据,当掉电或者关机则会丢失。
       3.Flash(Flash memory)存储器,非易失性存储器,主要用于保存程序代码和程序中用到的字符串或者常量等等。属于广义的EEPROM的norflash.
      4.UART(universal asynchronous receiver/transmitter)以串行方式异步接收和返送数据的简单外部设备。
      5.GPIO(General purpose input/output)通用输出输出IO。MCU可以直接驱动或者读取其状态。
      6.Timer定时器为MCU提供最定时和计数功能。也可以为操作系统提供滴答功能。
      7.Int Controller(interrupt controller)中断控制器:是CPU能够快速高效地响应内部或者外部事件。
      8.EMIF(external memory intarface)为MCU提供了连接外SRAM的能力。
      9.ADC/DAC(analog to digital convertar模拟数字转换器和digital to analog convertar数字模拟转换器) 真12位精度转换器。
          通过外部简单电路的搭建即可实现模拟信号转换数字信号或者数字信号转模拟信号。比如检测霍尔油门开关的模拟信号然后通过程序将其量化转换成pwm输出信号再通过硬件电路将其修正为电压信号控制IGBT            的导通角然后控制电气设备的运行速度。
     10.设备低功耗的需求,是嵌入式行业发展的一种趋势。
     11.可以搭载的实时系统uc-os、 Free-RTOS、Rtx51-Tiny、RT-Thread等
     桌面系统:
       个人电脑和手机:搭载Windows系统和android/IOS系统
        框架:CPU DRAM(外部动态存储器 )  FLASH(外部) STANDI/O
         CPU:工作频率高内部集成小容量高速缓存,运算能力强劲
         DRAM(外部动态存储器 ):大容量,G级别的存储容量
         FLASH(外部) :容量大,现在大多数是T级别的存储容量

     个人理解老师的意思:单片机是片上微系统,将cup 内存、flash 特殊性能外设模块,IO等集成到芯片内部。 特点极易嵌入各个领域大规模应用。
                                     桌面系统是板载级系统  要求cup高算力,内存数据吞吐容量大,文件数据存储容量大的高性能系统。追求高承载力、高性能,高精度。
2、处理器和指令集类型
      现行的单片机指令集架构:
        CISC(Complex Instruction Set Computer)指令集架构:复杂指令集-非等长,一条指令可以包含多个操作, MCS-51/C251 允许在存储器上直接进行算数逻辑运算
         MCS-51    8位宽度:逻辑运算单元、寄存器、数据总线都是8位的所以是8位MCU。111条非定常指令(49条单字节,46条双字节,16条三字节指令)

         STC性能提升每秒运行1200万条单周期指令,每个指令周期即是时钟周期 注意在主频12M的情况下1ms执行1200条单周期指令在优化程序的时候注意事项。
         MCS-251 32位宽度:逻辑运算单元、寄存器、数据总线都是32位的所以是32位MCU。268条非定长指令
           1.提供24位现行位寻址能力:可寻址16M地址空间。其高8位是来选中单片机内部的存储空间(程序存储空间、数据存储器空间、特殊功能寄存空间),

              剩下的16位用来定位在具体空间中存储器的具体位置。已经采用段寻址功能。
           2.提供了8/16/32位数据的处理能力,即可以通过字节、字、双字方式访问处理器核内寄存器的能力,直接对8/16/32位操作数进行操作,功能比MCS-51更加强大。
           3.流水线:取址、译码、执行重叠结构同步进行cpu的吞吐量显著提高。
           4.16位32位算数逻辑指令,而且指令集向下兼容,MCS51的程序可以直接在MSC-251上运行(原因mcs251的原编译模式对工作寄存器组做了巧妙设计,1个通用寄存器组可用字节、字、双字的形式进行访问),                这一点无缝对接让应用工程师欣慰。
           5.汇编:说实在的重要的事情只讲3遍,因为机器只能识别0和1我们常人很难看懂,盲调的时候用LED灯的亮灭来验证程序的执行位置及其状态效率实在太低了,看懂了汇编和直观的看到底层硬件的运行状态。
             因为单片机是面向过程编程,所以我们既要深知自己此时在操作什么又要验证实际底层的操作状态和运行结果。汇编真的是最贴近二进制的语言了,它的执行效率最高,又可以看到底层硬件的执行接力过                    程,更能验证自己的编程运行结果。
             没有比它在接近机器语言的语言了-------真心话!

day01感悟-1.png

day01感悟-1.png

day01感悟-2.png

day01感悟-3.png

day01感悟-1.png
以上分享一些关于linux系统软内核的分层框架和内存分层帮助理解何老师所说的单片机发展趋势和微机系统的分层结构,以及从芯片厂家-内核裁剪-内核移植-外设驱动修改-桌面应用开发的层次流程。

     RISC(Reduced Instruction Set Computer)指令集架构:精简指令集-等长 一条指令只能包含一个操作 ARM-Thumb、MICROCHIP-MIPS32-MIPS 不允许在存储器上直接进行算数逻辑运算
    ISA(Instruction set Architecture)指令集架构:
         什么是微架构:单片机厂家根据不同的ISA在芯片内部的具体实现(其中包括硬件和软件两部分)。
    段寻址:
       day01感悟-1.png

3、嵌入式系统的硬件和软件:
     硅片级集成外设:将以前应用工程师PCB扩展的外设模块集成到芯片内部。应用的外部PCB设计越来越简单。

      day01感悟-2.png
     嵌入式系统开发分为三个层次:
        1.直接在嵌入式硬件上开发应用。需要软件开发人员对硬件原理非常清楚,当软件在不同的平台移植时比较麻烦,对系统维护困难。
       2.借助于嵌入式硬件厂商提供的应用程序接口函数开发应用。软件开发人员的门槛降低无需了解底层的硬件原理,开发效率高,易维护,不同平台移植只需要修改所调用的API函数即可,降低了移植难度。
       3.借助于嵌入式操作系统:当遇到基于MCU的多任务开发时就可以在嵌入式平台上搭载嵌入式OS实时系统,uc-os、 Free-RTOS、Rtx51-Tiny、RT-Thread。
           优点:实时效率高、这些系统已经在底层对于不同厂家的硬件做好了驱动适配,支持多任务处理,应用开发效率高,跨平台移植难度小。
4、单片机程序设计语言:

       day01感悟-2.png
       微指令:芯片设计人员使用的指令,芯片设计人员根据指令集架构实现芯片设计(微架构)。
      机器指令:单片机执行的指令。可以通过仿真借助助记符观察。
      汇编语言:是对机器指令的一种抽象,是解读机器指令的唯一桥梁。观察观察机器指令执行的唯一窗口。
      高级语言:实现面向过程应用的通用语言,易于让应用设计人员理解标椎应用语言,需要编译才生成可执行文件,机器才能执行。
day01感悟-3.png



day01感悟-4.png

day01感悟-5.png

day01感悟-6.png

day01感悟-7.png

day01感悟-8.png

day01感悟-9.png

day01感悟-10.png

day01感悟-11.png
volatile 强调常数不进行优化要放到存储器中,否则会直接放到寄存器中,第一次看到这么详细的运行流程收获感满满。
      反汇编由操作码和操作数两部分组成,操作码代表要实现的功能,操作数为要操作的数据或者存储器的值。
       MCS251的指令格式:
                  操作码  目标操作数,源操作数
          例如:MOV  A,#c(0x0A)   #将自定义存储器c的数据移动到累加器A
                   ADD WR6,WR4   #16位加法指令
                   MOVS  WR6,R7   #带符号扩展移动指令,将8位R7的数据移动到16位寄存器,并进行符号扩展。
day01感悟-12.png

day01感悟-13.png

day01感悟-14.png

day01感悟-15.png


5、单片机的性能评价:
day01感悟-16.png

day01感悟-17.png

day01感悟-18.png

8位stc15/89单片机需要20条指令48个字节,48个指令周期。
day01感悟-19.png
32位STC32G单片机,总共需要10条指令38个字节15个时钟周期。其中一条ADD DR4,DR0 指令执行32位加法操作。
day01感悟-20.png

回复 送花

使用道具 举报

该用户从未签到

550

主题

9349

回帖

1万

积分

管理员

积分
13928
发表于 2023-8-7 22:27:14 | 显示全部楼层
楼主对我们的免费公开课 认可/支持/给力,建议主动联系我们同事
=====提前获得 【免费+包邮送】的 STC32G12K128实验箱 或 STC8H8K64U实验箱
=====现在送的,都可以利用MCU自带的 硬件USB直接仿真,硬件USB直接下载

【免费+包邮】 送/申样/采购 可加 如下 QQ或微信联系
加STC华南区客服刘经理QQ: 3398500488 ;微信:18106296592  要求 【免费+包邮】 送, 还免费教仿真  
加STC华南区客服曹经理QQ:1933892258 ;微信:18106296595 要求 【免费+包邮】 送, 还免费教仿真
加STC华东区客服聂经理QQ:2593903262;微信:18106296598  要求 【免费+包邮】 送, 还免费教仿真
加STC西北区客服孙经理QQ: 1347154513 ;微信:18106296593  要求 【免费+包邮】 送, 还免费教仿真
加STC华北区客服石经理QQ: 1638975601 ;微信:19952583876  要求 【免费+包邮】 送, 还免费教仿真
加STC华中区客服唐经理QQ:2571301708 ;微信:18106296589 要求 【免费+包邮】 送, 还免费教仿真
加STC东北区客服张经理QQ:3141888640 ;微信:19952583265   要求 【免费+包邮】 送, 还免费教仿真
加STC西南区客服张经理QQ:3141888640 ;微信:19952583265   要求 【免费+包邮】 送, 还免费教仿真
工作时间:  8:30-12:00,13:00-17:30(周一 到 周五, 法定节假日除外)

【免费+包邮】 送/申样/采购传统电话热线:0513-55012928、0513-55012929、0513-55012966
工作时间:  8:30-12:00,13:00-17:30(周一 到 周五, 法定节假日除外)
回复 支持 反对 送花

使用道具 举报

该用户从未签到

550

主题

9349

回帖

1万

积分

管理员

积分
13928
发表于 2023-8-7 22:30:58 | 显示全部楼层
2023/8/7, 22:25分
何宾老师发本贴的链接信息给我,认可楼主的总结 认真/支持/给力
===何老师要求提前 免费+包邮 送您 USB直接仿真的 STC32G12K128实验箱

估计 STCAI.com 时代,声音转文字的功能是越来越强大了

回复 支持 反对 送花

使用道具 举报

该用户从未签到

6

主题

6

回帖

152

积分

注册会员

积分
152
 楼主| 发表于 2023-8-8 00:23:06 | 显示全部楼层
谢谢两位老师支持!
回复 支持 反对 送花

使用道具 举报

该用户从未签到

550

主题

9349

回帖

1万

积分

管理员

积分
13928
发表于 2023-8-9 09:53:29 | 显示全部楼层
1.STC系列单片机发展史

边缘应用:人工智能轻量级的应用,依赖于MCU低成本,针对某一问题高性能应用开发。例如语音识别。


纳米工艺:纳米是指PN结沟道的宽度单位,纳米工艺是指在单位空间内PN结的集成度。随着制程工艺的发展,PN结沟道的宽度越来越窄,芯片运行速度越来越快,工作频率越来越高,功耗越来越低,成本也会降低。
摩尔定理:摩尔在1965年文章中指出,芯片中的晶体管和电阻器的数量每年会翻番,原因是工程师可以不断缩小晶体管的体积。这就意味着,半导体的性能与容量将以指数级增长,并且这种增长趋势将继续延续下去。1975年,                    摩尔又修正了摩尔定律,他认为,每隔24个月,晶体管的数量将翻番。 这篇文章发表的时候,芯片上的元件大约只有60种,而现在,英特尔最新的Itanium芯片上有17亿个硅晶体管。
STC国产芯片的原因:在台积电上海流片生产,在南通富士通封装和厂测。






2.STC单片机IAP和ISP


                    ISP本地下载更新程序                                                         IAP远程更新程序





3.STC32G系列单片机的功能
    STC单片机提升到32位的 变化:内核性能的巨大提升、存储空间容量的增加、外设功能的增强。



4.STC  32位单片机的命名规则及封装



DIP封装逐渐淘汰的原因,是内部pin脚引线过长工作在高频状态时寄生电容和电感对高频运行产生不利影响。
姚总建议不要使用PLCC封装的芯片,因为适配座子成本很高而且容易接触不良。


引脚复位功能的物理实现:
     1.多路选择器通过总线同芯片内部的扩展外设模块相连
     2.多路选择器同芯片的外部引脚相连  
     3.多路选择器的选择端同内部总线相连,
     通过配置SFR特殊功能寄存器区域的某一个对应的字节选择对应的复用功能映射到对应的芯片引脚上。


5.STC32G系列单片机引脚驱动原理


    STC单片机提供了4中IO口驱动模式
         1.准双向输入输出
               
         2.强推挽输出
        
         3.仅为输入(高阻模式)
        
          根据输入对象的强推挽输出模式,可以设置位此模式

         4.开漏输入输出模式
         
           用户可以根据适配对象的逻辑电平增加对应的上拉电阻来达到合理的高电平适配。例如:串口通信TXD对接3.3V/1.8V的IO器件强推挽输出模式的RXD。

6.STC323G系列单片机硬件下载电路
      
USB规范规定:差分信号是3.0-3.6V
电源电压5V是IO口高低电平
电源电压是3.3V时IO口高低电平

单片机软件开发基础
    Keil uVision软件的下载和安装
        1.软件功能介绍
        
      第一次有老师给我讲清了hex文件同可执行文件的关系。连接器不仅负责将目标文件和库函数等合成为可执行文件而且还负责将这些字段定位在可执行文件的不同位置,然后才由hex生成器转换成Intel的hex格式进行下载


        
         A251汇编器:包含C251的汇编规则,---------负责把助记符翻译成机器指令。
        C251编译器:不仅包含对标C的编写规范还包含针对C251架构的一些C语言编程的扩展限制。--------负责把C语言翻译成C251的指令
        L251链接器:包含链接原理,可以通过编译过程中产生的一些文件可以分析编译连接的过程。-------负责把不同的模块连接并定位在程序的不同空间产生可执行文件
        B251库管理器:
        
      
        2.软件下载



        3.软件安装
          KEIL C51、C251、MDK共存安装教程网址bilibili:  https://www.bilibili.com/video/BV1VN4y1j74t/?vd_source=e5201170c16910b4aa0cc5d6091009b4

        4.导入STC单片机元件库


        5.软件启动


     Keil uVision设计流程和应用开发
       1.软件设计流程


       2.应用程序开发










回复 支持 反对 送花

使用道具 举报

该用户从未签到

550

主题

9349

回帖

1万

积分

管理员

积分
13928
发表于 2023-8-9 09:54:45 | 显示全部楼层
上面帮楼主,合并了 DAY02的感悟
回复 支持 反对 送花

使用道具 举报

该用户从未签到

550

主题

9349

回帖

1万

积分

管理员

积分
13928
发表于 2023-8-9 09:55:04 | 显示全部楼层
Keil uVision设计流程和应用开发

       2.应用程序开发

          1.建立新的设计工程
           
            
             










          2.添加新的C语言文件
未完待续...

          3.建立设计

          4.下载程序到目标系统


          5.硬件在线调试






回复 支持 反对 送花

使用道具 举报

该用户从未签到

550

主题

9349

回帖

1万

积分

管理员

积分
13928
发表于 2023-8-9 09:56:22 | 显示全部楼层
上面帮楼主,合并了 DAY03的感悟, 请楼主后面的感悟就在本贴跟进就行了
回复 支持 反对 送花

使用道具 举报

该用户从未签到

6

主题

6

回帖

152

积分

注册会员

积分
152
 楼主| 发表于 2023-8-9 10:19:41 | 显示全部楼层
好的
回复 送花

使用道具 举报

该用户从未签到

6

主题

6

回帖

152

积分

注册会员

积分
152
 楼主| 发表于 2023-8-18 12:01:00 | 显示全部楼层
本帖最后由 薛明峰 于 2023-8-18 12:06 编辑

通过这一段时间的学习,想法很多。手痒的的不行找几个demo动动手。在测试过程中发现一个问题蜂鸣器驱动失效。

解决方法和思考过程:
        思考方向:
              1.程序中寄存器配置错误。
              2.蜂鸣器损坏。
              3.电阻虚焊。
              4.IO共用的复位电路有问题。
              5.主芯片有问题。
       解决过程:
        1.将IO口单态使能,通过外用表测量电阻R87的电压观察蜂鸣器驱动状态。
          1.png 2.png 3.png
            测量结果是4.68V,拉不低。在程序中设置P54为IO口模式也是一样。
       2.联机仿真观察IO口状态
          4.png
打开IO口观察窗 Debug→All-Ports→发现0x1f P54也是高电平
5.png
注意脱机仿真是看不到IO口状态的。
怀疑是不是IO其它复用功能设置了IO口的配置。所以重新写一个最简单的程序进行测试。
6.png 运行结果依然如故 7.png
8.png 排查P54的复用功能已经没有开启任何复用功能了。

思考继续排查软件的难度会越来越大,换个方向排查一下硬件部分。
3.短接一下R48靠近T2基极的部分,可以触发蜂鸣器,说明蜂鸣器和三极管都没有问题。
4.排查共用的复位电路。
C1去掉测试依然不能驱动蜂鸣器。按REST按键也不能触发蜂鸣器。

5.怀疑是主芯片接触不良。加焊主芯片引脚后问题解决。按复位按键也可以触发蜂鸣器了。
6.再用仿真观察P54口的状态。
9.png 在程序中增加LED灯驱动是问了排查IO操作的局部问题还是全局问题。

总结:
       1.在线仿真可以把自己的操作观察的一清二楚。可以很客观的观察到问题的节点。是程序员观察程序底层运作的一双眼睛。第一次使用在线仿真全程来解决问题,确实能很直观的反应出问题。
       2.解决问题时,需要平衡问题解决方向的时间复杂度,尽量不要钻牛角尖。
      
   
回复 支持 反对 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2024-5-9 11:23 , Processed in 0.095527 second(s), 68 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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