你好,
我们已根据模板项目创建了一个自定义项目。我们需要实现的一些事情是自定义配置文件(我们已成功创建了基于示例128的启动开头)和UART通信,该通信将用于与另一个微处理器接口。
使用默认值初始化UART1 - 115.2K,奇偶校验,1个停止位,8个数据位
Tx分配给p0.4
rx分配给p0.5
我正在使用一个Systick模块来递增特征值,将其更新为测试特性通知,并通过UART输出此值。UART TX立即工作,没有任何问题 - UART_WRITE(BUF,SIZE,NULL)调用是main的呼叫。下一步是实现通过UART读取命令的基本轮询机制。作为函数参考,我们一直在使用UM-B-004外设驱动程序v1.4。函数UART_READ(BUF,SIZE,NULL)调用是由MAIN搭配的MAIN搭配。到目前为止,我们还没有成功接收任何字符到提供的缓冲区。
已执行以下操作:
- 测试两种不同的松下Pan1740评估套件
- 确保FTDI芯片/电缆通过环回测试正常工作
- 尝试运行运行外设示例项目:能够将菜单输出到控制台,但没有接收字符(位于LSR中准备好的循环等待数据)
- 尝试运行生产测试(主机应用程序始终返回RX超时状态)
Further guidance would be much appreciated. Thank you.
在那里,对于自定义档案,我将向您发送教程(草案)。我们很快就会发表它,但我相信这将是一个很大的帮助。
对于Pan1740 - 我将循环Panasonic Suport团队(wireless@eu.panasonic.com.)L.
BR JE_DIALOG.
谢谢回复。我们已经能够基于Sample128的自定义档案,以正常工作,但您提供的教程似乎对进一步自定义有用。
截至目前,我们的主要问题是让UART阅读工作。
嗨,有一个具有UART工作的DSP示例,并且在应用程序注意中描述了一点。https://pideu.panasonic.de/files/documents/wm%20documents/pan1740/pan174 ...
最好的问候,Ingo
出于某种原因,我无法让DSP示例正确执行。我相信它与睡眠模式和调试有关,因为它在Arch_System模块中的Sleep_Mode检查期间永久地坐在循环中。
除了额外的uarttoble, bletouart环buffer functionality, it appears that our UART is configured similarly to the DSPS example. The main difference is the initialization of the application-level UART module calling uart_read with a callback function. According to UM-B-004, I should be able to call a uart_read without a callback. I attempted the same thing with a receive callback and calling uart_read upon init but I still have no luck. There is something I'm missing here regarding the UART Handler - shouldn't I be receiving an interrupt handed by UART Handler upon the first byte stored into the recv FIFO (UART_IIR_FCR_REG initialized to 7)? Obviously without the UART Handler triggering, I won't see the callback either.
除了我可以检查的外围示例和生产工具之外还有另一个例子吗?或任何其他额外洞察力。我很欣赏帮助。
嗨,章节“14.3二PAN1740 USB sticks" the change is described you need to do in the config.h file.
我实际上已经尝试过这个my last reply but unfortunately again without any luck - I get a hard fault and halts at the hard fault debugger software breakpoint. The call stack indicates the fault occurs during the uart_sps_timeout_data_avail ISR (interrupt occurring during rf init). Further debugging pinpoints the fault occurs when the receive buffer value is set to the read data.
我没有测试过uart_family but uart2_ works well here. To get uart2 working on the devkit, I did the following:
将#undef cfg_printf更改为da14580_config中的#define cfg_printf.h。
In periph_setup.c, change the gpio port and pins to use for uart (GPIO_PORT_0, GPIO_PIN_4 for TX and GPIO_PIN_5 for RX) in GPIO_reservations and set_pad_functions.
然后在该应用程序中,现在可以使用UART2_WRITE(或者ARCH_PRINTF如果包含APP_CONSOLE.H),包括UART.H.
呼叫UART2_READ(BUF,LENGLE,READ_CALLBACK),其中BUF是缓冲区,长度是在系统调用READ_CALLBACK之前读取的字节数。至少对于UART2_READ,您无法传递NULL回调,因为assert_err(0)被调用。在read_callback中,您现在可以处理读字节。
我将应用程序更改为使用UART2外设,并且仍未收到中断(UART2_Handler)。
As a sanity check, I created a new folder with a fresh copy of the SDK v3.0.8.0 and I opened up the template project. I then performed the same modifications to da14580_config.h and periph_setup.c, added uart2_read calls with a UART receive callback, am still not seeing a UART2_Handler interrupt when transmitting to the DA14580. Something that may be of note is that I do see an UART2 RX interrupt occurring on startup with an idd of RECEIVED_AVAILABLE. The uart2_rec_data_avail_isr call to uart2_data_rdy_getf returns TRUE once and therefore the first uart2_read call will perform a callback if a read size of 1 byte is specified.
更新:我们决定将Rx映射到0.2作为另一个调试工作,并且在接收字节时触发UART中断。
虽然这是一个好消息,但我们的布局设计具有RX映射到0.5。主要怀疑是某些东西保持0.5个低或高,破坏了使用该引脚的任何外围功能。相同的行为在我们的两个Pan1740 USB设备上都表现出来。