This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AFE4900:TIDA-01580的 PTT 模式

Guru**** 667810 points
Other Parts Discussed in Thread: TIDA-01580, AFE4900
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1039835/afe4900-ptt-mode-for-tida-01580

器件型号:AFE4900
主题中讨论的其他器件:TIDA-01580

您好!
我正在使用 TIDA-01580板、并希望将其更改为 PTT 模式(1kHz)、但 无法获取任何数据。 请告诉我 TIDA-01580 1kHz PRF 使用的每个寄存器的值。

我已经尝试了以下寄存器设置。 (分频系数为4的内部128khz 振荡器)

{0x00、0x000020}、/* control0*/
{0x01、0x00001}、////* LED2STC*/
{0x02、0x00003}、/////* LED2ENDC*/
{0x03、0x0000A}、///*LED1LEDSTC*/
{0x04、0x0000D}、///*LED1LEDENDC*/
{0x05、0x00006}、///*ALED2STC*/
{0x06、0x00008}、/////* ALED2ENDC*/
{0x07、0x0000B}、///*LED1STC*/
{0x08、0x0000D}、///*LED1ENDC*/
{0x09、0x0000}、///*LED2LEDSTC*/
{0x0A、0x00003}、///*LED2LEDENDC*/
{0x0B、0x000010}、////*ALED1STC*/
{0x0C、0x000012}、////*ALED1ENDC*/
{0x0D、0x00005}、////*LED2CONVST*/
{0x0E、0x00008}、////*LED2CONVEND*/
{0x0F、0x0000A}、////*ALED2CONVST*/
{0x10、0x0000D}、/////* ALED2CONVEND*/
{0x11、0x0000F}、/////* LED1CONVST*/
{0x12、0x000012}、/////* LED1CONVEND*/
{0x13、0x000014}、/////* ALED1CONVST*/
{0x14、0x000017}、/////* ALED1CONVEND*/
{0x1D、0x00001F}、////*PRPCOUNT*/
{0x1E、0x000101}、/* control1*//定时器被启用并且 NUMAV=1
{0x1F、0x000000}、/* TIAGAIN_2_3*/
{0x20、0x000003}、/* TIAGAIN*/
{0x21、0x000003}、/* TIA_AMB_GAIN*/
{0x22、0xFC0000}、/* LEDCNTRL1*///LED 电流控制寄存器
{0x23、0x104218}、/* Control2*///振荡器选择和 ILED_FS
{0x24、0x000600}、/* LEDCNTRL2*/
{0x28、0x000000}、/*切换*/
{0x29、0x000000}、/* CLKDIV1*/
{0x2A、0x000000}、/* LED2VAL*/
{0x2B、0x000000}、/* ALED2VAL*/
{0x2C、0x000000}、/* LED1VAL*/
{0x2D、0x000000}、/* ALED1VAL*/
{0x2E、0x000000}、/* LED2-ALED2VAL*/
{0x2F、0x000000}、/* LED1-ALED1VAL*/
{0x31、0x000020}、/* Control3*/
{0x34、0x000000}、/* PROG_INT2_STC*/
{0x35、0x000000}、/* PROG_INT2_ENDC*/
{0x36、0x00005}、///*LED3LEDSTC*/
{0x37、0x00008}、/////* LED3LEDENDC*/
{0x39、0x000005}、/* CLKDIV2*///时钟分频128K/4=32K
{0x3A、0x100000}、/* OFFDAC*/
{0x3B、0x000000}、/* THRDETLOW*/
{0x3C、0x000000}、/* THRDETHIDH*/
{0x3D、0x000000}、/* THRDET*/
{0x3E、0x000000}、/* I_OFFDAC*/
{0x3F、0x000000}、/* AVG_LED2_ALED2VAL*/
{0x40、0x000000}、/* AVG_LED1_ALED1VAL*/
{0x42、0x000000}、/* FIFO*/
{0x43、0x0000F}、///*LED4LEDSTC*/
{0x44、0x000012}、/////* LED4LEDENDC*/
{0x45、0x000000}、/* TG_PD1STC*/
{0x46、0x000000}、/* TG_PD1ENDC*/
{0x47、0x000000}、/* TG_PD2STC*/
{0x48、0x000000}、/* TG_PD2ENDC*/
{0x49、0x000000}、/* TG_PD3STC*/
{0x4A、0x000000}、/* TG_PD3ENDC*/
{0x4B、0x000000}、/* Control4*///////////// 怀疑////////
{0x4E、0x000004}、/* DUAL_PD*///PTT 模式
{0x50、0x000018}、/* Control5*///SHORT _ALDO_TO_DLDO_IN_DEEP_SLEEP - 0//
{0x51、0x000000}、/* FIFO_OFFSET*/
{0x52、0x00001D}、///*DATA_RDY_STC*/
{0x53、0x00001D}、///*DATA_RDY_ENDC*/
{0x54、0x000000}、/* MASK_PPG*/
{0x57、0x000000}、/* PROG_INT1_STC*/
{0x58、0x000000}、/* PROG_INT1_ENDC*/
{0x61、0x080000}、/* ECG_CHOP*/
{0x62、0x800000}、/* ECG_RLD*/
{0x63、0x000000}、/* RCOMP*/
{0x64、0x000000}、///*DYN_TIA_STC*/
{0x65、0x000020}、///*DYN_TIA_ENDC*/
{0x66、0x000000}、/////* DYN_ADC_STC*/
{0x67、0x000020}、////* DYN_ADC_ENDC*/
{0x68、0x000000}、/////* DYN_CLOCK_STC*/
{0x69、0x000020}、/////* DYN_CLOCK_ENDC*/
{0x6A、0x000021}、/////* DEEP_SLEEP_STC*/
{0x6B、0x000018}、////* DEEP_SLEEP_ENDC*/
{0x6C、0x000000}、/* PD_SHORT*/
{0x6D、0x000000}、/* REG_POINTER*/
{0x72、0x000000}、/* LED_DRIVER_CONTRAINS*/
{0x73、0x000000}、/* THR_DETK_LOGIC*/

{0xFF、0x00}//阵列结束

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Malik

    我注意到寄存器设置中存在问题。 似乎您尚未启用双 PD 模式和相应的 TG PD 设置。  TIDA-01580参考设计使用 SFH 7072传感器。  为了获得更好的读数、传感器的绿色 LED 应与红外截止 PD 搭配使用、红色和红外 LED 应与宽带 PD 搭配使用。 您可以使用 AFE4900 GUI 进行编程所需的寄存器设置。 更新这些寄存器设置后、我能够使用 AFE4900 EVM 并捕获 PPG 信号和 ECG 信号(对于 ECG、我使用了仿真器)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢你。 我也做出了相应的改变,但我仍然没有从 AFE 获得任何数据。 当前寄存器设置为:

    AFE4900_Reg_Write (0、0x20);//启用 ULP 模式
    AFE4900_Reg_Write (1、0x1);//AFE_LED2STC
    AFE4900_Reg_Write (2、0x3);//AFE_LED2ENDC
    AFE4900_Reg_Write (3、0xA);//AFE_LED1LEDSTC
    AFE4900_Reg_Write (4、0xD);//AFE_LED1LEDENDC
    AFE4900_Reg_Write (5、0x6);//AFE_ALED2STC
    AFE4900_Reg_Write (6、0x8);//AFE_ALED2ENDC
    AFE4900_Reg_Write (7、0xB);//AFE_LED1STC
    AFE4900_Reg_Write (8、0xD);//AFE_LED1ENDC
    AFE4900_Reg_Write (9、0x0);//AFE_LED2LEDSTC
    AFE4900_Reg_Write (10、0x3);//AFE_LED2LEDENDC
    AFE4900_Reg_Write (11、0x10);//AFE_ALED1STC
    AFE4900_Reg_Write (12、0x12);//AFE_ALED1ENDC
    AFE4900_Reg_Write (13、0x5);//AFE_LED2CONVST
    AFE4900_Reg_Write (14、0x8);//AFE_LED2CONVEND
    AFE4900_Reg_Write (15、0xA);//AFE_ALED2CONVST
    AFE4900_Reg_Write (16、0xD);//AFE_ALED2CONVEND
    AFE4900_Reg_Write (17、0xF);//AFE_LED1CONVST
    AFE4900_Reg_Write (18、0x12);//AFE_LED1CONVEND
    AFE4900_Reg_Write (19、0x14);//AFE_ALED1CONVST
    AFE4900_Reg_Write (20、0x17);//AFE_ALED1CONVEND

    AFE4900_Reg_Write (29、0x1f);//AFE_PRPCOUNT // 50Hz PRP @ 128KHz 内部 OSC CLK

    AFE4900_Reg_Write (30、0x000101);//AFE_CONTROL1 TimerEN = 1;NUMAV = 0

    AFE4900_Reg_Write (31、0x000000);//

    AFE4900_Reg_Write (32、0x000003);//AFE_TIA_SEP_GAIN (LED2) ENSEPGAIN = 0;LED2/LED3 GAIN = 25K
    AFE4900_Reg_Write (33、0x000003);//AFE_TIA_GAIN (LED1) LED1/LED1AMB GAIN = 25K

    AFE4900_Reg_Write (34、0xFC0000);//已更改
    AFE4900_Reg_Write (35、0x104218);//更改

    AFE4900_Reg_Write (36、0x000600);//
    AFE4900_Reg_Write (40、0x0);//
    AFE4900_Reg_Write (41、0x0);//
    AFE4900_Reg_Write (42、0x0);//
    AFE4900_Reg_Write (43、0x0);//
    AFE4900_Reg_Write (44、0x0);//
    AFE4900_Reg_Write (45、0x0);//
    AFE4900_Reg_Write (46、0x0);//
    AFE4900_Reg_Write (47、0x0);//

    AFE4900_Reg_Write (49、0x20);//enable_input_short = 1.
    AFE4900_Reg_Write (50、0);//PDNCYCLESTC
    AFE4900_Reg_Write (51、0);//PDNCYCLEENDC
    AFE4900_Reg_Write (52、0x0);//
    AFE4900_Reg_Write (53、0x0);//

    AFE4900_Reg_Write (54、0x00005);//AFE_LED3LEDSTC
    AFE4900_Reg_Write (55、0x00008);//AFE_LED3LEDENDC

    AFE4900_Reg_Write (57、0x000005);//CLKDIV_PRF

    AFE4900_Reg_Write (58、0x100000);//
    AFE4900_Reg_Write (59、0x0);//
    AFE4900_Reg_Write (60、0x0);//
    AFE4900_Reg_Write (61、0x0);//
    AFE4900_Reg_Write (62、0x0);//
    AFE4900_Reg_Write (63、0x0);//
    AFE4900_Reg_Write (64、0x0);//
    AFE4900_Reg_Write (66、0x0);//

    AFE4900_Reg_Write (67、0x0000F);//AFE_LED4LEDSTC
    AFE4900_Reg_Write (68、0x000012);//AFE_LED4LEDENDC


    AFE4900_Reg_Write (69、0x0);//
    AFE4900_Reg_Write (70、0x8);//
    AFE4900_Reg_Write (71、0x0A);//
    AFE4900_Reg_Write (72、0x1F);//
    AFE4900_Reg_Write (73、0x0);//
    AFE4900_Reg_Write (74、0x0);//


    AFE4900_Reg_Write (75、0x00);//CONTROL_DYN_VCM / CONTROL_DYN_DLDO / CONTROL_DYN_ALDO / CONTROL_DYN_DYN_BG

    AFE4900_Reg_Write (78、0x00000C);//双 PD

    AFE4900_Reg_Write (80、0x18);//
    AFE4900_Reg_Write (81、0x0);//

    AFE4900_ReG_Write (82、0x1D);//DATA_RDY_STC
    AFE4900_ReG_Write (83、0x1D);//DATA_RDY_ENDC

    AFE4900_Reg_Write (84、0x0);//
    AFE4900_Reg_Write (87、0x0);//
    AFE4900_Reg_Write (88、0x0);//

    AFE4900_ReG_Write (97、0x080000);//ECG CHOP
    AFE4900_Reg_Write (98、0x800000);//ECG RLD

    AFE4900_Reg_Write (99、0x0);//

    AFE4900_Reg_Write (100、0);//DYN_TIA_STC
    AFE4900_Reg_Write (101、0x20);//DYN_TIA_ENDC
    AFE4900_Reg_Write (102、0);//DYN_ADC_STC
    AFE4900_Reg_Write (103、0x20);//DYN_ADC_ENDC
    AFE4900_Reg_Write (104、0);//DYN_CLOCK _STC
    AFE4900_Reg_Write (105、0x20);//DYN_CLOCK_ENDC
    AFE4900_Reg_Write (106、0x21);//deep_sleep_STC
    AFE4900_Reg_Write (107、0x18);//deep_sleep_ENDC

    AFE4900_Reg_Write (108、0x000800);//

    AFE4900_Reg_Write (109、0x0);//
    AFE4900_Reg_Write (114、0x0);//
    AFE4900_Reg_Write (115、0x0);//

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Malik、

    您能否详细说明一下不从 AFE 获取任何数据意味着什么。 您是否无法读回任何寄存器或仅 ADC 输出寄存器(0x2A 至0x2F)中编程的值? 如果它只是 ADC 输出寄存器、您从这些寄存器中读取了什么值?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    读回寄存器值后、我在大多数寄存器中得到0。 在读取寄存器之前、我将第0个寄存器的值设置为21。 下面列出了串行输出
    地址:0 0
    地址:1 1
    地址:2 3
    地址:3A
    地址:4 d
    地址:5 0
    地址:6 0
    地址:7 0
    地址:8 0
    地址:9 0
    地址:10 0
    地址:11 0
    地址:12 0
    地址:13 0
    地址:14 0
    地址:15 0
    地址:16 0
    地址:17 0
    地址:18 0
    地址:19 0
    地址:20 0
    地址:21 0
    地址:22 0
    地址:23 0
    地址:24 0
    地址:25 0
    地址:26 0
    地址:27 0
    地址:28 0
    地址:29 0
    地址:30 0
    地址:31 0
    地址:32 0
    地址:33 0
    地址:34 0
    地址:35 0
    地址:36 0
    地址:37 0
    地址:38 0

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Malik、
    根据串行输出、您是否从寄存器地址0读回?  寄存器0是只写寄存器。 因此、对其的任何访问都将清除 SPI_REG_READ 位。