You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
zhaohe fb7614708f 9.2.1 3-LeadECGApplication OK 1 year ago
.vscode update 1 year ago
app 9.2.1 3-LeadECGApplication OK 1 year ago
ble_app_uart_c update 1 year ago
libznordic@92a15d47cb update 1 year ago
res 完成显示基本组件 1 year ago
sdk@45186701cd update 1 year ago
.clang-format format code 1 year ago
.gitignore format code 1 year ago
.gitmodules update 1 year ago
1.c 9.2.1 3-LeadECGApplication OK 1 year ago
README.md update 1 year ago
SSD1312_Datasheet (1).pdf update 1 year ago
TXW64128-41-TSWG13P096G-A-VER1.0.pdf update 1 year ago
ads1293.pdf update 1 year ago
m24m02-dr.pdf 完成单导底层驱动程序 1 year ago

README.md

conduction1_dynamic_electrocardiograph

使用说明

https://iflytop1.feishu.cn/wiki/Fp0fwciUEibtm4kaUeXcraOCneg

开发板IO资源说明:

#define BSP_LED_0      13
#define BSP_LED_1      14
#define BSP_LED_2      15
#define BSP_LED_3      16

#define BUTTON_1       11 // 上拉低电平有效
#define BUTTON_2       12 // 上拉低电平有效
#define BUTTON_3       24 // 上拉低电平有效
#define BUTTON_4       25 // 上拉低电平有效

sdk\components\boards\pca10100.h

清风开发板

        AIN2 -> 光感

I2C
#define TWI_SCL_M           28         //I2C SCL引脚
#define TWI_SDA_M           30         //I2C SDA引脚

------------------------------------

      
PIN4  PIN30/PIN31 PIN28/PIN29 PIN11/PIN20




设备行为:
1. 按下按键或者电极触发后开始广播

2. 当电极没有触发,且蓝牙没有连接,且超时10s后,停止广播,进入低功耗模式

3. 设备状态

        关机(休眠)
        开机蓝牙未连接(广播中)
        蓝牙已连接


难点:
        1.采样间隔2ms (500HZ)
        2.数据往flash中写入时间消耗,cache选择多大,数据什么时候上报。
        1. ADC:单次采样,阻塞拿数值(50us)
        2. 电池电量的采集ADC和电压采集ADC用的是同一个ADC

        (这里先使用最简单的阻塞式ADC采集,电池ADC3次,采样ADC3次)



屏幕驱动:
https://github.com/libdriver/ssd1306
1306驱动和1312是一样的,只不过1312默认是镜像的


UI元素:
-------------------
1. 不同大小的字体
2. 进度条
3. [X]
4. APP
-------------------


1. 进度条
2. 圈,x
3. 时间
4. LOGO
5. [X]
6. HR
7. APP查看结果
8. 年月日/时分秒
9. 不同大小的字体


xxx
+xx


     LOGO
     进度条

    年月日
      时分秒

    
    保持静止
    ___________
    [=====     ]
    ------------

    心电图
    [=====     ]

        [X]
     不足30秒
    
    正在保存
    [=====     ]

    APP
    查看结果
存储:
1帧
2byte
200帧
400byte 
1秒
400byte
30秒
12kbyte
120秒
48kbyte

----------------------------
2Mbit
256Kbyte

640秒 /120 = 5条记录

256kbyte

256byte索引

[
   ID:[年月日]
   packetOFF:[]
   usage[]:
   date:[]
]
48kbyte --> 一个扇区

256/4k = 64个扇区 10s数据

openStorage(年月日)
writeData(){

// 数据量是否大于最大数值

// 是否还有空间
// 擦除旧的空间
// 写入数据
// 写入缓存

// 是否刷新缓存?

找到空闲扇区,写入数据。
找不到空闲扇区,按照顺序释放旧的扇区
重新寻找扇区
}

// 倍数读取
readData(){
        1. 判断数据在哪个扇区
        3. 读取扇区数据信息
        2. 读取数据
        3. 拷贝数据
}

// Header

[
        usage:
        fileHeaderdata:
        fileId:
        dataoff:
        datalen:
]

{
        fileUUID:年月日时分秒
        sector:[1,2,3,4,5]
        datalen: 100
        //分辨率
        //总时长
        //采样率
}


硬件异常:
        1. eeprom读写失败
        2. 电池电量低
编程注意事项:
1. 使用了app_timer后,如果在系统中某个位置延时时间过程,会导致系统重启

TODO:
1. eeprom的文件扇区信息没有存储,也就是说每次电池用没了之后,数据会丢失
2. 如果要实现不丢数据,需要在eeprom中存储文件扇区信息,同时由于扇区的大小大于256字节,所以需要优化eeprom的写入函数。

单导蓝牙使用注意事项:

        1. 开机后
                开启广播
        2. 关机
                关闭广播
        关机条件:
                1. 蓝牙断开
                2. 设备未操作
                3. 30s内无任何蓝牙指令(连接)


        1. 蓝牙的广播的启停独立控制和设备开机关机逻辑分开
                开启广播:开机时候,如果当前没有开启广播,则打开广播
                关闭广播: 关机后30s内无连接关闭广播
                         断开连接后30s关闭广播

        2. 蓝牙状态指示灯:
                1. 蓝牙广播打开:指示灯闪烁
                2. 蓝牙广播关闭:指示灯关闭

        3. 采样时不支持电量上报
        4. 采样时不支持记录查询相关指令
        5. 不支持删除采样记录

任务:
       16. 解决断开连接,再次唤醒,屏幕无显示的BUG OK TESTOK
        1. 提取休眠时间到宏配置中 OK
        9. 支持数据实时上报 OK TEST1/2OK,有数据,但数据是否正确,校验起来不方便
       12. 支持数据上传 OK TESTOK
       15. 检查设备状态 OK TESTOK
       14. 支持掉落事件 OK TESTOK
       
        6. 支持电池电量采集  OK
        8. 采集完30秒,蜂鸣器滴一声,采集完成,蜂鸣器滴一声 OK
       16. 调整UI位置 
       11. 死机后一直重启的BUG OK
       12. 修改蓝牙名称 OK
       
--------------------------------------------------------------
        2. UI添加蓝牙状态
        3. UI添加上传状态
        4. UI添加心率计算
        5. UI添加心脏跳动效果
        7. 校准电池电量采集
        7. 添加心率
       10. 添加OTA支持
       11. 数据掉电不丢失
       12. 优化定时器周期
       13. 支持低电量事件
       14. 添加设备激活逻辑,根据设备是否通过过时间来判断当前是否彻底断电。
       15. 优化蜂鸣器的声音