自制PD诱骗器-FUSB302天坑

很久很久以前,我写过一个PD协议的读书笔记(半弃坑状态),我还没整理。那时候就是FUSB302小板的V1.0版本状态。

一、硬件篇

现在是V1.1。

主要功能和特色:

  • USB-C Dual port,可以一进一出。
  • FUSB302用于PD通信,另外准备了电阻网络用于诱骗QC2.0/3.0。
  • 所有排针双重备份,一个用来接单片机,另一个用来接逻辑分析仪。
  • 引出一个KF5.08-2P端子用来接电子负载
  • 33V耐压LDO
  • 考虑到适配器的电源质量和本次实验的重点,并没有放Bulk Cap和电源纹波测试点
  • 因为拉线很丑肆意而为,所以使用黑色油墨

实物图:

V1.0版本的实物图:

二、软件篇

STM32CubeIDE快速上手教程

有待更新

温馨提示,可以检索TrueStudio+Eclipse的技巧,应该和cubeIDE是通用的。

代码折叠

Window下–>Preferences。在C/C++  –> Editor –>Folding 

代码提示

在菜单栏上点击window->Preferences->General->Keys 在搜索栏里搜索关键字content ,找到Content Assist这一功能将其快捷键改为你自己习惯的快捷键,这样在输入代码的时候点击就会有代码提示框出现。

STM32CubeMonitor介绍与使用

简介

STM32CubeMonitor工具旨在使最终用户能够深度定制:

  • 监控各种STM32微控制器的特性。目标内存监视是STM32CubeMonitor的核心功能。计划进一步扩展以带来更多高级功能,例如电机控制,RF和功率监控。
  • 生成带有各种数据可视化小部件和图表的监视仪表板。

下载地址:

官方Wiki:

Continue Reading

[STM32]基于HAL库扫描I2C设备地址代码

主要两个作用:

  • 快速确认I2C通信的器件是否工作正常
  • 快速获得I2C地址

依赖:

  • HAL库
  • 配置好I2C和串口

CODE:

/* USER CODE BEGIN 2 */
uint8_t i=0;
HAL_StatusTypeDef status;
for(i=0;i<127;i++)
{
status=HAL_I2C_Master_Transmit(&hi2c1,i<<1,0,0,200);
if(status==HAL_OK)
{
printf("i2c addr:0x%02X is ok\r\n",i<<1);
}
else if(status==HAL_TIMEOUT)
{
printf("i2c addr:0x%02X is timeout\r\n",i<<1);
}
else if(status==HAL_BUSY)
{
printf("i2c addr:0x%02X is busy\r\n",i<<1);
}
}
printf("scan end\r\n");

当然还可以用STLink等调试器快速查看变量的方法做。

uint8_t i=0,temp;
HAL_StatusTypeDef status;
for(i=0;i<127;i++)
{
status=HAL_I2C_Master_Transmit(&hi2c1,i<<1,0,0,200);
if(status==HAL_OK)
{
temp=i;
__NOP();
}
}