无法在UART上接收

10个帖子/ 0个新帖子
最后发表
sancsoft
离线
最后看到:2个月1个星期前
加入:2015-04-05 02:18
无法在UART上接收

你好,

我们已经创建了一个基于模板项目的自定义项目。我们需要实现的一些东西是一个自定义配置文件(我们已经成功地创建了基于sample128的开始)和UART通信,它将用于与另一个微处理器接口。

UART1使用默认值初始化- 115.2K,奇偶校验禁用,1停止位,8数据位
TX分配给P0.4
分配给P0.5的RX

我使用一个systick模块来增加一个特征值,更新它以测试特征通知,并通过UART输出这个值。UART TX立即工作,没有任何问题- uart_write(buf, size, NULL)调用是通过main进行的。下一步是实现一个基本的轮询机制,通过UART读取命令。作为功能参考,我们一直在使用UM-B-004外围驱动程序v1.4。像uart_write一样,函数uart_read(buf, size, NULL)调用也从main中进行。到目前为止,我们还没有成功地将任何字符接收到所提供的缓冲区中。

已执行以下操作:
-测试两个不同的松下PAN1740评估套件
-通过环回测试,确保FTDI芯片/线缆工作正常
-尝试运行外围示例项目:能够得到菜单输出到控制台,但没有字符被接收(坐在循环等待数据准备在LSR)
尝试运行生产测试(主机应用程序总是返回RX超时状态)

希望得到进一步的指导。谢谢你!

JE_Dialog
离线
最后看到:3个月1个星期前
工作人员
加入:2013-12-05 14:02
你好,这里是为客人准备的

你好,对于自定义配置文件,我将发给你一个教程(草稿)。我们很快就会出版它,但我相信它会有很大的帮助。

对于PAN1740 -我将循环松下支持团队进入这个(wireless@eu.panasonic.coml)

BR JE_Dialog

sancsoft
离线
最后看到:2个月1个星期前
加入:2015-04-05 02:18
谢谢您的回复。我们有

谢谢您的回复。我们已经能够得到一个基于sample128的自定义配置文件来正常工作,但是你提供的教程似乎对进一步的自定义很有用。

到目前为止,我们的主要问题是让UART读取工作。

Ingo
离线
最后看到:7个月4个星期前
大师 松下
加入:2014-01-16 11:19
嗨,这里有一个DSPS的例子

嗨,这里有一个使UART工作的DSPS示例,在应用程序说明中有一些描述。https://pideu.panasonic.de/files/Documents/WM%20Documents/PAN1740/PAN174..。
最好的祝福、国际非政府组织

sancsoft
离线
最后看到:2个月1个星期前
加入:2015-04-05 02:18
由于某种原因,我不能得到

由于某些原因,我无法正确地执行DSPS示例。我认为它与睡眠模式和调试有关,因为在arch_system模块的睡眠模式检查期间,它永远处于循环中。

除了附加的uarttoble、blletouart环缓冲区功能之外,我们的UART的配置似乎与DSPS示例类似。主要的区别是应用程序级UART模块的初始化使用回调函数调用uart_read。根据UM-B-004,我应该能够在没有回调的情况下调用uart_read。我尝试了同样的事情与接收回调和调用uart_read init,但我仍然没有运气。有一些东西我在这里关于UART处理程序-我不应该接收中断由UART处理程序在第一个字节存储到recv FIFO (UART_IIR_FCR_REG初始化为7)?显然,如果没有UART Handler触发,我也不会看到回调。

除了外围示例和生产工具之外,还有其他示例吗?或者任何其他的见解。我很感谢你的帮助。

Ingo
离线
最后看到:7个月4个星期前
大师 松下
加入:2014-01-16 11:19
嗨,在第14.3章第二节

嗨,在“14.3两个PAN1740 USB棒”章节中,config.h文件中描述了你需要做的改变。

sancsoft
离线
最后看到:2个月1个星期前
加入:2015-04-05 02:18
之后我确实试过了

我实际上尝试了这后,我的上一个答复,但不幸的是,再次没有任何运气-我得到一个硬故障和暂停在硬故障调试软件断点。调用堆栈表明故障发生在uart_sps_timeout_data_avail ISR (rf init期间发生的中断)期间。进一步的调试定位当接收缓冲区值被设置为读取数据时发生的错误。

Joacimwe
离线
最后看到:1年10个月前
大师
加入:2014-01-14 06:45
我没有测试uart_

我没有测试过uart_家族,但uart2_在这里工作得很好。为了让uart2在devkit上工作,我做了以下事情:

在da14580_config.h中将#undef CFG_PRINTF更改为#define CFG_PRINTF。
在peripe_setup .c中,在GPIO_reservations和set_pad_functions中修改uart (GPIO_PORT_0, GPIO_PIN_4, GPIO_PIN_5, gpio_pin_tx)使用的gpio端口和引脚。

然后在应用程序中,现在可以在包含uart.h之后使用uart2_write(或arch_printf,如果包含app_console.h)。
调用uart2_read(buf, length, read_callback),其中buf是一个缓冲区,长度是系统调用read_callback之前要读取的字节数。至少对于uart2_read,您不能传递null回调,因为那样就会调用ASSERT_ERR(0)。在read_callback中,你现在可以处理读字节了。

sancsoft
离线
最后看到:2个月1个星期前
加入:2015-04-05 02:18
我把申请改成了

我将应用程序更改为使用UART2外设,但仍然没有接收到中断(UART2_Handler)。

作为完整性检查,我使用SDK v3.0.8.0版本的新副本创建了一个新文件夹,并打开了模板项目。然后,我对da14580_config.h和外围_setup.c执行了相同的修改,添加了带有UART接收回调的uart2_read调用,在传输到DA14580时,我仍然没有看到UART2_Handler中断。值得注意的是,我确实看到UART2 RX中断在启动时发生,idd为RECEIVED_AVAILABLE。uart2_rec_data_avail_isr调用uart2_data_rdy_getf返回一次TRUE,因此,如果指定读大小为1字节,第一个uart2_read调用将执行回调。

sancsoft
离线
最后看到:2个月1个星期前
加入:2015-04-05 02:18
更新:我们决定绘制

更新:我们决定将RX映射到pin 0.2作为另一个调试工作,现在在接收字节时将触发UART中断。

虽然这是一个好消息,但我们的布局设计已经将RX映射到引脚0.5。主要的怀疑是,有些东西保持0.5的低或高,破坏任何外围功能,使用该大头针。同样的行为也在我们的PAN1740 USB设备上表现出来。