今天说一个新朋友,base在四川,主要是对标TI,ADI的一些热门型号:公司以ADC为核心,开发医疗市场里面常用的ECG和EEG,以及工业测量相关:这一类是高速高精度的流水线产品:润石新品RS1520对标AD9629(流水线-FlashADC)1299这些型号其实也是可以做ECG的,但是有些屈才这一类是主要是工业控制和测量,也就是所谓的精密ADC,也是我们平时用的最多的一类。相应的速度这块就要差一些,不过这片子08就有了,TI的设计能力还是非常强。传统上,具有良好漂移性能的工业 delta-sigma ADC 使用具有较大通带下降的数字滤波器。因此,它们的信号带宽有限,主要适用于直流测量。音频应用中的高分辨率 ADC 提供更大的可用带宽,但偏移和漂移规格明显弱于相应的工业对应产品。ADS1278是俩者都兼顾的,所以2018也是如此:好用,好像下面这个才是,不过没关系,就是一个封装而已这么多芯片不可能一次说完,这次写一个我喜欢的小东西,CW3011.不过右边的这个图一股子TI味道。确实是对比来看,一些指标做的不错,没想到老朋友领慧也在:作为一个中立的使用者,我也得一拉一踩,因为这个LH的超小体积,在一些动物电生理里面是会被选择的,但是多通道的是有串扰问题:这个可能是设计失误,反正是模拟芯片做小了,确实是性能上面有问题。鱼和熊掌一次拿不下。虽然是单通道,但是功能一点不含糊,甚至还给了起搏检测的功能。但是数据手册里面没有任何的说明,到底是做没做???#include
#include
#define SW3011_CS_LOW()
#define SW3011_CS_HIGH()
#define SPI_Transfer(data)
void SW3011_WriteRegister(uint8_t reg, uint8_t value) {
SW3011_CS_LOW();
SPI_Transfer(0x40 | reg);
SPI_Transfer(value);
SW3011_CS_HIGH();
}
uint8_t SW3011_ReadRegister(uint8_t reg) {
uint8_t value;
SW3011_CS_LOW();
SPI_Transfer(0x20 | reg);
value = SPI_Transfer(0x00);
SW3011_CS_HIGH();
return value;
}
void SW3011_Init() {
SW3011_WriteRegister(0x01, 0x80);
SW3011_WriteRegister(0x02, 0x10);
SW3011_WriteRegister(0x03, 0x05);
SW3011_WriteRegister(0x07, 0x30);
SW3011_WriteRegister(0x0A, 0x01);
printf("SW3011 初始化完成\n");
}
int32_t SW3011_ReadECGData() {
uint8_t rawData[3];
int32_t result = 0;
SW3011_CS_LOW();
SPI_Transfer(0x12);
rawData[0] = SPI_Transfer(0x00);
rawData[1] = SPI_Transfer(0x00);
rawData[2] = SPI_Transfer(0x00);
SW3011_CS_HIGH();
result = ((int32_t)rawData[0] << 16) | ((int32_t)rawData[1] << 8) | (int32_t)rawData[2];
if (result & 0x800000) {
result |= 0xFF000000;
}
return result;
}
void SW3011_EnablePacemakerDetection() {
SW3011_WriteRegister(0x0A, 0x01);
printf("数字起搏检测已启用\n");
}
低功耗设计 和 ECG 特定功能,非常适合医疗级 ECG/EEG/EMG 设备 以及 低功耗生理监测。其 超低功耗模式(ULP)和高 SNR 使其在可穿戴设备和长期监测应用中具有很大优势。我的评价是不错,可以使用。他们家的产品,低功耗和低噪音是个不错的优势,有相关需求的可以考虑一下。好多朋友说国产芯片买不到什么的,我这次直接把联系人的方式挂上来了,直接拷打原厂。