TLV493D-A1B6 Master Controlled Mode

公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
DADA2
Level 3
Level 3
25 sign-ins 10 questions asked 5 questions asked

我是IIC时钟是400KHz,测量模式的是Master Controlled Mode(主控模式)。上电初始化完成并且配置了MOD1和MOD2等四个写寄存器后,我是先等/INT产生上升沿后,然后通过IIC向探测器发送地址,请求读,探测器也响应。接下我读取0H-06H一共7个寄存器,但是返回的值一在变动,差距挺大的。我查了读回来的数据,第5H的第5位(PD)(箭头处)一致显示为0,即为转换未完成。但是第3H的第1-2位(CH)(箭头处)显示为00,是对的值。1703242807364.png1703242497345.png1703242701280.png

 

0 点赞
1 解答
15 回复数
julis
Moderator
Moderator
Moderator
10 likes received 25 solutions authored 100 sign-ins

Hi @DADA2 

  1. 同步查看下03H-Temp寄存器的FRM,是否=0?是零的话,说明一次ADC转换都没有完成。

  2. 遵循5.7.1的步骤,发送reset帧看下效果。

  3. 请follow 5.1给出的初始化流程。

若有新的问题,继续回复即可。一并描述您的硬件环境和MCU信息。

 

Best,

julis

0 点赞
lock attach
Attachments are accessible only for community members.
DADA2
Level 3
Level 3
25 sign-ins 10 questions asked 5 questions asked

麻烦看一下,谢谢

0 点赞
julis
Moderator
Moderator
Moderator
10 likes received 25 solutions authored 100 sign-ins

您好,

  初步看下来,传感器并没有处于正常的工作模式,看不到您配置的全过程,无法直接帮您定位到问题。

  几个思路可以试一下:

1. 您使用的是周期还是中断模式,中断的话/INT寄存器是否使能并正常触发。

2. 参考我们套件相关代码。https://github.com/Infineon/TLV493D-A1B6-3DMagnetic-Sensor

0 点赞
DADA2
Level 3
Level 3
25 sign-ins 10 questions asked 5 questions asked

您好,

文档中给你的是初始化部分,关键初始化部分的,首先发送0xff,理论上器件应该要应答我的,但还没有,我是按照你的数据手册的时序写的,文档中也有示波器实际采集回来的波形。这就很关键了。

到底发送0xFF,是否要有从机的应答,还是不用。

 

0 点赞
DADA2
Level 3
Level 3
25 sign-ins 10 questions asked 5 questions asked

在 Master Controlled Mode中,当配置完(MOD1 & MOD2)和Res (0H)何Res (1H)后。iic的时钟设置为高阻,等待/INT来一个脉冲后,发读地址命令+读取7个读寄存器的地址;还是时钟设置为高阻后,先发读地址命令,等待/INT来一个脉冲上升沿后读取数据。1703501798872.png

0 点赞
julis
Moderator
Moderator
Moderator
10 likes received 25 solutions authored 100 sign-ins

Hi @DADA2 

根据User Manual(Figure 9)对照下你本地代码。

你那边Mod1和Mod2分别是怎么配置的?/INT是否使能?

res的寄存器是预留的,不需要关心,里面的值无意义

若其他正常,先等/INT脉冲后再去读,抓波形看看/INT是否有上升沿

0 点赞
DADA2
Level 3
Level 3
25 sign-ins 10 questions asked 5 questions asked

0cb3d50e2ea81cec020983fa3ee9ba3.png

有几点疑问,如图:第一,按照数据手册给的初始化流程,发送完S FFh P后,是否需要等待30us,还是发送完,直接发送S 00h P后,两者等待30us。

第二,按照数据手册中,reset sensor是要发S 00h  ADDR P,而不是发S 00h P。见图中下划线为红色。

第三,你给的第三步是3. write sensor configuration,但是数据手册初始化流程图要求,要先读出第7,8,9个寄存器的值,并选择对应位填入4个写寄存器。

第四,你问的MODE1,2配置,我配置如下图,用的模式是Master Controlled Mode,我配置的/INT是使能的。

1703561368066.png1703561226180.png

第五,你在回复里说“若其他正常,先等/INT脉冲后再去读,抓波形看看/INT是否有上升沿”,我是示波器能正常抓到/INT的上升沿的。

第六、当我程序将MODE1,2配置完成后,是等待/INT上升沿,发送读命令+读取寄存器的值;还是MODE1,2配置完成后,发送读地址命令,然后等待/INT上升沿,发送读命令+读取寄存器的值。

0 点赞
julis
Moderator
Moderator
Moderator
10 likes received 25 solutions authored 100 sign-ins

@DADA2 

等待30us是为了保证完成reset过程,Factory settings相关的三个寄存是读出来都写给另外三个写寄存器,参考void Tlv493d::begin(TwoWire &bus, Tlv493d_Address_t slaveAddress, bool reset),数据更新后读取函数请参考updateData函数。可以试下在数据读取的时候切换POWERDOWNMODE和MASTERCONTROLLEDMODE 模式看看。这边是从来没有通信成功过吗?还是用着用着出问题了?看起来I2C通信是正常的

0 点赞
DADA2
Level 3
Level 3
25 sign-ins 10 questions asked 5 questions asked

第一,目前是IIC通信正常

第二,现在的问题是,配置完MODE1,2后,用的是Master Controlled Mode模式,

等待/INT的上升沿,就发送读地址命令+读取7个寄存器的数据。根据采集回来的波形,发送完读地址命令后,从机返回ACK为低电平,证明我配置的奇偶校验位没有问题。见MODD1寄存器(如图)。1703647407232.png

第三,第二步第一次发送读地址+读取7个寄存器的数据后,示波器采集回来的波形显示,每隔2.2KHz的时间,就发送读地址+读取7个寄存器的数据操作,证明系统中断是没有问题的。主要是没次读取7个寄存器的数据差距太大了,X,Y,Z有时是FFh,有时是00h,只要采集回来的温度基本保持不变。查看了读取的7个寄存器的值,发现3H的FRM每次都累加的1,Channel的值一直为00.5H的PD始终为0,表示X,Y,Z和温度没有转换完成。1703648272623.png1703648291534.png

0 点赞
julis
Moderator
Moderator
Moderator
10 likes received 25 solutions authored 100 sign-ins

1. 寄存器X/Y/Z/T转换完成,FRM的值才会增加。

2. CH Must be “00” at readout to ensure X/Y/Z/T come from
the same conversion.

您方便的话把相关的code发过来吧,一起分析看下。

0 点赞
lock attach
Attachments are accessible only for community members.
DADA2
Level 3
Level 3
25 sign-ins 10 questions asked 5 questions asked

你看一下。

0 点赞
lock attach
Attachments are accessible only for community members.
DADA2
Level 3
Level 3
25 sign-ins 10 questions asked 5 questions asked

麻烦答复一下,文档中的疑问

0 点赞
julis
Moderator
Moderator
Moderator
10 likes received 25 solutions authored 100 sign-ins

Hi @DADA2 

  1. Every 12 ms a Bx, By, Bz conversion will be measured and once the conversion is completed an interrupt pulse will be sent to master. The master can then read the Bx, By and Bz registers.
  2. Interrupt pin, signals a finished measurement cycle. 是在一次转换完成后生成一个pulse.

             400KHz可以满足要求

0 点赞
julis
Moderator
Moderator
Moderator
10 likes received 25 solutions authored 100 sign-ins

Hi @DADA2 

  您好,您现在“返回的值一在变动,差距挺大的”这个问题解决了吗?现在是其他什么问题。您提交了很多提问帖,无法了解到您目前是什么样的环境状态。请详细描述,若这个问题已经解决的话,请将其接受为解决方案,谢谢!

Best,

julis

0 点赞
julis
Moderator
Moderator
Moderator
10 likes received 25 solutions authored 100 sign-ins
0 点赞