关于USB电流计的设计

设计目的

设计该电流计是为了以后调试板子的时候能在通电的,第一时间里知道流过板子的电流大小,确保当板子内部有短路时能够第一时间知道。

设计原理

该电路板所实现的功能是对电流和电压的实时监测,电压监测采用最简单的电阻串联分压,电流检测使用市面上流行的集成芯片INA226。

设计材料

经过原理分析得出大致所需材料,

单片机采用stm32f103c8t6,有点大材小用了;

单片机供电电源3.3v,使用HT7533稳压芯片;

两个分压电阻10k和1k;

电流监测芯片INA226;

电流监测电阻根据INA226的分压寄存器算出允许的最大电流根据实际需要,选择检测电阻0.01欧姆;

两个usb-A口;

显示使用I2C通信的OLED屏。

设计电路原理图

根据刚才分析的材料,配置外围电路;具体电路可以参考芯片手册;

设计PCB

这里有个地方需要注意:

这里检测电阻的阻值十分的小只有0.01欧姆,所以连接电阻的导线尽可能的粗一点和短一点,就是VOUT和VIN之间的导线尽可能的短,并且尽量不要打孔;(本人就因为之前的导线电阻问题,导线电阻经过测量达到了0.05欧姆,造成误差,可以在程序设计中补偿)。

程序编写

这里的current代表电流值由0.01和0.05电阻,由ina226电流检测的原理得知,ina226是将检测电阻两端的电压值进行处理,所以我们可以直接读取ina226寄存器的值再除以6,在实验中得知除以5也可以。

int main(void )
{
	uint16_t a[10];
	uint16_t sum=0;
	uint16_t CAL;
	uint16_t aver;
	uint16_t data;
	uint16_t shunt;
	uint16_t current;
	uint16_t power;
	uint8_t ACK,ACK1;
	uint16_t vol;
	uint8_t i;
	uint16_t temp1,temp2,temp3,temp4;
	OLED_Init();
	Delay_ms (100);
	AD_Init();
	
	ACK=INA226_WRITEBYTE(0x4127,0X00);
//	ACK1=INA226_WRITEBYTE(0X0A00,0X05);
	ACK1=INA226_WRITEBYTE(0X0D55 ,0X05);
	CAL=INA226_READBYTE(0X05);
//	ACK=INA226_WRITEBYTE(0x0A00,0X05);
//	data=INA226_READBYTE(0x05);
	shunt=INA226_READBYTE(0x01);
	current=INA226_READBYTE(0x04);
	power=INA226_READBYTE(0x03);
//	vol=Get_Value();
//	OLED_ShowNum(3,1, shunt , 8);
	OLED_ShowNum(4,1, CAL , 8);
	while(1)
	{
		
		data=INA226_READBYTE(0x05);
		shunt=INA226_READBYTE(0x01);
		current=(INA226_READBYTE(0x04))/5;
		power=INA226_READBYTE(0x03);
//		vol=Get_Value();
		
		
		Delay_ms (10);
		sum=0;
		for(i=0;i<10;i++)
		{
			a[i]=Get_Value();
			Delay_ms (5);
			sum=sum+a[i];
//			OLED_ShowNum(3,1, Get_Value() , 8);
//			OLED_ShowNum(1,1, sum , 8);
		}
		aver=sum/10;
//		OLED_ShowNum(2,1, aver , 8);
		vol=(aver*3300)/4096;
		OLED_ShowNum(1,1, vol , 8);
		OLED_ShowNum(2,1, current , 8);
		OLED_ShowNum(3,1, shunt , 8);//shuntµÄ·Ö±æÂÊÊÇ2.5uv
//		vol=aver*11*13*1000/4096;
//		temp1=vol/1000;
//		temp2=vol/100%10;
//		temp3=vol/10%100%10;
//		temp4=vol%10;
//		OLED_ShowNum(1,1, temp1 , 1);
//		OLED_ShowChar(1, 2, '.');
//		OLED_ShowNum(1,2, temp2 , 1);
//		OLED_ShowNum(1,3, temp3 , 1);
//		OLED_ShowNum(1, 4, temp4 , 1);
//		OLED_ShowString(1, 1,"hell0 world");
		
		
		
		
		
		
	}
		

具体的代码细节可以关注点赞收藏,之后私信我。

下一篇重点讲解ina226几个寄存器的用法
        
          
          

BOOM清单

No.QuantityCommentDesignatorFootprintValueManufacturer PartManufacturerSupplier PartSupplier
1410uFC1,C2,C3,C10C060310uF10uFSAMSUNG(三星)C15415LCSC
211uFC5C06031uF10uFSAMSUNG(三星)LCSC
330.1uFC6,C7,C11C06030.1uF10uFSAMSUNG(三星)LCSC
4222pFC8,C9C060322pF10uFSAMSUNG(三星)LCSC
51X5511FV-04-C70D30-1000H1HDR-TH_4P-P2.54-V-F-3X5511FV-04-C70D30-1000XKB Connectivity(中国星坤)C2684750LCSC
612.54-1*4P_JXP12.54-1*4P_TIGHT_JXC115245LCSC
710.01R2R25120.0125121WJ0101T4EUNI-ROYAL(厚声)LCSC
81100kΩR3R0603100kΩERJ3EKF1003VPANASONIC(松下)C189597LCSC
9310kΩR4,R5,R10R060310kΩSCR0603J10KVO(翔胜)C3017715LCSC
1044.7kΩR6,R7,R8,R9R06034.7kΩSCR0603J10KVO(翔胜)LCSC
111Key_SMD_6x6x6.5SW2SW-SMD_4P-L6.0-W6.0-P4.50-LS9.0-2
121STM32F103C8T6U1LQFP-48_L7.0-W7.0-P0.50-LS9.0-BLSTM32F103C8T6ST(意法半导体)C8734LCSC
131HT7533-3U2SOT-89_L4.5-W2.5-P1.50-LS4.2-BRHT7533-3HOLTEK(合泰/盛群)C66271LCSC
141INA226AIDGSRU3MSOP-10_L3.0-W3.0-P0.50-LS5.0-BLINA226AIDGSRTI(德州仪器)C49851LCSC
1512*p排针U42*p排针
161480370001USB1USB-A-TH_48037-0001480370001MOLEXC136455LCSC
171USB-302-TUSB2USB-A-TH_USB-302-TUSB-302-TSOFNG(硕方)C112456LCSC
1818MHzX2OSC-TH_L10.0-W4.5-P5.008MHzX49SD8MSD2SCYXC(扬兴晶振)C21263LCSC
  • 25
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
USB 2.0是一种通用串行总线接口标准,可用于将计算机与外部设备进行连接和通信。USB 2.0硬件设计涉及到几个关键方面。 首先,需要确定电路板上的USB接口连接方式。基本的设计要求是确保接口与主机和外部设备的兼容性,以保证数据传输的稳定性和可靠性。此外,还需要考虑电路连接的物理布局和布线,避免信号干扰和电磁干扰,确保高质量的信号传输。 其次,需要选择合适的USB控制器芯片。USB控制器芯片是连接主机和外部设备之间的桥梁,负责控制数据传输和处理。在设计时,应根据需要选择合适的控制器芯片型号和规格,以满足带宽要求和功能需求,并确保与其他系统组件的兼容性。 另外,还需要考虑电源供应和电源管理。USB接口可以通过总线供电,也可以通过外部电源供电。设计师需要确定所需的电源供应方式,并进行相应的设计。此外,还需要考虑电流管理和功耗优化,以确保系统的稳定运行和节能效果。 最后,USB 2.0硬件设计还需要进行测试和验证。设计师应该对接口进行功能测试、性能测试和兼容性测试,以确保系统的正常工作。同时,还应验证设计符合USB 2.0标准和相关规范,以确保产品的合规性和互操作性。 综上所述,USB 2.0硬件设计是一项综合性的任务,需要考虑接口连接、控制器选择、电源供应和电源管理、测试和验证等多个方面。通过合理的设计、优化和验证,可以实现高效、稳定和可靠的USB 2.0系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值