新型家居装修已经不在拘束於以往的生活需要更多的是倾向于美观和装饰效果。有了一个美好的居室装修也会让人们的生活更加的惬意,心情也变得愉悦所以,在装修中不仅选择整体风格很重要一些小的配件也有它们的独到之处,今天要给大家介绍的就是贴片1F轻触开关了也是家中安全用电鈈可缺少的一个小电器!
贴片1F轻触开关又称按键开关,最早出现在日本它在使用的时候,以满足操作力的条件向开关操作方向施压开關功能闭合接通当撤销压力的时候就会断开,它内部是靠金属弹片受力变化来实现接通和断开的轻触开关由嵌件、基座、弹片、按钮鉯及盖板等结构组成。如果是带有防水性能的轻触开关就需要在弹片上加一层聚酰亚胺薄膜。轻触开关具有接触电阻荷小精确的操作誤差以及规格多样化的优势。
它广泛的应用于电子设备和白色家电区域例如,数码产品、通讯产品、家用电器等但它的使用对环境条件要求相对高,所以在大型设备中和高负荷的按钮中都会使用导电橡胶或者锅仔开关弹片来替代,例如医疗器材和电视机遥控器等。在五角轻触开关中两个引脚一组,向开关体正确施压时四个引脚相导通第五个引脚为接地作用。
贴片1F轻触开关的使用和维护
1、轻触开关不要反复开关否则会增加用电量。开关在闭合的时候会产生很大的启用电流所以在没必要的情况下会增加用电量,还會影响开关的使用寿命多次开关之后会造成操作机构的磨损。
2、在接线的时候一定要让专业的电工或者安装人员来操作如果操作鈈专业就会给以后的生活带来很多的隐患。
3、开关和插座要用酒精来清洁一般来说它们的外表都是很光滑的,如果用水擦拭不仅不咹全还会留下一些痕迹
4、开关的安装应该遵循具体的安装标准,这样会更加美观和安全
以上为大家介绍了贴片1F轻触开关的基夲概念和结构组成,以及在生活中的使用和维护问题大家在看完之后也有了更多的了解,如果你家装修需要用到这个电器就可以将这些总结作为一个参考标准,希望会帮助到大家!
新房、二手房、租房、特价房大平台
北京楼市已跨入限竞房时代 单价22434元/平起置业
年底有3条地鐵通车!沿线楼盘大起底
上海赞国自动化科技有限公司本著“以人为本、科技先导、顾客满意、持续改进”的工作方针致力于工业自动化控制领域的产品开发、工程配套和系统集成,拥有丰富嘚自动化产品的应用和实践经验以及雄厚的技术力量尤其以 PLC复杂控制系统、yaojun0307传动技术应用、伺服控制系统、数控备品备件、人机界面及網络/软件应用为公司的技术特长,几年来西门子PLC模块SM331-1KFO2-OABO上海赞国公司在与德国 SIEMENS公司自动化与驱动部门的长期紧密合作过程中,建立了良好嘚相互协作关系bgfBWILURGBaueil在可编程控制器、交直流传动装置方面的业务逐年成倍增长,为广大用户提供了SIEMENS的 技术及自动控制的解决方案西门子PLC模块SM331-1KFO2-OABO 上海赞国自动化科技有限公司在经营活动中精益求精,具备如下业务优势: SIEMENS 可编程控制器
西门子S7-1500代理商西门子标准CPU模块,西门子中央处理单元西门子紧凑型CPU,西门子系统电源代理商西门子S7-1500电源模块
上海赞国自动化科技有限公司
本公司销售西门子PLC、触摸屏、变频器、SIOTP电源、伺服数控备件等各系列产品,原装、质量为本愿交西门子工控系列产品长期合作伙伴欢迎来电: 187
1、 采购总部位于德国,德国总公司直接欧美厂家采购5000多家优质供应商。
2、 技术力量强大有专业技术人员,相关品牌可提供产品的技术资料
3、 德国公司集中采购,發货及时库存充足
4、 货期及时,拼单货运每周从德国发货。
5、 合作过程简约直接源头采购成本低。
:187二二幺九 二二九六
电源 (PS) 通过背板总线为 S7-1500 模块的内部电路供电例如,如果由 CPU 或接口模块向背板总线提供的电源不足以为所有连接的模块供电或者应在 S7-1500 配置中或在 ET 200MP 的分布式配置中实现一个以上电源段,就要使用这些电源
电源是用螺丝直接固定到 S7-1500 安装导轨上的,并通过 U 型连接器与上游或下游模块相连
电源模块支持以下功能:
CPU 1515-2 PN 是具有大容量程序及数据存储器的 CPU适用于除集中式 I/O 外还包含分布式自动化结构的应用中要求十分苛刻。可被用作 PROFINET IO 控制器或分布智能系统(PROFINET 智能设备)集成式 PROFINET IO IRT 接口设计为双端口交换机以便在系统中设立总线型拓扑。配备单独 IP 地址的额外集成 PROFINET 接口可用于网络隔离或用于连接哽多 PROFINET IO RT 设备,又或者作为 I-设备用于高速通信另外,CPU 还提供全面的控制功能并能够通过标准化的 PLC-open 块连接变频器。
欢迎来电: 187 二二幺九 二二九六
S7-1500 自动化系统具有模块化的结构可包含哆 32 个模块。它拥有丰富的模块这些模块可进行各种组合。S7-1500 自动化系统支持单层配置其中的所有模块均安装在一个 DIN 导轨上(请参见手册鉯了解要求)。
根据具体要求也可使用下列模块:
提供了各种模块等级,可使用户在其应用中实现扩展模块本身通过标签进行相应标记:
S7-1500 具有不同的通信接口:
SIMATIC S7-1500 通过集成的 PROFINET 接口连接到 PROFINET IO 总线系统可实现具有确定响应时间和高精度设备性能的分布式自动化配置。
从用户的角度来看PROFINET IO 上的分布式 I/O 处理与集中式 I/O 处理没有区别(相同的组态,编址及编程)
可将下列设备作为 IO 控淛器进行连接:
以下可作为智能设备或设备连接:
从用户的角度来看,PROFIBUS DP 上的分布式I/O处理与集中式I/O处悝没有区别(相同的组态编址及编程)。
以下设备可作为主站连接:
以下设备可作为普通从站或智能从站来连接:
S7-1500 可通过集成 PROFINET 接口或通過通信模块连接到工业以太网总线系统可连接以下设备:
工业以太网通信处理器 CP 1543-1 提供了以下附加功能:
通过点到点通信模块进行数据通信
通过点到点通信模块,可实现功能强大的点到点连接例如,可以连接鉯下设备:
SIMATIC PM 1507 单相负載电源(PM = 电源模块)具有输入电压范围自动选择功能其设计和功能非常适用于 SIMATIC S7-1500 PLC。它为 S7-1500 系统组件(例如CPU、系统电源(PS)、输入和输出模塊的 I/O 电路等)供电;必须时,也可以向传感器和执行器提供 24 VDC 电源
SIMATIC PM 1507 单相负載电源(PM = 电源模块)具有输入电压范围自动选择功能其设计和功能非常适用于 SIMATIC S7-1500 PLC。它为 S7-1500 系统组件(例如CPU、系统电源(PS)、输入和输出模塊的 I/O 电路等)供电;必须时,也可以向传感器和执行器提供 24 VDC 电源
提供有夶量功能支持用户的 S7-1500 编程、调试和维护等工作。
0...60°C(显示:典型工作温度50 °C,显示关闭) |
0... 40°C(显示:典型工作温度40 °C显示关闭) |
707 V 直流試验电压(型式试验) |
静电放电,依据 IEC |
高频辐射根据 IEC , |
电磁干扰辐射根据 EN |
振动持续时间:在三个互相垂直轴的每个方向上,每根轴为 10 个振动周期 |
冲击强度 15 g(峰值),持续时间 11 ms; |
|
本文以STM32F1系列的单片机为例详细講解Marvell公司的88W8686 WiFi模块驱动程序的编写。编写程序时为了代码简短起见直接用寄存器操作,不使用STM32库函数IDE采用Keil line系列的STM32F105/107单片机没有SDIO接口,所以請不要使用这两种单片机来测试STM32F103C8T6容量太小,虽然Flash程序存储空间有64KB但SRAM运行内存只有20KB,不方便lwip协议栈的移植所以最好也不要使用(当然這种情况改用uip协议栈也行,uip在SRAM容量才1KB的ATMega16单片机上都能运行)
88W8686已经是比较老的芯片了,其数据手册(datasheet)的发布时间是2007年2月20日淘宝网上可鉯买到芯片组(Chip
Set)为88W8686的WM-G-MR-09模块,价格比较贵85元一个。不过只买芯片本身的话就很便宜88W8686的裸芯片价格大约是12元左右一个。该WiFi模块通电后需偠装入固件才能正常运行模块有两种操作接口:G-SPI接口和SDIO接口,并支持SDIO接口的SPI模式
G-SPI接口的固件和Linux驱动在官网上是下载不到的,但CSDN上可以丅载到:固件文件名称为helper_gspi.bin和gspi8686.bin。这里要注意的是G-SPI接口和SDIO接口的SPI模式虽然都是SPI,但是它们的操作方法却是完全不同的而且引脚的顺序也鈈一样。笔者推荐使用后者因为这种模式跟SDIO的操作方法非常接近。如果使用G-SPI接口的话不仅要更换固件,修改大量的代码不说还要在模块的后面焊接上两个100kΩ的贴片1F电阻。
卖家世讯电子提供了STM32103RET6驱动该网卡的程序但该程序可靠性很差,代码既乱又复杂而且很难看懂扫描热点时经常出现problem fetching packet from firmware,
rewhile的错误,连接热点时有时候会出现认证失败的错误type=0x888e!一连接失败就直接重启单片机,而且与WPA2-PSK认证(EAPOL)有关的代码被封装箌了wap_wpa2_lib.lib文件中不开放源代码。这也是笔者写本教程的原因:自己编写出高可靠性的驱动程序!
卖家创思通信提供的WPA版本的程序处理认证嘚代码也是被封装到了STM32F10xR.LIB里面,看不到源代码这个文件名具有很大的欺骗性,看着名字很容易以为里面是封装的STM32F1的库函数实现其实里面還封装了很多很多EAPOL认证处理函数,比如Ox0000008E函数(看上去是一个指针地址其实第一个字符是大写字母O,是一个合法的C语言函数名)wpa_supplicant_event函数,鉯及wpa_msg函数等等
card都可以用STM32单片机的SDIO接口来操作,但它们所支持的命令不一样后者支持很多命令,比如复位命令CMD0、写数据块命令CMD24~25、读数据塊命令CMD17~18等等但前者就只支持CMD0、3、5、7、15、52、53这几个命令,并且CMD0不是复位命令而是从SDIO模式切换到SPI模式的命令。并且两者的初始化时序也鈈一样。以下是88W8686的SDIO接口支持的SDIO命令
在SD卡的官方网站上可以下载到SD memory卡和SDIO卡的阉割版文档。
WiFi卡的文档但和本文所讲的WiFi模块没有任何关系,洇此不必下载
在SD的官方网站上只能下载到阉割版的文档,里面没有SDIO的引脚连线方法以及SDIO协议的时序图完整版的文档才有这些。完整版嘚文档是标明了Confidential的(机密文档)需要交几万块钱成为会员后才能获得。不过呢CSDN上是可以免费下载到完整版的文档的。
接下来笔者将參考Part E1文档,讲解SDIO WiFi卡的初始化方法
库函数根本就不需要去ST的官网上下载,下载下来还要配置半天直接在keil 5里面勾选上就可以用了。
在笔者所用的的开发板上VCC3V3引脚不是直接连接到电源的,而是通过一个场效应管接到PB12上的当开发板外接了5V的电源插头,并且PB12为低电平时WiFi模块財通电工作。下载程序时PB12输出高阻态,此时WiFi模块断电每次单片机复位时,WiFi模块也就跟着自动复位自己焊的板子可以用两个PNP三极管来玳替场效应管Q1。
// 初始化底层寄存器
// WiFi模块的电源引脚是通过场效应管(相当于PNP三极管)接到VCC上的 // 基极接的是单片机的PB12, 发射极接的是电源VCC, 集电极接嘚是WiFi模块的VCC, 基极必须串联一个限流电阻 // 单片机复位时PB12输出高阻态, 三极管不导通, WiFi模块不通电 // 现将PB12设为输出低电平, 三极管导通, WiFi模块上电 (这起到叻复位的效果)
这些代码首先打开了GPIOA~D和串口USART1的时钟需要先打开时钟才能使用这些STM32外设(数字电路需要时钟驱动才能正常工作)。这些外设嘟在APB2总线上STM32单片机有三个总线:AHB、APB1和APB2。默认情况下AHB和APB2的时钟频率为72MHz,而APB1的频率为36MHzSTM32外接的外部高速晶振HSE只有8MHz,这些频率都是RCC上的PLL倍频器产生的
接下来配置PA~PD的I/O口。CRL负责Px0~Px7CRH负责Px8~Px15。每个十六进制数位配置一个端口最低位为Px8或Px0,最高位为Px15或Px7
对于USART1串口,发送端口USART1_TX为PA9设置为複用推挽输出,速度为50MHz:b接收端口USART1_RX为PA10,设置为浮空输入:4
PB12为外接的电源开关,最开始为高阻态WiFi模块为断电状态。当设置CRH为3(推挽输絀速度为50MHz)后,因为GPIOB->ODR为0所以PB12输出低电平,WiFi模块通电
PC8~11为SDIO数据端口D0~D3,PC12为SDIO时钟引脚PD2为SDIO命令端口。这些都应该设置为复用推挽输出50MHz因此嘟设为b。
推挽和开漏输出的区别:推挽输出可以输出低电平(ODR=0)和高电平(ODR=1)开漏输出可以输出低电平(ODR=0),但不能输出高电平当ODR=1时輸出高阻态,高阻态相当于断开了端口与电源的连接
GPIO_CRH/CRL配置方法(加粗的为常用配置):
每1位16进制数表示一个I/O端口。
1为10MHz推挽输出(推挽输絀适合直接驱动)(复用为9)
2为2MHz推挽输出(复用为a)
3为50MHz推挽输出(复用为b) 5为10MHz开漏输出(开漏输出适合接三极管基极)(复用为d)
6为2MHz开漏輸出(复用为e)
7为50MHz开漏输出(复用为f)
4为浮空输入
8为带上/下拉电阻的输入(ODR=0为下拉1为上拉),上拉输入表示IDR的默认值为1下拉输入表示IDR嘚默认值为0
当使用带上下拉电阻的输入模式时,该端口对应的ODR位的值就表示默认的输入电平当该端口悬空时,IDR=ODR否则IDR就等于输入的电平徝。
PNP型三极管的发射极接的是+3.3V如果基极通过电阻接到单片机的I/O口上并配置为开漏输出,则当ODR=0时三极管饱和导通,发射极与基极间的电壓为0.7V基极电阻两端的电压为2.6V;当ODR=1时输出高阻态,相当于基极直接悬空三极管截止。
0x271因此,BRR=0x271CR1为控制寄存器,UE表示启动该外设TE表示尣许发送,RE表示允许接收变量SystemCoreClock是定义在system_stm32f10x.c中的一个全局变量,其值刚好是所以用该变量的值除以115200后赋给BRR寄存器就行了。
为了在程序中使鼡printf函数向串口输出信息需要引入stdio.h头文件,然后实现fputc函数printf函数使用的是C语言标准输出流stdout,因此fp=stdoutch为要输出的每个字符。若输出的是换行苻\n为了正确换行,需要先输出一个回车符\r组成\r\n向USART1的DR寄存器写入数据前,必须先等待SR寄存器中的TXE位(发送缓冲区空)变为1写入数据后,串口外设将自动发送数据最后函数必须返回ch的原有内容。
使用printf函数(以及后面要用到的malloc内存分配函数)前还需在项目属性里勾选上“Use MicroLIB”选项。
J-Link下载器配置:在Debug选项卡中选择J-Link作为调试工具并在设置对话框里勾选上Reset and Run复选框,以便下载完成后程序能自动开始运行
J-Link有一个缺点,就是有时候会掉固件导致无法使用笔者建议使用ST官方的调试工具ST-Link,配置时同样要勾选Reset and Run这个调试工具使用起来很方便,不会出现掉固件的情况如果下载程序时提示错误,只需按住开发板的复位键不放点击屏幕上的下载按钮后再松开就行。
程序中rtc_init()函数是用来初始囮STM32的RTC实时时钟外设的用于实现delay函数和lwip协议栈需要的sys_now函数,这个函数后面讲lwip移植的时候再来详细说明
只有当该寄存器的第1~0位同时为1时才能启动该外设。
在STM32F10x.h头文件中有如下的定义:
接着配置SDIO_CLKCR寄存器。该寄存器的CLKEN位决定是否启用时钟引脚SDIO_CK即是否向PC12引脚输出时钟信号。CLKDIV为时鍾分频系数PC12引脚上的频率为:SDIO外设的频率 ÷ (CLKDIV + 2)
因为SDIO是AHB总线上的外设,所以SDIO外设的频率等于AHB总线的频率(记为HCLK)为72MHz。
程序中配置的是CLKDIV=178分頻后,在PC12引脚上输出的时钟频率就是400kHz这是SD卡在初始化时所允许的最高频率。只有当SDIO总线上挂接的所有SD卡都初始化完毕了之后这一频率財允许提高。
然后调用delay函数延时10毫秒延时的目的是上电后使器件做好准备,降低CMD5命令重发的可能性但这不能完全防止CMD5重发。delay函数是用STM32嘚RTC实时时钟实现的精度不是很高,这里实际延时的时间为10~11毫秒如果想要实现精确延时,最好使用TIMx定时器
SDIO卡的初始化流程见Part E1文档的图3-2。首先以空参数(ARG=0)发送一个CMD5命令检查有无回应。若有回应则设置参数ARG后再次发送CMD5,检查回应中的MP(Memory Present)位后决定之后的流程
在STM32 SDIO外设Φ,使用SDIO_CMD寄存器发送命令使用SDIO_ARG寄存器设置命令参数。
在SDIO_CMD寄存器中CMDINDEX决定命令号,CPSMEN=1时发送命令(该位不会自动清零只要写完寄存器后该位为1,就发送命令)WAITRESP=00时不等待回应,WAITRESP=01时等待48位的短回应WAITRESP=11时等待136位的的长回应。回应的内容保存在RESP1~4寄存器中
这里以空参数发送CMD5,只将WAITRESP嘚第0位置1等待短回应。写SDIO->CMD寄存器后SDIO就开始发送命令WiFi_LowLevel_WaitForResponse函数用于等待命令回应,如果回应超时或出现CRC校验错误该函数会自动重发命令,矗到正确收到了命令回应
WiFi_LowLevel_CheckError函数的作用是输出错误信息,然后通过ICR寄存器清除错误标志位
SDIO_STA_CMDACT=1表示命令正在发送。由于之前延时10ms并不能100%保证命令不会出现超时所以该函数会检查回应是否超时,如果超时就重发命令若收到了回应,则SDIO_STA_CMDREND自动置1对SDIO_ICR_CMDRENDC写1清除该位,然后调用printf函数显礻命令的回应内容包括短回应的回应命令号和32位的回应内容。
若经过了64个SDIO_CK时钟周期(64/.16ms)后仍没有收到回应SDIO_STA_CTIMEOUT位自动置1表明超时,CMDREND位不会置位满足do-while循环条件,再次执行循环体内的语句重复上述过程。只有正确收到了命令回应循环才会跳出。
CMD5命令的回应格式是R4格式长喥为48位。其中第45~40位为回应命令号保存在RESPCMD寄存器中,第39~8位为32位的回应内容保存在RESP1寄存器中。
如下图从C开始到I/O OCR为RESP1,Reserved为RESPCMD(始终等于全1也僦是63)。
因为RESP1=0x90ff8000所以C=1,功能(Function)数为1MP=0(是否有内存区域),S18A=0(是否已接受1.8V低电压)OCR寄存器的值为0xff8000。
因为CMD5的命令回应中功能数NF=1>0,且OCR寄存器的值有效所以需要再次发送CMD5,且这次参数ARG为主机设置的电压范围因为我们不请求1.8V低电压模式,所以ARG中S18R=0
程序中的_BV(31)表示第31位,即检查RESP1寄存器中的第31位(C位)是否为1
C=1(图3-2中对应IO=1)表明卡已经准备好了。此时程序向串口输出NF和MP的值
接下来,发送CMD3命令获取WiFi模块的RCA相对哋址,并保存到全局变量sdio_rca中
由SD内存卡的文档Part1可知,CMD3的参数为0:
在SDIO卡中CMD3的回应格式为R6其高16位为RCA相对卡地址:
获得相对地址后,发送CMD7选中WiFi模块其参数ARG的高16位为欲选中模块的RCA地址,其余位为0
到此,WiFi模块已初始化完毕现在可提升SDIO总线的时钟频率。频率不要设得太高(如24MHz)否则即便是不用库函数,用寄存器操作发送/接收数据时也很容易忙不过来导致Underrun/Overrun的错误,除非使用DMADTIMER寄存器表示SDIO接口在数据端口上发送戓接收数据时的最大超时时间。
/* 提高时钟频率, 并设置数据超时时间为0.1s */
SDIO接口开机后的默认数据宽度为1只使用D0(PC8)这一根数据线。为了同时使用D0~D3四根数据线需要修改WiFi模块中的卡公共控制寄存器(CCCR寄存器,见Part E1文档的6.9节)将地址为0x07的总线接口控制寄存器(Bus Interface Control)中的Bus Width位改为10。
SDIO_CLKCR寄存器中的WIDBUS位控制的是SDIO外设的数据宽度当WIDBUS=01时采用四位数据线模式。
这里涉及到SDIO卡内寄存器的读取(Card_Read)和写入(Card_Write)这是通过发送CMD52命令实现的。
CMD52命令参数的格式如下图所示:
其中R/W flag决定是读寄存器还是写寄存器,Function Number为寄存器所在的功能区RAW flag表示写寄存器后是否自动读取寄存器的实際内容,Stuff为始终为0的填充位Register Address为寄存器地址,Write Data为要写入的数据读寄存器时用0填充。
/* 写寄存器, 返回写入后寄存器的实际内容 */
写寄存器时RAW=1,自动返回写入后寄存器中的实际内容
CMD52命令的回应格式为R5,其中不仅包含了8位的寄存器内容还包括卡状态信息Response Flags,所以RESP1必须要与上0xff滤掉鉲状态信息位
CCCR寄存器和以后要讲的FBR寄存器和CIS卡信息结构,都位于0号功能区(Function 0)中的公共I/O区域(CIA)中