2397356_zh-CN

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2397356_zh-CN

2397356_zh-CN

68LC302 和串行引导功能

大家好。希望到了 2026 年,仍然有人对 LC302 有一些了解。

我一直在做一个涉及 LC302 的小项目,我对使用串行引导功能很感兴趣。我就是弄不好,不知道是不是需要特别注意什么才能让它正常工作。

我已经尝试了我能想到的一切办法,目前正在考虑更换我现有的 LC302,以防它出现故障,但在采取这一措施之前,我想先问问这个问题。仅供参考,包装上的标记是(带有摩托罗拉标志):

MC68LC302PU25CT
2J29A
QQDJ0316

我用5V电源供电。

基本上,我无法让它回显我发送给它的任何内容。我偶然看到一篇帖子,似乎描述了同样的问题,但我遇到的问题似乎并不相同: https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/We-have-been-using-the-68LC302-for-decade...

我用示波器/逻辑分析仪尝试过/观察到以下现象:

我尝试过使用PLL模式和不使用PLL模式。在 PLL 模式下,我使用了一个 4MHz 的振荡器(4.192MHz 的振荡器很难找到)。在这种模式下,我使用了 9174 波特率(4MHz*4,/109,/16)。如果没有锁相环,我使用了一个 20MHz 的振荡器,波特率为 11467。我使用信号发生器输入 4.192MHz 信号,并使用了数据手册中给出的波特率,但仍然没有成功。

如果我将 PA7 拉高以禁用引导模式,我可以观察到 AS 引脚上有一些短暂的活动,这大概是因为 CPU 尝试从外部存储器读取其复位向量。如果我将 PA7 拉低以启用引导模式,我就不再观察到这种活动了,大概是因为 CPU 处于 RESET 状态。

我很快就发现 PA7 上似乎有一个电流源,并且输出大约 3-4mA 的电流(用万用表电流模式测量),超过了我的外部下拉电阻,导致逻辑高电平。我觉得这电流非常大,有人能解释一下这是为什么吗?这似乎与上述导致 PA7 意外拉高的帖子略有相关。或许是我的零件有问题?

Reset 和 HALT 同时钳位(过去几年我在业余项目中积累了丰富的 68k 经验)。

我已经反复检查了所有接线,包括 TX/RX 信号的极性,甚至为了以防万一,还将 SCC1 的流控制输入拉到了反相状态。我用示波器测量过,我的 USB 转串口适配器确实能产生我请求的波特率,而且将 TX 连接到 RX 可以让 PuTTY 回显我发送的字符,所以我相当确信那里没有什么异常情况发生。

我还没有连接任何内存总线,因为目前我只是想看看能否通过串口加载一些代码并让 LED 闪烁,但是 BUSW 引脚已经绑定为 16 位总线操作,这重要吗?

在开始拆焊之前,大家还有什么其他建议吗?

谢谢您!

Re: 68LC302 and serial bootstrap feature

你好,谢谢你的留言。

我已经确认我使用的是与 SCC1 相关的引脚。

我的电路是安装在带绕线的万用板上的,所以除了我绕的线之外,其他任何引脚都不会受到其他因素的影响。我用万用表验证过,复位和停止信号同时钳位,并且电压达到 0V,所有引脚都达到所需的电压电平,没有浮空引脚。

另外,正如我在帖子中提到的,我也尝试过使用信号发生器提供的 4.192MHz 信号和数据手册中规定的波特率,但这并没有帮助。

抱歉,我之前说我把 CD1 连接到了它的否定状态,我只是把术语搞混了,它实际上是接地的(钳位),为了保险起见,CTS1 也接地了。

我尝试发送 576 字节的数据进行测试,看看是不是因为某种原因它没有回显这些数据,但仍然能够正确接收它们。

谢谢!

Re: 68LC302 and serial bootstrap feature

你好,

我首先要检查的是CD1 。对于 LC302 串行引导回显路径,手册中说 SCC 硬件会将接收到的字符回显到TXD1上,但CD1必须置位;在 SCC1 上,外部CD1引脚必须拉低。如果你将 SCC1 调制解调器控制输入拉到“否定”状态,这可能就是你看不到回声的原因。

LC302启动说明中的其他要点:

  • 通过在硬复位期间采样PA7 = 0来启用串行引导,其中硬复位意味着RESETHALT同时钳位。
  • PA7不能悬空;RESET时必须故意将其拉高或拉低。
  • SCC1 接收到的前 576 个字节存储在双端口 RAM 中,并且接收到的每个字符都会从TXD1回显出来;设备只有在接收到所有 576 个字节后才会退出启动模式。
  • 对于内部时钟引导,记录的标称时钟假设为 4.192 MHz 或 32.768 kHz,SCC 编程为大约 9600 波特。
  • 在异步 UART 模式下,使用外部时钟选项时,比特率为TCLK1/RCLK1时钟速率的 1/16。

所以在更换零件之前,我会先尝试这种最简化的配置:

  1. 同时按住RESETHALT键。
  2. PA7/启动低电平拉下,并用足够强的下拉电阻来克服您的板上的任何阻力。
  3. 使用PA5选择所需的时钟模式:
    • PA5 = 0 :内部启动时钟模式。
    • PA5 = 1 :外部时钟位于TCLK1/RCLK1倍波特率。
  4. PA12/MODCLK0与时钟源保持一致;手动在硬复位期间对其进行采样,以区分标称EXTAL频率。
  5. CD1低。
  6. 保持RXD1TXD1RCLK1TCLK1接线与 SCC1 一致,而不是与 SCC2 一致。LC302 描述中的 SCC1 启动功能。
  7. 发送完整的 576 字节测试流,而不是只发送一个字符,尽管一旦接收正常工作,回显应该逐个字符地出现。

来自PA7的 3–4 mA 电流很可疑。根据数据手册,输入漏电流值最大仅为 20 µA,远低于毫安级。由于PA7也是一个双向多功能引脚,如果其他东西正在驱动它,或者该器件已经离开复位采样状态,则可能会发生争用,但在复位作为启动期间,读取低电平不应该需要灌入几毫安的电流。我会检查PA7上是否存在板级上拉/驱动器/焊接桥,验证封装引脚方向,并在RESETHALT同时主动钳位时测量电流。

还有一点需要注意:你尝试的 4 MHz 内部时钟并不等同于 4.192 MHz。如果调整另一侧,对于某些 UART 来说可能足够接近,但文档中记录的内部引导模式假定标称 LC302 时钟值,因此为了消除变量,我会使用 4.192 MHz 和文档中记录的波特率,或者使用外部时钟模式并提供干净的TCLK1/RCLK1 = 16 × baud

 

此致问候

タグ(1)
評価なし
バージョン履歴
最終更新日:
昨日
更新者: