STM32F103中的5V容忍输入IO的伏安特性

STM32F103的5V容忍IO端口

 

01 5V容忍输入端口


一、前言

  刚才测试了STM32F030普通端口的电压电流的关系。  可以看到它不是5V容忍的输入端口。 随着电压超过3.7V, 开始有了比较大的倒灌电流。 下面测试一个 STM32F103中 5V 容忍IO端口的伏安特性。

G3M1733642028_1920_1080.MP4|_-3

二、测量结果

  制作电路板。  焊接之后, 进行测试。  给电路板下载简单的初始化程序。 将PB12设置为输入端口。  利用 DG1766提供逐步上升的电压。 分别测量端口的电压以及串联100欧姆上的电压, 进而得到输入电流与端口电压的关系。

G4M1733641913_1920_1080.MP4|_-4

  测量结果显示了该端口输入特性。  在电压小于8V的时候, 输入电流非常小。  随着电压逐步增加, 当超过9V的时候,  电流开始快速增加。
G4M1733641740_1920_1080.MP4|_-4

▲ 图1.2.1 PB12 输入状态下的伏安特性

▲ 图1.2.1 PB12 输入状态下的伏安特性

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY                     -- by Dr. ZhuoQing 2024-12-08
#
# Note:
#============================================================
from headm import *
from tsmodule.tsvisa        import *
dm3068open()
dn3068open()
vset = linspace(0, 10, 100)
r = 100
vin = []
vpin = []
idim = []
for v in vset:
    dh1766volt1(v)
    time.sleep(1.5)
    v2 = dm3068vdc()
    v1 = dn3068vdc()
    vin.append(v1)
    vpin.append(v2)
    i = (v1-v2)/r*1e3
    idim.append(i)
    tspsave('meas', vset=vset, vin=vin, vpin=vpin, idim=idim)
    printff(v, v1,v2,i)
dh1766volt1(0)
plt.plot(vpin, idim, lw=3)
plt.xlabel("Vpin(V)")
plt.ylabel("I(mA)")
plt.grid(True)
plt.tight_layout()
plt.show()
#------------------------------------------------------------
#        END OF FILE : TEST1.PY
#============================================================
vset=[0.0000,0.1010,0.2020,0.3030,0.4040,0.5051,0.6061,0.7071,0.8081,0.9091,1.0101,1.1111,1.2121,1.3131,1.4141,1.5152,1.6162,1.7172,1.8182,1.9192,2.0202,2.1212,2.2222,2.3232,2.4242,2.5253,2.6263,2.7273,2.8283,2.9293,3.0303,3.1313,3.2323,3.3333,3.4343,3.5354,3.6364,3.7374,3.8384,3.9394,4.0404,4.1414,4.2424,4.3434,4.4444,4.5455,4.6465,4.7475,4.8485,4.9495,5.0505,5.1515,5.2525,5.3535,5.4545,5.5556,5.6566,5.7576,5.8586,5.9596,6.0606,6.1616,6.2626,6.3636,6.4646,6.5657,6.6667,6.7677,6.8687,6.9697,7.0707,7.1717,7.2727,7.3737,7.4747,7.5758,7.6768,7.7778,7.8788,7.9798,8.0808,8.1818,8.2828,8.3838,8.4848,8.5859,8.6869,8.7879,8.8889,8.9899,9.0909,9.1919,9.2929,9.3939,9.4949,9.5960,9.6970,9.7980,9.8990,10.0000]
vin=[-0.0014,0.0984,0.1996,0.3008,0.4019,0.5031,0.6043,0.7045,0.8057,0.9068,1.0080,1.1091,1.2093,1.3106,1.4118,1.5130,1.6143,1.7153,1.8154,1.9166,2.0179,2.1191,2.2204,2.3206,2.4216,2.5229,2.6240,2.7252,2.8264,0.2696,0.2687,3.1289,3.2302,3.3315,3.4327,3.5328,3.6340,3.7350,3.8363,3.9375,4.0377,4.1389,4.2401,4.3413,4.4424,4.5436,4.6439,4.7450,4.8462,4.9474,5.0485,5.1487,5.2499,5.3511,5.4524,5.5536,5.6547,5.7548,5.8560,5.9572,6.0584,6.1596,6.2608,6.3611,6.4622,6.5634,6.6645,6.7656,6.8658,6.9671,7.0683,7.1695,7.2706,7.3718,7.4720,7.5733,7.6745,7.7756,7.8767,7.9769,8.0781,8.1793,8.2805,8.3818,8.4830,8.5831,8.6842,8.7853,8.8865,8.9877,9.0879,9.1890,9.2900,9.3910,9.4918,9.5926,9.6924,9.7930,9.8937,9.9945]
vpin=[-0.0014,0.0984,0.1996,0.3008,0.4019,0.5031,0.6043,0.7044,0.8057,0.9068,1.0081,1.1092,1.2094,1.3105,1.4118,1.5130,1.6143,1.7153,1.8155,1.9166,2.0178,2.1191,2.2204,2.3206,2.4216,2.5229,2.6240,2.7251,2.8263,0.2695,0.2687,3.1289,3.2301,3.3314,3.4326,3.5328,3.6340,3.7350,3.8362,3.9374,4.0376,4.1388,4.2401,4.3412,4.4424,4.5436,4.6438,4.7449,4.8461,4.9473,5.0485,5.1486,5.2499,5.3511,5.4523,5.5535,5.6547,5.7547,5.8559,5.9571,6.0582,6.1594,6.2607,6.3609,6.4621,6.5632,6.6643,6.7654,6.8656,6.9668,7.0680,7.1692,7.2703,7.3714,7.4716,7.5728,7.6739,7.7750,7.8762,7.9763,8.0773,8.1783,8.2794,8.3805,8.4814,8.5811,8.6816,8.7816,8.8810,8.9792,9.0737,9.1633,9.2418,9.3051,9.3556,9.3985,9.4360,9.4701,9.5011,9.5296]
idim=[0.0001,0.0002,0.0000,-0.0004,-0.0004,-0.0001,0.0003,0.0003,0.0003,-0.0002,-0.0004,-0.0004,-0.0001,0.0003,0.0004,0.0003,-0.0001,-0.0004,-0.0003,-0.0001,0.0003,0.0004,0.0003,-0.0000,-0.0000,0.0001,0.0006,0.0007,0.0008,0.0009,-0.0001,0.0003,0.0008,0.0008,0.0007,0.0002,-0.0000,0.0001,0.0006,0.0009,0.0008,0.0005,0.0002,0.0002,0.0002,0.0007,0.0009,0.0009,0.0010,0.0007,0.0003,0.0004,0.0004,0.0009,0.0011,0.0011,0.0007,0.0005,0.0007,0.0009,0.0014,0.0014,0.0015,0.0011,0.0013,0.0014,0.0020,0.0019,0.0027,0.0028,0.0030,0.0029,0.0030,0.0034,0.0042,0.0049,0.0054,0.0058,0.0058,0.0066,0.0076,0.0094,0.0112,0.0132,0.0158,0.0196,0.0262,0.0368,0.0547,0.0853,0.1423,0.2566,0.4823,0.8593,1.3620,1.9408,2.5643,3.2292,3.9266,4.6485]

  下面,  将输入端口修改成有上拉电阻模式,  重新测量输入端口的伏安特性。  结果显示, 当电压超过了 3.7V之后, 输入便有了大约 500微安的倒灌电流。 当输入电压超过8.5V, 输入电压变开始快速上升。

G4M1733642377_1920_1080.MP4|_-4

▲ 图1.2.2 设置有上拉电阻对应的伏安特性

▲ 图1.2.2 设置有上拉电阻对应的伏安特性

vset=[0.0000,0.1010,0.2020,0.3030,0.4040,0.5051,0.6061,0.7071,0.8081,0.9091,1.0101,1.1111,1.2121,1.3131,1.4141,1.5152,1.6162,1.7172,1.8182,1.9192,2.0202,2.1212,2.2222,2.3232,2.4242,2.5253,2.6263,2.7273,2.8283,2.9293,3.0303,3.1313,3.2323,3.3333,3.4343,3.5354,3.6364,3.7374,3.8384,3.9394,4.0404,4.1414,4.2424,4.3434,4.4444,4.5455,4.6465,4.7475,4.8485,4.9495,5.0505,5.1515,5.2525,5.3535,5.4545,5.5556,5.6566,5.7576,5.8586,5.9596,6.0606,6.1616,6.2626,6.3636,6.4646,6.5657,6.6667,6.7677,6.8687,6.9697,7.0707,7.1717,7.2727,7.3737,7.4747,7.5758,7.6768,7.7778,7.8788,7.9798,8.0808,8.1818,8.2828,8.3838,8.4848,8.5859,8.6869,8.7879,8.8889,8.9899,9.0909,9.1919,9.2929,9.3939,9.4949,9.5960,9.6970,9.7980,9.8990,10.0000]
vin=[0.0001,0.0984,0.1996,0.3007,0.4019,0.5032,0.6044,0.7045,0.8057,0.9068,1.0080,1.1092,1.2094,1.3107,1.4118,1.5130,1.6142,1.7152,1.8154,1.9167,2.0179,2.1191,2.2203,2.3205,2.4216,2.5229,2.6241,2.7252,2.8264,2.9265,3.0277,3.1289,3.2302,3.3314,3.4326,3.5329,3.6340,3.7350,3.8362,3.9374,4.0375,4.1388,4.2400,4.3412,4.4423,4.5434,4.6436,4.7447,4.8459,4.9472,5.0483,5.1485,5.2497,5.3509,5.4522,5.5534,5.6546,5.7546,5.8558,5.9569,6.0581,6.1593,6.2606,6.3608,6.4620,6.5632,6.6643,6.7654,6.8656,6.9669,7.0680,7.1692,7.2703,7.3715,7.4718,7.5730,7.6742,7.7752,7.8764,7.9765,8.0777,8.1788,8.2801,8.3813,8.4826,8.5827,8.6837,8.7847,8.8859,8.9870,9.0871,9.1881,9.2893,9.3903,9.4913,9.5922,9.6921,9.7929,9.8939,9.9948]
vpin=[0.0078,0.1058,0.2068,0.3077,0.4086,0.5096,0.6106,0.7105,0.8115,0.9123,1.0133,1.1142,1.2142,1.3152,1.4162,1.5172,1.6181,1.7189,1.8188,1.9198,2.0208,2.1218,2.2228,2.3227,2.4236,2.5246,2.6256,2.7265,2.8274,2.9273,3.0283,3.1292,3.2303,3.3312,3.4322,3.5322,3.6328,3.7323,3.8306,3.9281,4.0238,4.1200,4.2159,4.3113,4.4068,4.5025,4.5991,4.7000,4.8030,4.9052,5.0067,5.1071,5.2084,5.3096,5.4108,5.5120,5.6131,5.7131,5.8109,5.9118,6.0126,6.1134,6.2141,6.3138,6.4144,6.5147,6.6150,6.7152,6.8144,6.9147,7.0147,7.1147,7.2147,7.3107,7.4099,7.5096,7.6092,7.7086,7.8079,7.9061,8.0049,8.1037,8.2019,8.2995,8.3962,8.4908,8.5771,8.6677,8.7552,8.8383,8.9160,8.9891,9.0569,9.1193,9.1760,9.2280,9.2750,9.3189,9.3594,9.3973]
idim=[-0.0768,-0.0743,-0.0722,-0.0698,-0.0669,-0.0645,-0.0621,-0.0601,-0.0581,-0.0557,-0.0532,-0.0504,-0.0480,-0.0456,-0.0436,-0.0416,-0.0392,-0.0368,-0.0340,-0.0315,-0.0291,-0.0270,-0.0248,-0.0225,-0.0198,-0.0170,-0.0146,-0.0126,-0.0106,-0.0083,-0.0058,-0.0030,-0.0005,0.0018,0.0042,0.0065,0.0119,0.0278,0.0556,0.0928,0.1373,0.1877,0.2413,0.2988,0.3554,0.4089,0.4445,0.4469,0.4286,0.4193,0.4160,0.4144,0.4133,0.4128,0.4133,0.4134,0.4143,0.4151,0.4487,0.4510,0.4549,0.4595,0.4646,0.4703,0.4768,0.4843,0.4927,0.5019,0.5118,0.5222,0.5329,0.5443,0.5566,0.6081,0.6181,0.6335,0.6497,0.6661,0.6847,0.7048,0.7277,0.7518,0.7821,0.8184,0.8632,0.9195,1.0658,1.1703,1.3065,1.4867,1.7110,1.9901,2.3233,2.7104,3.1522,3.6416,4.1710,4.7404,5.3446,5.9758]

  下面,  将IO口设置为输出端口。  测量结果显示,  当端口电压小于3.3V的时候,   端口输出电流,  当端口超过3.3V之后, 电流变倒灌入端口。 这个过程大体上端口对外显示出一个线性内阻。 这个内阻大约为 20欧姆左右。  超过3.7V之后, 倒灌的电流变开始限流了,  在5V的时候, 倒灌电流超过了32mA。

G8M1733642977_1920_1080.MP4|_-8

▲ 图1.2.3 输出特性下的伏安特性

▲ 图1.2.3 输出特性下的伏安特性

vset=[0.0000,0.1010,0.2020,0.3030,0.4040,0.5051,0.6061,0.7071,0.8081,0.9091,1.0101,1.1111,1.2121,1.3131,1.4141,1.5152,1.6162,1.7172,1.8182,1.9192,2.0202,2.1212,2.2222,2.3232,2.4242,2.5253,2.6263,2.7273,2.8283,2.9293,3.0303,3.1313,3.2323,3.3333,3.4343,3.5354,3.6364,3.7374,3.8384,3.9394,4.0404,4.1414,4.2424,4.3434,4.4444,4.5455,4.6465,4.7475,4.8485,4.9495,5.0505,5.1515,5.2525,5.3535,5.4545,5.5556,5.6566,5.7576,5.8586,5.9596,6.0606,6.1616,6.2626,6.3636,6.4646,6.5657,6.6667,6.7677,6.8687,6.9697,7.0707,7.1717,7.2727,7.3737,7.4747,7.5758,7.6768,7.7778,7.8788,7.9798,8.0808,8.1818,8.2828,8.3838,8.4848,8.5859,8.6869,8.7879,8.8889,8.9899,9.0909,9.1919,9.2929,9.3939,9.4949,9.5960,9.6970,9.7980,9.8990,10.0000]
vin=[0.4823,0.4823,0.4822,0.4822,0.4822,0.5136,0.6144,0.7141,0.8149,0.9157,1.0166,1.1174,1.2173,1.3181,1.4189,1.5198,1.6206,1.7213,1.8211,1.9219,2.0228,2.1235,2.2244,2.3242,2.4249,2.5258,2.6266,2.7273,2.8282,2.9279,3.0288,3.1296,3.2305,3.3314,3.4322,3.5319,3.6327,3.7334,3.8342,3.9350,4.0348,4.1356,4.2364,4.3373,4.4381,4.5389,4.6387,4.7394,4.8402,4.9410,5.0418,5.1416,5.2424,5.3432,5.4440,5.5448,5.6455,5.7452,5.8460,5.9468,6.0477,6.1485,6.2493,6.3493,6.4504,6.5516,6.6527,6.7536,6.8536,6.9544,7.0552,7.1561,7.2570,7.3580,7.4582,7.5595,7.6607,7.7619,7.8632,7.9634,8.0646,8.1657,8.2668,8.3678,8.4688,8.5687,8.6697,8.7706,8.8716,8.9725,9.0723,9.1730,9.2738,9.3746,9.4752,9.5759,9.6756,9.7766,9.8780,9.9794]
vpin=[2.7594,2.7593,2.7592,2.7592,2.7592,2.7660,2.7877,2.8087,2.8297,2.8504,2.8709,2.8911,2.9110,2.9306,2.9502,2.9697,2.9890,3.0081,3.0270,3.0458,3.0645,3.0831,3.1015,3.1195,3.1374,3.1553,3.1730,3.1906,3.2080,3.2252,3.2424,3.2595,3.2766,3.2937,3.3106,3.3272,3.3441,3.3607,3.3774,3.3939,3.4101,3.4264,3.4366,3.4519,3.4672,3.4824,3.4974,3.5124,3.5276,3.5427,3.5579,3.5730,3.5883,3.6037,3.6194,3.6352,3.6515,3.6678,3.6845,3.7011,3.7187,3.7368,3.7556,3.7771,3.7953,3.8496,3.9432,4.0531,4.1590,4.2666,4.3803,4.4935,4.5659,4.6112,4.6377,4.6775,4.6875,4.7165,4.7468,4.7592,4.8158,4.8791,4.9482,5.0491,5.1225,5.1901,5.2526,5.3071,5.3489,5.3845,5.4375,5.4971,5.5686,5.6718,5.7749,5.8779,5.9891,6.0785,6.1008,6.0604]
idim=[-22.7708,-22.7704,-22.7698,-22.7700,-22.7704,-22.5245,-21.7328,-20.9464,-20.1482,-19.3476,-18.5437,-17.7373,-16.9370,-16.1253,-15.3132,-14.4989,-13.6834,-12.8680,-12.0582,-11.2392,-10.4178,-9.5953,-8.7704,-7.9527,-7.1249,-6.2949,-5.4642,-4.6324,-3.7985,-2.9722,-2.1359,-1.2990,-0.4609,0.3769,1.2153,2.0468,2.8868,3.7264,4.5686,5.4112,6.2469,7.0919,7.9986,8.8533,9.7084,10.5645,11.4126,12.2692,13.1258,13.9827,14.8385,15.6856,16.5410,17.3946,18.2464,19.0955,19.9407,20.7746,21.6154,22.4570,23.2898,24.1170,24.9375,25.7223,26.5508,27.0194,27.0944,27.0053,26.9462,26.8783,26.7497,26.6255,26.9105,27.4685,28.2049,28.8200,29.7316,30.4542,31.1635,32.0417,32.4875,32.8665,33.1857,33.1870,33.4633,33.7869,34.1711,34.6353,35.2267,35.8798,36.3473,36.7588,37.0524,37.0275,37.0030,36.9796,36.8658,36.9816,37.7727,39.1901]

 

  结 ※


  文测试了 STM32F103 中的5V容忍IO端口的特性。  可以看到, 在输入电压小于8V的时候, 的确输入电流非常小。  它是妥妥的 5V容忍输入端口。

G3M1733643112_1920_1080.MP4|_-3


■ 相关文献链接:

● 相关图表链接:

首先,需要澄清的是,编写一个完整的实验代码和电路设计是一个复杂的过程,通常需要根据具体的硬件配置和需求来设计。不过,我可以给出一个基本的框架和思路来帮助你开始这个项目。 ### 电路设计 对于伏安特性曲线的测量,通常需要一个电压源和一个电流检测电路。以下是简化的设计思路: 1. **电压源**:使用STM32F103ZET6的一个或多个PWM输出引脚来提供一个可调的电压源。可以使用一个低通滤波器(如RC滤波器)来将PWM信号转换成模拟电压。 2. **电流检测**:在电压源和待测器件之间串联一个精密电阻(称为采样电阻)。通过测量该电阻上的电压降,可以计算出通过器件的电流(根据欧姆定律,I = V/R)。 3. **模拟到数字转换(ADC)**:STM32F103ZET6内置了多个ADC通道,可以用来读取采样电阻两端的电压,从而计算出电流。 ### 软件设计 在MDK环境下,你需要编写程序来控制PWM输出,读取ADC值,并计算电流。以下是代码的基本结构: ```c #include "stm32f10x.h" // 初始化PWM相关的GPIO和TIM void PWM_Init() { // 配置GPIO为复用推挽模式 // 初始化TIM外设,设置PWM频率等 } // 初始化ADC相关的GPIO和ADC void ADC_Init() { // 配置GPIO为模拟输入 // 初始化ADC外设,设置适当的采样时间等 } // 读取ADC值 uint16_t Read_ADC_Value() { // 启动ADC转换 // 等待转换完成 // 读取并返回ADC转换结果 } // 设置PWM占空比 void Set_PWM_Duty_Cycle(uint8_t duty_cycle) { // 根据duty_cycle值调整PWM占空比 } int main(void) { uint16_t adc_value; float voltage, current; // 初始化硬件 PWM_Init(); ADC_Init(); // 设置初始占空比 Set_PWM_Duty_Cycle(50); // 举例:设置为50%占空比 while(1) { // 读取ADC值 adc_value = Read_ADC_Value(); // 转换ADC值为电压值(需要根据参考电压和分辨率调整公式) voltage = (float)adc_value * VREF / ADC_RESOLUTION; // 计算电流值(假设采样电阻值为R_SHUNT) current = voltage / R_SHUNT; // 更新伏安特性曲线显示(需要根据你的显示设备来编写代码) // 更新PWM占空比以改变电压值,测量多个点来绘制曲线 // Set_PWM_Duty_Cycle(新的占空比); } } ``` 在实际应用中,还需要考虑如何将这些测量值显示在伏安特性曲线上,这可能涉及到一个LCD显示屏或者通过USB连接的PC软件来显示数据。 ### 注意事项 - 确保正确配置STM32F103ZET6的时钟系统,为GPIO、TIM和ADC提供正确的时钟源。 - 根据实际使用的ADC参考电压和分辨率调整电压和电流的计算公式。 - 实际的PWM和ADC初始化函数将更加复杂,需要根据数据手册正确配置参数。 - 在设计电路时,要确保所有信号都稳定,并考虑隔离和保护措施以防止损坏微控制器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卓晴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值