==项目说明== *上海潓美医疗主要生产氢氧雾化机的企业。潓美平板电脑为氢氧雾化机的操作和控制设备,提供安全、可靠、人性化的用户体验。 ==硬件部分== *主要包括三块电路板。 ===控制主板=== *基于AM3352为主控芯片,AM3352主要处理界面,操作控制,网络,WIFI、蓝牙以及语音等操作;STM32作为协处理器,主要用于数据采集、按键采集等操作。 ===转接板=== *主要用于将主板上的接口转接到底板。 ===底板=== *主要将集成接口单独引出 ==软件部分== *主要有AM3352+STM32两部分代码 ===AM3352=== ===STM32=== ==AM3352、STM32通讯协议== *通讯数据简单说明:在开机后,AM3352在无动作操作情况时,每30秒发送心跳包到STM32,证明AM3352正常待机状态,STM32无需应答; *在工作状态下,每1秒STM32将采集到的AD数据等数据发送给AM3352,AM3352无需应答; *在工作状态下,AM3352发送控制命令数据到STM32,STM32需要有应答,未收到应答需要重新发送; ====物理层协议==== *通过串口通讯,9600波特率,校验位无,数据位8位,停止位1位 ====应用层协议==== *起始位:0xA5 一个字节 *数据位: *校验位:数据位异或校验。一个字节 *结束位:0x5A 一个字节。 =====数据位详细描述===== *数据方向:0x01表示335x发送到STM32,0x02表示STM32发送到335X *数据内容: ======335X发送到STM32====== *0xXX 一个字节 雾化量控制 0x00 标识雾化量最小,0x64(100)标识雾化量最大 *0xXX 一个字节 LED效果灯控制 0x00 表示效果灯关闭,0x01表示效果灯开启 *0xXX 一个字节 主机开启关闭标识 0x00 表示335X主机正常工作,0x01表示335X 主机将关闭。STM32收到关闭命令后30秒后关闭CH2电源 *0xXX 一个字节 控制新增加水泵标识 0x00 标识关闭新增加的水泵,0x01打开新增加水泵 *0xXX 一个字节 控制新增加水泵标识 0x00 标识关闭新增加的水泵,0x01打开新增加水泵 *0xXX 一个字节 控制新增电磁阀A标识 0x00 标识关闭新增电磁阀A,0x01打开新增电磁阀A *0xXX 一个字节 控制新增电磁阀B标识 0x00 标识关闭新增电磁阀B,0x01打开新增电磁阀B *0xXX 一个字节 控制继电器开关A标识 0x00 标识关闭继电器开关A,0x01打开继电器开关A *0xXX 一个字节 控制继电器开关B标识 0x00 标识关闭继电器开关B,0x01打开继电器开关B *0xXX 一个字节 用于调节4.3寸屏电源风扇控制PWM,0 到 100,对应PWM 的0% 到 100%,'''4.3寸屏新增''',在PWM等于0,STM32认为电源风扇关闭,大于0时电源风扇开启,可以检测电源风扇是否正常,以及测试转速等。 ======STM32 发送到335X====== *0xXX 0xXX 2个字节 电源CH1路电压 *0xXX 0xXX 2个字节 水位计温度 *0xXX 0xXX 2个字节 CH1电流 *0xXX 0xXX 2个字节 雾化器温度 *0xXX 0xXX 2个字节 电源CH2路电压 *0xXX 0xXX 2个字节 氢气浓度 *0xXX 1个字节 浮球水位检测标识,0x00表示水位正常,0x01表示水位低。'''注意:此位在7机器上表示:湿化杯水位标识,0x00表示水位正常,0x01表示水位低''' *0xXX 1个字节 接地检测标识,0x00表示接地正常,0x01表示接地错误 *0xXX 1个字节 电源风扇故障标识,0x02 表示 风扇故障,0x01表示风扇OK *0xXX 0xXX 2个字节 表示风扇转速高位在前,低位在后,只在风扇OK情况下,此位才有效 =====说明===== *STM32与335X之间通讯1秒通讯一次,无需应答。 ==AM3352 GPIO对应动作说明== {| class="wikitable sortable" |- ! GPIO !! I/O !! Function |- |GPIO1_17 ||输入||雾化器水位检测,0时水位正常,1时水位低 |- |GPIO1_16 ||输出||控制雾化器工作与否,0时雾化器工作,1时雾化器停止工作 |- |GPIO1_18 ||输出||散热器风扇控制,0时风扇工作,1是风扇停止 |- |GPIO1_24 ||输出||冷凝器风扇控制,0时风扇工作,1是风扇停止 |- |GPIO0_20 ||输出||电源风扇控制,0时风扇工作,1是风扇停止 |- |GPIO1_22 ||输入||水位计水位低检测,0时表示水位低,1时表示水位不低 |- |GPIO1_21 ||输入||水位计水位高检测,0时表示水位高,1时表示水位不高 |- |GPIO1_23 ||输入||水杯检测,0时表示水杯在,1时表示水杯不在(目前未用) |- |GPIO3_16 ||输入||用于氢气检测,'''备用''' |- |GPIO1_25 ||输出||控制循环水泵,1时水泵开启,0时水泵关闭 |- |GPIO1_26 ||输出||控制真空泵,1时泵开启,0时泵关闭 |- |GPIO3_19 ||输出||控制湿化杯电磁阀,1时电磁阀开启,0时电磁阀关闭 |- |GPIO2_1 ||输入||检测CH1电源输出,0时表示电源输出正常,1是表示电源输出关闭或异常 |- |GPIO1_19 ||输入||用于控制CH1电源输出换向,输出0时,输出极性默认,输出为1时,输出极性变化 |- |GPIO1_20 ||输出||用于控制CH1电源输出,输出0时,CH1输出关闭,输出1时,CH1输出打开 |- |GPIO3_14 ||输入||用于检测电源温度。输入为0时,表示电源温度正常;输入为1时,表示电源温度过高。需要记录温度过高以及温度过高的时间 |- |GPIO1_27 ||输出||控制功放静音,为高时,使能功放输出,为0时功放静音 |} * am335x gpio linux 控制 参考脚本: https://gist.github.com/c2h2/a540df4cacbd15de0db4 ==AM3352 IIC 触摸屏接口说明== *IIC2控制触摸屏,其中 GPIO0_13 IIC_SCL, GPIO0_12 IIC_SDA, 触摸屏 复位 GPIO3_20,触摸屏中断 GPIO3_21 ==AM3352 SPI 控制电阻输出说明接口说明== *SPI0 控制 AD8400ARZ10 调整电阻值,调整电压控制CH1输出电流,SPI0_CS,GPIO0_5,SPI0_CLK GPIO0_2,SPI0_MISO GPIO0_4,SPI0_MOSI GPIO0_3 ==AD数据说明== *水位计电阻计算公式:(10 + R)/10 = 4096 / A,其中R为水位计热敏电阻阻值,A为水位计温度AD值,通过A值求出电阻值R,通过水位计电阻表转化得到温度值 *雾化器电阻计算公式:(10 + R)/10 = 4096 / A,其中R为水位计热敏电阻阻值,A为雾化器温度AD值,通过A值求出电阻值R,通过表雾化器电阻转化得到温度值 ==AM3352 通过UART1串口 与 STM32 通讯== ==AM3352 通过 SPI 口调节输出电压控制电解量== *在0V ~ 5V的电压输入下,恒流工作点可以在28A ~ 40.8A之间线性变化。SPI接口输出0,电压输出5V,SPI输出255,电压输出0V,之间线性变化。 ==潓美4.3寸平板电脑电源控制== ===潓美医疗(低浓度) 192W开关电源 控制说明=== *CH1电压(电解池电压,3.3V)输出控制:AM335X GPIO1_20高电平,CH1输出,GPIO1_20低电平,CH1输出关闭; *CH1输出电流调节:SPI输出电压控制,在0V ~ 5V的电压输入下,恒流工作点可以在? ~ 40A之间线性变化; *CH1电流检测:I = V*40/3,V / 25 = v / 15,v / 3.3 = A / 4096,A 为AD 值 *CH1电压检测::V / 11 = v / 10,V位CH1 电压值,v / 3.3 = A / 4096,A 为AD 值 *CH1输出电压OK检测:GPIO2_1高电平,CH1电压没有输出,GPIO2_1低电平,CH1电压输出建立,在输入AC掉电之后,CH1电压掉出调整率之前,GPIO2_1信号应由低转高。此信号由低转高到CH1电压低于调整率之间的时间间隔不小于5ms *CH2输出控制:STM32 PB1脚控制,高电平CH2输出,低电平CH2关闭 *电源过温报警检测:温度正常,GPIO3_14为低电平,过温时,GPIO3_14为高电平 ===硬件测试=== ==硬件调试记录== *2016-03-12 NT1608A1小板加7812,加改线路。 *2016-03-29 在进入“用户”界面后,触摸屏卡屏无反应,排阻RN103脚一直输出中断信号,在该脚(靠近触摸屏一侧)加上拉电阻以后不再卡。