留一层,备用				
			
		 本帖最后由 gentleman 于 2023-9-11 10:42 编辑 
2023/08/30第二十集
   SPI 结构 
      常用于 存储器 a/dd/a ledlcd通信
      分主从 
       
       
      SPDAT 相当于串口的SBUF
       
       从机不能主动发送时钟
       时钟由主机系统时钟分频形成
            SPR0 SPR1 控制
       SPEN 控制开关
       SSIG 是否忽略ss
      CPHA/CPOL   相位/极性 
       SPIF/WCOL状态
   
      
       主从选择
          
   
       注意WCOL 写1清0   可能是飞利浦搞错啦,还不承认   
       时序图
            
               
      CPOL 决定 高/低电平空闲还是激活状态
      CPHA前后沿
      具体的看图,时序图描述的很清晰
         
				
			
		 本帖最后由 gentleman 于 2023-9-11 10:42 编辑 
2023/08/30 第二十一集
      硬件spi就这几个寄存器
      
   
       SPCTL
          .7 SSIG1忽略ss
          .6 SPEN1使能      
          .5 DORD 1先传低位
          .4 MSTR主从选择结合SSIG 
          .3 CPOL    1 SCK=1空闲 前沿下降沿
                         0 SCK=0空闲      上升沿
          .2 CPHA,时钟选择
          .1.0联合控制时钟速率
   SPSTAT
          SPIF/WOCL标志位写1清理0         
      SPDAT 
          数据
    
       后面的例子是个驱动LCD 屏幕的
             注意这是个慢速设备 
       时序图
       
       大家课后可以尝试一下 试验箱的SPI FLASH 的驱动 和 oled12864 的驱动
       可能实用性更大一些,当然LCD 屏幕由于屏幕较大,也有许多适合使用的场景.
       我在论坛也写了一篇关于spi 驱动oled 屏幕的文章
          https://www.stcaimcu.com/forum.php?mod=viewthread&tid=4022
       
      
      
				
			
		2023/09/04 第二十二集
   I2C简单 有效
          时序很重要
         
          有主从机
          可多主机
          仲裁/同步
    I2C 工作原理
          同一时钟
          两个线   sdascl   (其实还有GND)
          sda scl 要上拉
 
         开漏模式
   
   时序
       
      
      每个器件唯一地址
      
      写指令
      字节写
      
      注意R/#WD 位置在地址后 应答前
    页面写
         发首地址,写多个
         再停止
         
				
			
		2023/09/04 第二十三集
      STC8H 的i2c寄存器
       
      比spi 要多一点
      ENI2C 关闭可以复位 
      
   建立时间与保持时间/速度 通过MSSPEED 设置
   课上讲的例程是使用24c02的存储器
   程序要点
          设计程序时可以在头部宏定义 地址,方便以后修改
          使用sbit 定义一些 引脚,虽然没用,但便于阅读。(曾经有个小白,改了这里的引脚定义,发现并没用,当时还困扰了好久)
          
          配置好相关寄存器
          start -设备地址 W- 存储器地址- 数据-停止命令 
          start -设备地址 W- 存储器地址- start   - 设备地址R- 读数据发ACK-停止命令 
      
    
				
			
		2023/09/04 第二十三集
      STC8H 的i2c寄存器
       
      比spi 要多一点
      ENI2C 关闭可以复位 
      
   建立时间与保持时间/速度 通过MSSPEED 设置
   课上讲的例程是使用24c02的存储器
   程序要点
          设计程序时可以在头部宏定义 地址,方便以后修改
          使用sbit 定义一些 引脚,虽然没用,但便于阅读。(曾经有个小白,改了这里的引脚定义,发现并没用,当时还困扰了好久)
          
          配置好相关寄存器
          start -设备地址 W- 存储器地址- 数据-停止命令 
          start -设备地址 W- 存储器地址- start   - 设备地址R- 读数据发ACK-停止命令 
      
    
				
			
		2023/09/06 第二十四集
   模拟量转数字量
   
    逐次逼近
    
    原理类似杆秤
    分辨率 8位 5V19.5mv
   810121416常见位数
    stc15通道 1个公共adc
    存在转换时间 采样保持时间    
    内部结构
   
    寄存器ADC_CONTRADCCFG
                   记得设置io高阻模式
               ADC_RES,ADC_RESL放高低位数据
                ADCTIM 时序控制   
                ADCEXCFG转换次数
				
			
		2023/09/07 第二十五集
             计算公式
          
            转换公式 4096 xvin/vref
      
            还可以反推输入电压
            编程步骤
            
         实例是ntc测温
          ADC_CONTR &=~0x20;
            这条语句可以思考一下
            好用的清0写法
          ADCRES要强制转换u16
          得到结果查表
         后面讲了下硬件调试, 很直观,很好用。
          另一个应用 ad按键
             节省io
          两组可以实现按键同时按下。
             
				
			
		2023/09/11期 第二十六集
    PWM 脉宽调制技术
            数电控制模电
    
         
          
            占空比t/T
         控制舵机转角
                不同占空比 对应不同的转角
                具体看舵机手册
          
                
         
      推导出全桥控制电机
       
       T内平均电压 = 占空比x脉冲电压幅度
       BTN7971    半桥驱动芯片
       
				
			
		2023/09/11 第二十七集
      stc8h pwm 8通道16位
      PWMA 与PWMB
      互补 死区控制 适合 驱动电机
      P 对应N 不能同时独立输出
    
      1P 1N 不能同时输出
      可以单独2P 3P
      也可以单独2N 3N
 
      16位 向上向下 自动装载   
      性能
      
      
      六步pwm输出 是指驱动无刷电机
            每60度一个转角
      
          时钟         
      使能ARPE自动重载 在UEV 送到影子
       禁止ARPE 立即写入影子
       UEV:向上/向下计数器溢出
                   软件 置位UG
                  时钟/触发控制器触发事件
       PWMA_CNTRH 先读
         分频 PWMA_PSCR
   向上计数 PWMA_ARR
   
   中间对齐
   
    
       这节课有点抽象了。
       看来试验箱还缺个无刷电机/舵机。