0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于CW32L083的线控器方案设计

孟子一 来源:孟子一 作者:孟子一 2023-06-25 14:23 次阅读

基于CW32L083的线控器方案设计

前言

线控器,是中央空调的“指挥家”。是空调运行的第一步,也是日常调节的中枢,通过线控器指令的传导,空调就会做出相应的服务。随着空调普及率的提高,空调线控器及遥控器的产量不断上升。又由于单片机的集成度高,功能强,通用性好,且其体积小,重量轻,能耗低,可靠性高,抗干扰能力强等特点,所以大部分空调遥控器和线控器都采用单片机作为主控制器。

芯源推出的CW32系列产品已全面实现 -40℃ ~ 105℃超宽温度范围和 1.65V~5.5V 超宽工作电压,面向最广泛的各种基础应用。CW32系列HBM ESD、MM ESD、CDM ESD、Latch up@105℃全面达到JEDEC最高等级,所以CW32系列具备稳定可靠的eFLASH制造,确保了工业产品的高可靠性。此次产品的研发就是基于芯源产品的系列有点进行的,并将对产品进行ESD测试等内容。

【开发记录】

第一步:硬件设计及PCB制板

此线控器是基于武汉芯源半导体推出的CW32L083低功耗系列产品设计研发而成的,其主要包括MCU、触摸模块、通信模块、红外遥控模块、存储模块、编程接口等部分,设计系统原理框图如图1所示:

wps

图1 系统原理框图

该线控器自带背光,白底黑字液晶,触摸按键,可显示和设置时钟,可预约24小时开关机(倒计时、时刻定时功能),可调节7档风速、上下扫风和左右扫风,可切换自动、制冷、初始、送风、自热等模式,不仅可以通过WiFi与手机相连使用APP控制,还可以接收红外遥控器控制,具有机组参数查询与设置功能,防潮设计、不易受潮。其设计原理图及PCB板实物图分别如图2、图3所示:

线控器原理图

图2 线控器原理图

线控器

图3 线控器PCB板

第二步:软件设计

软件部分主要分为以下几部分内容,软件构成如图4所示:

线控器代码

图4 线控器程序图

  1. LCD显示部分,LCD主要显示温度,风速,模式等系列设置内容,例如模式设置内容为:

/*

  • @brief 运行模式显示
  • @detail 显示自动、制暖、制冷、抽湿和送风

*/

void display_mode(void)

{

if (G_CleanState)

	return;

switch(G_SystemMode)

{

	case SYSTEM_MODE_AUTO: 

		lcd_SystemMode_Auto;

		break;

	case SYSTEM_MODE_WARM: 

		lcd_SystemMode_WARM;

		break;

	case SYSTEM_MODE_COLD: 

		lcd_SystemMode_COLD;

		break;

	case SYSTEM_MODE_COLD_WET: 

		//lcd_SystemMode_COLD;

		lcd_SystemMode_WET;

		break;

	case SYSTEM_MODE_WET: 

		lcd_SystemMode_WET;

		break;

	case SYSTEM_MODE_WIND:

		lcd_SystemMode_WIND;

		break;

}

}

  1. 蜂鸣器部分,主要实现功能是按键响应,例程如下:

void ppg_program(void)

{

if(key_keepon_beep)

{

PPG_time=0;

return;

}

switch(PPG_type)

{

case 0: ppg_off(); break;

case 1: ppg_type1(); break;

case 2: ppg_type2(); break;

case 3: ppg_type3(); break;

case 4: ppg_type4(); break;

case 5: ppg_type5(); break;

case 6: ppg_type6();break;

default: ppg_off(); break;

}

}

  1. 存储部分,存储用的是24C04,通过使用IIC通讯方式与MCU进行连接的,用来存储用户设置的相关信息等,例程如下:

uint8_t I2C_WriteByte(uint8_t Byte)

{

uint8_t i=0;

I2C_SDA_OUTPUT();

delay_5us();

for(i=0;i< 8;i++)

{   

    if (Byte & 0x80)

        I2C_SDA_HIGH();

    else

        I2C_SDA_LOW();

    NOP();     

    I2C_SCL_HIGH();

    delay_5us();

    I2C_SCL_LOW();

    delay_5us();

    Byte < <= 1;

}   

I2C_SDA_INPUT();

I2C_SCL_HIGH();

delay_5us();

if (I2C_SDA_READ())

    i = 0x01;

else

    i = 0x00;

I2C_SCL_LOW();

return i;

}

  1. 按键部分,按键主要是用来处理按键信息,实现用户想要设置的内容,例程如下:

    //功能部分

void key2_deal(void)

{

backlight_cnt=0;

backlight_flag=1;

if(self_check_flag)

	return;

if (G_FeatureSetStatus)

	return;

if (set_status == SET_CLOCK)

	return;

if (G_CleanState)

	return;

/******************************************************/

/* (1)短按释放 */

/******************************************************/

if(key2_down_flag)

{

	if(set_status)

	{

		set_status=NO_SET;

		G_IrSendFlag |= IR_NORMAL_SEND_FLAG;

		G_TxTime1sCnt=0;

		if(beep_enable)

		{

			ppg_off();PPG_type=1;PPG_time=0;

		}

	}

	else if(server_set_status)

	{

		server_change_deal();

		beep_enable_deal(1);

	}

	else if(G_NanoeSingle)

	{

		G_NanoeSingle=0;

		nanoe_single_write = 1;

		G_SystemMode=G_NanoeMode;

		system_mode_write=1;

		beep_enable_deal(1);

		G_IrSendFlag |= IR_NORMAL_SEND_FLAG;

		G_TxTime1sCnt=0;

		

	}

	else

	{

		if(mode_lock==0)    //模式 0--自动  1-制暖  2--制冷  3--抽湿 4--送风 

		{

			//G_FreshAir = 0;

			if (G_StrongColdState)

			{

				G_StrongColdState = 0;

				strong_cold_write = 1;

				//G_Rx0SendFlag |= RX0_SEND_FLAG_NORMAL;

			}

			if (G_StrongWarmState)

			{

				G_StrongWarmState = 0;

				strong_warm_write = 1;

				//G_Rx0SendFlag |= RX0_SEND_FLAG_NORMAL;

			}
  1. 触摸部分,由于CW32L083本身没有触摸功能,所以另外又搭配了YS806电容感应式芯片,此芯片也是通过I2C与主芯片进行通讯的,具体部分例程如下:

uint8_t I2C_806_ReadByte(uint8_t ack)

{

unsigned char i, Data;

I2C_806_SDA_INPUT();

Data = 0x00;

for(i = 0; i < 8; i++){

Data < <= 1;

I2C_806_SCL_HIGH();

DelayIIC(HALF_CLK_CYCLE);

if(I2C_806_SDA_READ()){

Data |= 0x01;

} else { }    DelayIIC(HALF_CLK_CYCLE);

I2C_806_SCL_LOW();

DelayIIC(CLK_CYCLE);

}

I2C_806_SDA_OUTPUT(); //send ACK or not

if(ack){

I2C_806_SDA_HIGH();

} else {

I2C_806_SDA_LOW();

}

I2C_806_SCL_HIGH();

DelayIIC(CLK_CYCLE);

I2C_806_SCL_LOW();

DelayIIC(CLK_CYCLE);

return Data;

}

除以上部分外还有其他例如背光、红外等程序内容,在此就不一一赘述。

第三步:下载调试

线控器安装液晶屏后,只需下载程序即可上电调试。为了方便刷程序,将程序的hex文件烧录至离线编程器中,四线插入正确按下烧录键即可烧录成功。烧录后通过按不同的触控按钮,实现其相对应的功能。然后再对产品进行1.5KV电压干扰下测试,测试结果展示如下图5所示,其功能及状态属于正常。

8f4aac2837ccf9c5dfea52f5da73882图5 1.5KV干扰下测试状态

第四步:总结

以上即为本次线控器设计的全部基本内容,可以方便快捷的满足客户的需求,控制空调温度,调节空调模式、风速等,当然也有不足,后续将继续改进。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16972

    浏览量

    350199
  • pcb
    pcb
    +关注

    关注

    4316

    文章

    22980

    浏览量

    396082
  • 线控
    +关注

    关注

    0

    文章

    14

    浏览量

    6836
  • 遥控器
    +关注

    关注

    18

    文章

    829

    浏览量

    65957
  • CW32
    +关注

    关注

    1

    文章

    183

    浏览量

    574
  • 武汉芯源
    +关注

    关注

    1

    文章

    65

    浏览量

    249
收藏 人收藏

    评论

    相关推荐

    CW32L010 Mini Board 测评】简介、点灯

    CW32L010 Mini Board 测评】简介、点灯 CW32L010 Mini Board 是 武汉芯源半导体 设计的基于 CW32L010 的开发板, 简介 CW32L01
    发表于 11-17 06:39

    CW32L010学习笔记

    记录CW32L010学习过程
    的头像 发表于 11-15 17:40 971次阅读
    <b class='flag-5'>CW32L</b>010学习笔记

    CW32L010 新品初体验

    最近我们迎来了CW32L010新品的正式发布,标志着嵌入式技术领域的又一次创新突破。今日,我们有幸进行该新品的首次使用体验,以一块L010核心板为例,体验一下这颗芯片。 一、核心板概览 如图所示
    的头像 发表于 11-14 17:45 176次阅读
    <b class='flag-5'>CW32L</b>010 新品初体验

    基于CW32L010单片机的低成本电动工具方案

    方案采用武汉芯源的CW32L010F8P6作为主控实现低成本电动工具方案,通过PWM方波控制算法进行电机转速控制,内部高精度AD转换实现电机电压、反电动势、电流等信号的采样,并实时进行故障停机保护等功能。
    的头像 发表于 10-30 16:04 846次阅读
    基于<b class='flag-5'>CW32L</b>010单片机的低成本电动工具<b class='flag-5'>方案</b>

    CW32L0100核心板的使用体验

    最近我们迎来了CW32L010新品的正式发布,标志着嵌入式技术领域的又一次创新突破。今日,我们有幸进行该新品的首次使用体验,以一块L010核心板为例,体验一下这颗芯片。
    的头像 发表于 10-30 15:29 183次阅读
    <b class='flag-5'>CW32L</b>0100核心板的使用体验

    CW32L010安全低功耗MCU,树立M0+产品行业新标杆!

    2024年9月26日,武汉芯源半导体CW32L010系列产品正式官方发布。这款产品以其卓越的产品性能,迅速在业界引起了广泛关注,并成功树立M0+产品行业的新标杆。 CW32L010系列产品
    发表于 10-09 10:08

    安森美OBC系统解决方案设计指南

    “OBC系统解决方案设计指南”又上新了,第一篇文章介绍了系统用途、系统实施方法、系统说明、市场趋势和标准等,本文将继续介绍解决方案概述及拓扑。
    的头像 发表于 08-20 16:34 734次阅读
    安森美OBC系统解决<b class='flag-5'>方案设计</b>指南

    CW32L083 IAP跳转后中断无响应是怎么回事?

    最近做一个项目,需要IAP。按照官方的教程一切顺利,软件APP跳转一切正常,但是跳转后中断没有响应。搜索了一堆资料,APP在mian中找开了中断,在不同地方设置VROT,都没能解决,查了数据手册,也只说支持向量偏移,没有其它介绍。请问哪位大神做过IAP中断处理的,指点一下,是不是还需要设置哪里。我用仿真器测试,只要是带中断的,跳转后,中断全部无响应。
    发表于 07-26 07:17

    请问STM32L083的唯一ID为什么有重复啊?

    ID的读取代码如下: for(i=0; i<3; i++) {//STM32L083 ID CODE STM32L083_ID[i] = *(uint32_t
    发表于 04-17 06:29

    CW32L052 FLASH存储器

    CW32L052内部集成了64KB嵌入式FLASH供用户使用,可用来存储应用程序和用户数据。芯片支持对 FLASH 存储器的读、擦除和写操作,支持擦写保护和读保护。芯片内置 FLASH 编程所需的高压 BOOST 电路,无须额外提供编程电压。
    的头像 发表于 02-28 17:43 690次阅读
    <b class='flag-5'>CW32L</b>052 FLASH存储器

    CW32L052单片机支持DMA实现高速数据传输

    CW32L052支持DMA(Direct Memory Access),即直接内存访问,无需CPU干预,实现高速数据传输。
    的头像 发表于 02-27 11:36 942次阅读

    请问如何优化CW32L083微控制器的功耗?

    在进行低功耗设计时,如何优化CW32L083系列微控制器的功耗?
    发表于 01-17 07:16

    CW32L083系列微控制器的ADC和DAC模块要如何使用?怎么配置?

    如何配置和使用CW32L083系列微控制器的ADC和DAC模块?
    发表于 01-17 06:08

    CW32单片机在智能马桶的应用介绍

    对电能的高效利用和节约。 这款智能马桶采用的是武汉芯源半导体32位低功耗CW32L083系列,该系列产品集成了主频高达64MHz的ARM® Cortex®-M0+ 内核、最多256KB FLASH 、最多
    发表于 12-20 10:06

    如何简化电源管理方案设计

    电源管理是现代电子设备中非常重要的一个环节,它涉及到电能的转换、分配和控制等方面。随着电子设备的不断发展和复杂化,电源管理方案的设计也变得越来越复杂。为了简化电源管理方案设计,本文将从以下几个方面进行探讨。
    的头像 发表于 11-24 17:08 667次阅读