主题中讨论的其他器件: TM4C1294NCPDT、 EK-TM4C129EXL
如何使用此电缆(USB 一侧-> GND、VCC、TX、RX 另一侧)连接到电路板的 UART 0?
是否有直接连接的方法或我是否需要焊接?
谢谢。
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.
如何使用此电缆(USB 一侧-> GND、VCC、TX、RX 另一侧)连接到电路板的 UART 0?
是否有直接连接的方法或我是否需要焊接?
谢谢。
谢谢。 FTDI 线缆有一端常规 USB 连接、而另一端4线- VCC、GND、Tx 和 Rx -所有公头都通过以下方式焊接到 launchpad 板上:
VCC (红色)-> 5V
GND (黑色)-> GND
TX (绿色)-> PA1 (引脚76)
RX (白色)-> PA0 (引脚74)
我现在要做的是向闪烁程序 make 添加代码、它每隔几秒通过 UART0发送一些数据。 我正在使用此电缆并编码客户端 PC 应用程序以打开串行 COM 端口来读取数据-只是为了确保通信通过 UART0工作。
当我用电缆连接设备时、设备会被识别、但出现错误-请参阅所附文件。 这是否正常(当前上传的设计是原始的闪烁示例)?
安装驱动程序后、我可以看到设备正常-"Prolific USB to serial"。 我尝试执行了"PL2303_CheckChipVersion_v1006.exe"、该文件随驱动程序提供了正确的 COM 端口、并得到了良好的响应:
我现在要做的是使用闪存器工具通过 UART 对芯片进行编程、以确保该过程正常进行:
当我尝试"program"时、我收到以下错误:
我在使用 boot_demo1、boot_demo2和 boot_serial 示例通过常规 microUSB 连接对芯片进行编程后尝试执行此操作-这些示例都不起作用。
我在这里出了什么问题?
好的、太好了。 我刚刚尝试使用控制台闪存实用程序、并得到相同的错误:
--------------------------
C:\ti\TivaWare_C_Series-2.1.3.156\tools\bin>sflash.exe c:\safeshoot\blinky_slow.bin -p 0x4000 -c 7 -b 115200 -d -s 252
应用程序:C:\safeshoot t\blinky_slow.bin
程序地址:0x4000
COM 端口:\\.\COM7
波特率:115200
擦除闪存:
发送下载命令失败
--------------------------
我在闪存擦除之后用"boot_demo"尝试过它、之后用"boot_demo"尝试过它-所有程序都出现相同的故障。
该实用程序的源代码包含在其中、因此在我们解决此问题后、它将对我的实施方案大有帮助。
您好、Ralph。
最后通过 UART 对其进行编程后、我在 C#中实现了上传协议、并在将 BOOT_serial 编程到芯片中时尝试在调试 C#端应用程序时上载 bin 文件。
我不确定这是不是原因、但我无法使用 UART 的 LM Flasher 上载任何其他 bin 文件-仅从 USB 上载、这也意味着我无法从我的 C#应用程序上载此文件。
我上载了 UART_echo 程序、运行正常-我能够接收通过 UART 发送的字节、但在执行以下操作(之前的步骤)后:
整个闪存擦除
使用"TivaWare_C_Series-2.1.3.156\examples\boards\ek-tm4c129exl\boot_serial\ccs\Debug\boot_serial.bin"对芯片进行编程
使用之前的相同配置再次将配置更改为手动(UART)
尝试对"TivaWare_C_Series-2.1.3.156\examples\boards\ek-tm4c129exl\blinky\ccs\Debug\blinky.bin"进行编程
按下"Program"按钮时、我会遇到与之前相同的错误。
有什么想法吗?
我检查的另一件事是:
我可以在"TivaWare_C_Series-2.1.3.156\boot_loader\BL_UART.h"中看到 UART 的 Tx/Rx 的以下定义
//
//
//这定义了引导加载程序正在使用的 UART 接收引脚。
//
//
#define UART_RX (1 << UART_RXPIN_POS)
#define UART_RX_PCTL (UART_RXPIN_PCTL <<(4 * UART_RXPIN_POS))
//
//
//这定义了引导加载程序正在使用的 UART 发送引脚。
//
//
#define UART_TX (1 << UART_TXPIN_POS)
#define UART_TX_PCTL (UART_TXPIN_PCTL <<(4 * UART_TXPIN_POS))
对吗? 它是否将 PA0和 PA1引脚设置为 Tx/Rx?
BTW -是否有调试 boot_serial 的方法? 它没有"main"、如果我可以在引导加载程序的 UARTSend/UARTReceive"调用上执行 BP、那将是一件好事。
谢谢
您好、Liran、
关于 BL_UART.h 问题、如果您查看文件顶部的#define 列表、您可以看到 UART 映射到 UART0_BASE 和引脚 A0/A1、这是正确的。
我以前没有调试过引导加载程序、因此我不确定、但在这些调用中放置 BP 时、理论上您应该能够在 bl_packet.c 文件中执行该操作。 SendData、FlushData 和 ReceiveData 函数与您所使用的引导加载程序的函数是宏式的、因此对于 UART、这些函数将指向:
#ifdef UART_ENABLE_UPDATE #define SendData UARTSend #define FlushData UARTFlush #define ReceiveData UARTReceive #endif
关于为什么引导加载程序问题从您那里返回、我恐怕没有太多优惠、因为这听起来是您的操作顺序问题、或者可能是编译和下载代码时的问题。
你(们)好。
我终于发现了为什么闪存 boot_serial.bin 后无法通过 UART 上传的问题-我必须选中"编程后重置 MCU"才能使其正常工作。 当我来自 Arduino 世界时、我不知道编程结束时它不会重新启动-此问题最终得到解决。
但是-我有几个问题:
1.当我通过单击 boot_demo1上载 boot_demo1、然后-> debug 时、LED 开始闪烁、但如果我断开设备的电源线(关闭电源)、然后重新连接、LED 不会闪烁-为什么? 该程序是否应该以相同的方式启动断电/上电?
2.有时、当我单击项目时、项目不会变为活动状态、例如-我无法使 boot_demo2处于活动状态(请参阅图片2以了解如何打开它、并参阅3 -因为它在单击后不会变为活动状态)-为什么会这样? 如果我尝试使用 "open project from file system"仅打开嵌套 boot_demo2/ccs 文件夹->它可以被激活、但不会编译。
3.我无法使 boot_serial 处于活动状态、因此无法对其进行调试-请参阅图片1 (我注意到它没有 main.c?)。
我已经为芯片创建了一个新项目、并通过它执行了闪烁的项目、以查看我需要进行哪些项目更改才能使其正常工作、并使其正常工作。 下一步是将引导加载程序代码添加到该项目中、使其闪烁并侦听来自 UART 的编程、但我需要一个工作示例、我可以对其进行调试、以了解我需要在项目中实现什么。
BOOT_DE演 示1的工作方式很奇怪、正如我在 Q1中所述、但即使我在按下 SW1 (恰好在 DEBUG->START 之后)后尝试上载程序、它也不会加载并显示常规通信错误。
谢谢
调试项目与使用 LM Flasher 加载编译的映像的行为似乎不同:
在 Code Composer Studio 中、"blinky"处于活动状态->按"Debug"、然后按"Resume"按钮->结果是 LED 开始闪烁
芯片断电/通电- LED 闪烁-这很好。
从 LM Flasher 应用程序:
1.已检查"编程后重置 MCU"、地址0x0、配置快速设置为 TM4C1294XL Launchpad、端口:JTAG (通过 USB 上传)
2.使用"c:\Users\Developer\workspace_v7\boot_serial\Debug\boot_serial.bin"(用于项目的相同文件夹)对器件进行编程
3.程序成功
4.在 LM Flasher 中-更改为手动配置(UART 设置)
5.选择图像"c:\Users\Developer\workspace_v7\blinky\Debug\blinky.bin"
6.程序地址0x4000、选中"程序后重置 MCU"
7."program"按钮->成功。
8.没有 LED 闪烁
我已尝试关闭/打开设备电源,但仍然没有闪烁。 原因是什么? 0x4000是对其进行编程的正确地址吗?
您好、Liran、
您是否已将.cmd 文件中的 app_base 更改为 blinky 地址为0x4000并调整代码长度以正确反映新范围?
#define APP_BASE 0x00004000 #define RAM_BASE 0x20000000 //系统存储器映射*/ 存储 器{ /*存储在内部闪存中并从内部闪存执行的应用程序*/ 闪存(RX):origin = app_BASE,length = 0x000fc000 /*应用程序使用内部 RAM 进行数据*/ SRAM (rwx):origin = 0x20000000,length = 0x00040000 }
如果不可能、CCS 会覆盖您的引导加载程序、因此似乎不会有太多问题、但在 LMFlash 中、您无法正确加载程序。
请注意、上述代码来自 boot_demo1示例的.cmd 文件。
很多人——即将呼吁“众笑规则”(因为 Thread 已扩展 到3个论坛页面——28个“背面”)——真的希望(“这是”)证明(最后)正确!
Thread 的标题"使用 FTDI 线缆连接到芯片" - 具有"小"关系(待人友好)-与一直在曲折中的帖子之间的关系-始终如一地找到(近)-此处... (至少、正如拉尔夫一样、这个线程应该(正确)被斩成"适当" 的-论坛条目。
我们很高兴海报成功(希望)-但看到( 无聊和不准确)的“FTDI 线缆”“却“厌倦”-每天(几乎)在论坛上飞溅!
[引用 user="Liran Sorani"]我建议您跳过它。
这有点难做-(错误主题行)证明这么长-它溢出到两行! 是否真的有必要(不停地)提醒我们注意、在 PC 的 USB 和 MCU 的 UART 之间使用 FTDI 线缆(流动)? (您可以编辑主题行-减少其影响...)
BTW -我是一名用户说明人(但在 该供应商的产品销量中、实现了(部分)显著的销量) 并且相信任何此类"主题主题线程"都与"无法搜索"和"排气"相框、他们可能(否则)受益于您和供应商精心制作的几个要点...
(存在宰杀规则... 很好的理由!) 而且、多个论坛用户对我进行了 PM -要求从这个正在进行的(涉及极少 FTDI)线程中获得一些"优先"。 (您是否认为 FTDI 可能会证明此类重复(表示极大的困难/混乱)不公平、因此不会被认可? 这 一事实是否应该-不要进入您的意识?)