W80X芯片RTC没有独立电源,断电RTC中数据是会丢的,保持供电芯片PMU可以进入低功耗模式,sleep(功耗1~2ma)或standby(功耗<10ua),通过wakeup脚唤醒,sleep模式和standby模式,RTC是保持工作。
W80X芯片RTC没有独立电源,断电RTC中数据是会丢的,保持供电芯片PMU可以进入低功耗模式,sleep(功耗1~2ma)或standby(功耗<10ua),通过wakeup脚唤醒,sleep模式和standby模式,RTC是保持工作。
W806 Demo文件夹中有示例
这个是涂鸦SDK,海凌科公众号可以获取。
先看sdk demo使用指导,把demo跑通再去改代码。
自动重连建议参考这个demo,通过蓝牙配网成功后也会自动打开自动重连功能。
u8 auto_reconnect = 0xff;
tls_wifi_auto_connect_flag(WIFI_AUTO_CNT_FLAG_GET, &auto_reconnect);
if(auto_reconnect != WIFI_AUTO_CNT_ON)
{
auto_reconnect = WIFI_AUTO_CNT_ON;
tls_wifi_auto_connect_flag(WIFI_AUTO_CNT_FLAG_SET, &auto_reconnect);
tls_wifi_connect((u8 *)"w600", strlen("w600"), (u8 *)"12345678", strlen("12345678"));
printf("--->WIFI_AUTO_CNT_FLAG_SET ON\n");
}
W500已经停产了,目前主推是W80X系列,可以支持中文UTF-8编码。
可以参考QQ群文件里面的串口OTA,第一包要>64k(img头部信息)
QQ群文件百度云下载链接
不知道这个demo对你有没有帮助
/*****************************************************************************
*
* File Name : main.c
*
* Description: main
*
* Copyright (c) 2014 Winner Micro Electronic Design Co., Ltd.
* All rights reserved.
*
* Author : dave
*
* Date : 2014-6-14
*****************************************************************************/
#include "wm_include.h"
#include "wm_cpu.h"
#include "wm_dma.h"
u8 send_data[8] = {0};
u8 recv_data[8] = {0};
static void gpio_dma_callback(void)
{
printf("--->%s\r\n",__func__);
printf("recv_data:");
for(int i = 0; i < 8; i++)printf("%02X ",recv_data[i]);
printf("\n");
}
void UserMain(void)
{
extern void tls_sys_clk_set();
extern u32 tls_mem_get_avail_heapsize(void);
tls_sys_clk_set(CPU_CLK_80M);
printf("\n \\\\\\|///\n");
printf(" \\\\ .-.- //\n");
printf(". ( .@.@ ) \n");
printf("+-------oOOo-----(_)-----oOOo---------+\n\n");
printf(" ---> Compile "__DATE__", "__TIME__"\n");
printf(" ---> %s.c\r\n",__func__);
printf(" ---> GetHeap:%d\n",tls_mem_get_avail_heapsize());
printf("\n+---------------------Oooo------------+\n");
u8 dmaCh;
struct tls_dma_descriptor DmaDesc;
printf("send_data:");
for(int i = 0; i < 8; i++)printf("%02X ",send_data[i]);
printf("\n");
printf("recv_data:");
for(int i = 0; i < 8; i++)printf("%02X ",recv_data[i]);
printf("\n");
for(int i = 0; i < (sizeof(send_data)/sizeof(char)); i++)
{
send_data[i] = i;
}
printf("send_data:");
for(int i = 0; i < 8; i++)printf("%02X ",send_data[i]);
printf("\n");
printf("recv_data:");
for(int i = 0; i < 8; i++)printf("%02X ",recv_data[i]);
printf("\n");
dmaCh = tls_dma_request(1, 0);
printf("send_data:%08X\n",&send_data[0]);
DmaDesc.src_addr = send_data;
DmaDesc.dest_addr = recv_data;
printf("src_addr: %08X\n",DmaDesc.src_addr);
printf("dest_addr:%08X\n",DmaDesc.dest_addr);
DmaDesc.dma_ctrl = TLS_DMA_DESC_CTRL_DEST_ADD_INC |TLS_DMA_DESC_CTRL_SRC_ADD_INC | TLS_DMA_DESC_CTRL_BURST_SIZE1 | TLS_DMA_DESC_CTRL_DATA_SIZE_BYTE | TLS_DMA_DESC_CTRL_TOTAL_BYTES(8);
DmaDesc.valid = TLS_DMA_DESC_VALID;
DmaDesc.next = NULL;
tls_dma_start(dmaCh, &DmaDesc, 0);
tls_dma_irq_register(dmaCh, (void (*))gpio_dma_callback, NULL, TLS_DMA_IRQ_TRANSFER_DONE);
}
/*****************************************************************************
*
* File Name : main.c
*
* Description: main
*
* Copyright (c) 2014 Winner Micro Electronic Design Co., Ltd.
* All rights reserved.
*
* Author : dave
*
* Date : 2014-6-14
*****************************************************************************/
#include "wm_include.h"
#include "string.h"
void UserMain(void)
{
printf("\n user task \n");
struct tls_curr_bss_t rssi;
u8 auto_reconnect = 0xff;
if(auto_reconnect != WIFI_AUTO_CNT_ON)
{
auto_reconnect = WIFI_AUTO_CNT_ON;
tls_wifi_auto_connect_flag(WIFI_AUTO_CNT_FLAG_SET, &auto_reconnect);
tls_wifi_connect((u8 *)"w600", strlen("w600"), (u8 *)"12345678", strlen("12345678"));
printf("--->WIFI_AUTO_CNT_FLAG_SET ON\n");
}
while(1)
{
tls_os_time_delay(HZ*1);
tls_wifi_get_current_bss(&rssi);
printf("--->rssi = -%d\n",rssi.rssi);
}
#if DEMO_CONSOLE
CreateDemoTask();
#endif
//用户自己的task
}
目前W806 SDK暂时没有串口 DAM方式驱动。
W80X系列芯片新出货的都有在工厂产线做ADC校准,W800 SDK和W806 SDK需要更新一个补丁包。
这是依据电压和adc采集的数据转换来的,你也可以认为是一个ax+b的转换,也就是相当于通过数据总结的一个线性公式。
IO唤醒的话只能通过W806的wakeup脚唤醒,或者也可以通过定时器唤醒,可以参考SDK、PMU demo。
问 W801的RTC时钟怎么掉电保持