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時鐘怎麼掉電保持