Part Number:PGA460-Q1Other Parts Discussed in Thread:PGA460, ENERGIA, TIDA-01597, SN65HVDA100-Q1
我使用OWU通信方式控制PGA460,我想将数据通过串口的方式传输到PC端,但是串口一直显示ERROR – Did not receive measurement results!。
而且这个程序以前是可以用的。请问是怎么回事?
Kailyn Chen:
您好,以前这个程序是不是UART串口通信的,现在要改成OWU通信?
如果是的话建议参考这篇E2E上的帖子,详细给出了如何从UART转为OWU通信,并给出了测试结果和测试code,希望对您有所帮助:
https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/939554/pga460-q1-change-communication-from-uart-mode-to-owu/3473903#3473903
,
user6477655:
我试了不行啊,现在连UART方式都没有数据返回了
,
Kailyn Chen:
您好,您的这个问题我帮您再确认一下。
之前的程序UART可以使用,但是用在OWU上,串口一直显示ERROR – Did not receive measurement results!对吧?
,
Kailyn Chen:
另外我想和您确认下,您使用的是PGA460 GUI吗?如果是的话,在 OWU 模式下, GUI 不完全支持处理返回数据.
您参考下PAG60的troubleshooting guide 5.12的介绍:https://www.ti.com/lit/an/slaa733/slaa733.pdf
,
user6477655:
UART也是没有结果返回
,
user6477655:
我用的串口,直接在电脑显示
,
Kailyn Chen:
https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1059890/pga460-owu-communication-mode
您好,您的这个问题我已经帮您提交到英文E2E上了,有什么问题您可以直接在上面跟进。
,
user6477655:
抱歉,我没办法在英文论坛回复,所以麻烦你回复一下。我的设计是参照TIDA-01597中的OWI方式设计的,程序使用的是energia中的getdisance
,
user6477655:
下面是我的寄存器配置
USER_DATA1 = 0x00;USER_DATA2 = 0x00;USER_DATA3 = 0x00;USER_DATA4 = 0x00;USER_DATA5 = 0x00;USER_DATA6 = 0x00;USER_DATA7 = 0x00;USER_DATA8 = 0x00;USER_DATA9 = 0x00;USER_DATA10 = 0x00;USER_DATA11 = 0x00;USER_DATA12 = 0x00;USER_DATA13 = 0x00;USER_DATA14 = 0x00;USER_DATA15 = 0x00;USER_DATA16 = 0x00;USER_DATA17 = 0x00;USER_DATA18 = 0x00;USER_DATA19 = 0x00;USER_DATA20 = 0x00;TVGAIN0 = 0xAA;TVGAIN1 = 0xAA;TVGAIN2 = 0xAA;TVGAIN3 = 0x82;TVGAIN4 = 0x08;TVGAIN5 = 0x20;TVGAIN6 = 0x80;INIT_GAIN = 0x60;FREQUENCY= 0x8F;DEADTIME = 0x09;if (comm == 2){PULSE_P1 = 0xA0 | 0x04;}/*else{PULSE_P1 = 0x04;}*/PULSE_P2 = 0x10;CURR_LIM_P1 = 0x55;CURR_LIM_P2 = 0x55;REC_LENGTH = 0x19;FREQ_DIAG = 0x33;SAT_FDIAG_TH = 0xFE;FVOLT_DEC = 0x7C;DECPL_TEMP = 0x4F;DSP_SCALE = 0x00;TEMP_TRIM = 0x00;P1_GAIN_CTRL = 0x09;P2_GAIN_CTRL = 0x09;
,
Kailyn Chen:
好的,E2E那边我可以帮您跟进。 您是使用的自己的板子还是EVM板子?
我这边将您的寄存器配置先回复给美国工程师。
,
user6477655:
自己的板子和EVM都是这个问题
,
Kailyn Chen:
嗯美国工程师已经给您回复了,您参考下:
https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1059890/pga460-owu-communication-mode
如果有什么问题,再跟进。
,
user6477655:
我尝试将PULSE_P1设置为
if (comm == 2) { PULSE_P1 = 0x80 | 0x04;}
但是结果还是不行
,
Kailyn Chen:
好的,我已经将您的问题反馈给美国工程师了。
另外,如果您需要在英文论坛上跟进,您这边需要注意的是使用公司邮箱,个人邮箱是没法跟进的。
,
Kailyn Chen:
不好意思,刚才回复的是另一款sensor的问题。
关于PGA460 OWU通信的问题,我这边再帮您push以下,您可以及时查看美国工程师的回复,如果您不能在英文论坛上跟进,我这边帮您翻译是可以的。
,
Kailyn Chen:
使用的是自己的板子出现的此类问题是吗?美国工程师希望您能尽可能多提供下信息,以便分析。
,
user6477655:
我该怎么启动IO口通信,目前板端只有IO,电源和地接口,以下是电路图
,
user6477655:
我是自己制作的板子
,
user6477655:
麻烦转达一下。谢谢!
,
Kailyn Chen:
您好,美国工程师有回复,和您确认下是否再主控和PGA460之间使用SN65HVDA100这类收发器,从而判断是否通过OWU能收和能发?
Has the customer been able to probe the communication line to verify the device is sending and receiving data over OWU?
Additionally, is the customer using a transceiver like the SN65HVDA100-Q1 between the microcontroller and the PGA460?
,
user6477655:
对的,我使用SN65HVDA100-Q1 连接的
,
user6477655:
谢谢
,
Kailyn Chen:
好的,我这边会再去反馈。可能由于圣诞节的原因美国工程师的回复稍微慢一些, 给您带来不便非常抱歉。
,
user6477655:
我的TXD和RXD和MSP430连在一起的,没错,二极管我放反了抱歉。
谢谢您的回复
,
user6477655:
我发现好像是我的程序有问题,请问我只用IO口该怎么改呢
,
Kailyn Chen:
二极管纠正过来还是没能解决问题是吗? 现在确定是程序的问题?
为了能够尽快解决您的问题,建议提供较详细的信息,比如您的程序您发现哪里的问题,程序以前不是可以用的吗?
,
user6477655:
没有,我以前用的板子是BOOTXL-PGA460,但是换了板子 程序没改,请问我该怎么改呢
,
Kailyn Chen:
你上面说自己的板子和EVM板子都是这个问题。那之前使用BOOTXL-PGA460 是没有问题的对吧?
先把问题弄清楚,使用自己的板子,按照TIDA-01597中的OWI方式设计的,程序使用的是energia中的getdisance, 然后使用OWU通信方式,有问题对吧?
,
user6477655:
对的
,
user6477655:
程序energia中的getdisance和BusDemo都用过。谢谢你的回复!
,
Kailyn Chen:
好的,我去确认一下。
,
Kailyn Chen:
已将将您的问题提交到英文E2E上并跟进了,您这边可以随时查看美国工程师的回复:
(+) PGA460: OWU communication mode – Sensors forum – Sensors – TI E2E support forums
,
user6477655:
您好
很抱歉回复这么晚,请问我该怎样验证是否正常工作呢?而且我的电路基本和TIDA-01597中的OWI差不多的。
期待您的回复
,
Kailyn Chen:
您的第一个问题不是说串口一直显示ERROR – Did not receive measurement results!? 是用的自己的板子按照TIDA-01597 设计的。
您现在用自己的板子,OWU通信是有问题的,出现报错:ERROR – Did not receive measurement results! 我是这么理解您的问题的。
您现在问怎样验证是否正常工作,指的是自己的板子吗?
,
user6477655:
对的,感谢您的回复
,
user6477655:
我该怎么办呢
,
Kailyn Chen:
您好,已经将您的问题提交到英文E2E上了。
https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1059890/pga460-owu-communication-mode
,
user6477655:
您好!感谢您的帮助
我现在使用寄存器读写的代码
byte pga460::registerRead(byte addr){ byte data = 0x00; byte temp = 0; if (comm == 2) { owuShift = 1; // OWU receive buffer offset to ignore transmitted data } else { owuShift = 0; } pga460SerialFlush(); regAddr = addr; byte buf9[4] = {syncByte, SRR, regAddr, calcChecksum(SRR)}; if (comm == 0 || comm == 2) // UART or OWU mode { Serial1.write(buf9, sizeof(buf9)); } if (comm == 3) // SPI mode { spiTransfer(buf9, sizeof(buf9)); } delay(10); if (comm == 0 || comm == 2) // UART or OWU mode { for(int n=0; n<3; n++) { if(n==1-owuShift) { Serial1.write(buf9, sizeof(buf9)); //data = Serial1.read(); // store read data } /* else { temp = Serial1.read(); }*/ } } if (comm == 3) // SPI mode { spiMosiIdle(3); data = misoBuf[1]; } return data;}
在energia代码:
Serial.begin(19200); ussc.initBoostXLPGA460(2,19200,0); }void loop() { // put your main code here, to run repeatedly: ussc.registerWrite(0x14, 0xAF); ussc.registerWrite(0x15, 0xFF); ussc.registerWrite(0x16, 0xFF); ussc.registerWrite(0x17, 0x2D); ussc.registerWrite(0x18, 0x68); ussc.registerWrite(0x19, 0x36); ussc.registerWrite(0x1A, 0xFC); ussc.registerWrite(0x1B, 0xC0); ussc.registerWrite(0x1C, 0x8C); ussc.registerWrite(0x1D, 0x00); ussc.registerWrite(0x1F, 0x12); ussc.registerWrite(0x1E, 0x01); ussc.registerWrite(0x14, 0xAF); ussc.registerWrite(0x15, 0xFF); ussc.registerWrite(0x16, 0xFF); ussc.registerWrite(0x17, 0x2D); ussc.registerWrite(0x18, 0x68); ussc.registerWrite(0x19, 0x36); ussc.registerWrite(0x1A, 0xFC); ussc.registerWrite(0x1B, 0xC0); ussc.registerWrite(0x1C, 0x8C); ussc.registerWrite(0x1D, 0x00); ussc.registerWrite(0x1F, 0x12); ussc.registerWrite(0x1E, 0x01); Serial.print("TVGAINO:"); Serial.print(ussc.registerRead(0x14),HEX);
但是返回的值一直是0
,
Kailyn Chen:
好的,已经在英文论坛上跟进。