历史上的今天
返回首页

历史上的今天

今天是:2025年04月18日(星期五)

正在发生

2020年04月18日 | 将JZ2440调试串口改成COM2

2020-04-18 来源:eefocus

众所周知,JZ2440 V2很小巧,精致。今天单就JZ2440的串口来讨论一些问题。我们在用串口进行调试的时候,需要用JZ2440自带的一根USB线连接电脑USB口和开发板的USB-com1口。先来看一下JZ2440的串口大致连接图:
这里写图片描述
从S3C2440芯片上引出TXD0和RXD0到芯片PL2303,大家都知道PL2303是干嘛用的。在单片机开发板上一般都用这个芯片,它的作用就是USB转TTL电平,经过PL2303的转换之后,电脑和开发板即可通信,设置好参数后也就能够显示出开发板的打印信息了。JZ2440在这一点上还有一处可以说说,就是它没有使用其他品牌开发板常用的RS232 DB9接口,这在很大程度上减小了开发板的体积,同时也节减了USB转串口线的花费,可谓一举两得。其他开发板一般是使用哪种接口呢?如下图所示:
这里写图片描述

其串口工作原理也是一样的,只是接口不同而已,这里也有一个图示:
这里写图片描述

搞懂了串口工作时的连线图之后就可以在此基础上进行修改,以便解决实际使用中遇到的问题。问题马上就来了,在用JZ2440开发时,串口是在SecureCRT上输出信息的。在输出信息时,偶尔会使电脑蓝屏。这种情况多发生在有大量数据要显示的时候,比如开机后,执行命令ls -l /dev 可能就会导致电脑蓝屏。于是我将系统换为XP,用了一段时间,没有出现蓝屏,所以应该是驱动的原因。由于使用习惯的问题,随后我的系统从XP升级到了Win7 ,Win8 ,Win8.1 .在使用JZ2440时,又频繁地出现了蓝屏问题,并且这个PL2303的驱动就像DNW的驱动一样,特别难安装。不过最终驱动还是装上了,驱动日期是2010/10/7 ,这个时间点之后的PL2303装上之后无法使用。这个问题苦恼了很久,经常蓝屏,严重影响开发效率,并且蓝屏之后电脑很久之后才能启动,甚是不爽。细细想来,这个问题的并不是由于JZ2440板子的问题,只是因为系统原因,对PL2303芯片的支持不是很到位。为了解决这个问题,我想弃用板子自带的调试串口。毕竟板子上还扩展有三个TTL串口可以用嘛。理论上没有理由不行啊,所以打算尝试一下。我又仔细的看了一下JZ2440的原理图,发现了下面的连线图:
这里写图片描述
有三个TTL串口可供选择,但是com1接口与USB-COM1来同一处,所以避免不必要的麻烦,我打算使用com2来充当调试串口。如果直接在电脑与开发板之间接一条线是肯定不行的。原因很简单嘛,电平不一样,两者是无法通信的。仿照原有电路,我找到了下面的几个设备:
这里写图片描述
这里写图片描述
这里写图片描述
有了这两个设备不就成了?另外一路调试串口呼之欲出。但是这也只是硬件上的连线而已,下面是软件部分的修改(需要重新编译uboot和内核):1.首先修改的是uboot部分,修改文件uboot/include/configs/100ask24xx.h ,根据具体的板子找对应的文件即可。

#define CONFIG_SERIAL1          1  


改为

#define CONFIG_SERIAL2          1


修改这一处,目的是告诉bootloader, 系统启动时要把bootloader的调试信息输出到串口 com2 上。那到底哪些才是bootloader的调试信息呢?在下面:

U-Boot 1.1.6 (Sep 19 2014 - 22:44:53)

DRAM:  64 MB

Flash:  2 MB

NAND:  256 MiB

In:    serial

Out:   serial

Err:   serial

UPLLVal [M:38h,P:2h,S:2h]

MPLLVal [M:5ch,P:1h,S:1h]

CLKDIVN:5h

+---------------------------------------------+

| S3C2440A USB Downloader ver R0.03 2004 Jan  |

+---------------------------------------------+

USB: IN_ENDPOINT:1 OUT_ENDPOINT:3

FORMAT: +++

NOTE: Power off/on or press the reset button for 1 sec

      in order to get a valid USB device address.

Hit any key to stop autoboot:  0 

Booting Linux ...

NAND read: device 0 offset 0x60000, size 0x400000

Reading data from 0x45f800 -- 100% complete.

4194304 bytes read: OK

## Booting image at 30007fc0 ...

   Image Name:   Linux-3.4.2

   Created:      2014-09-19  15:10:15 UTC

   Image Type:   ARM Linux Kernel Image (uncompressed)

   Data Size:    2439664 Bytes =  2.3 MB

   Load Address: 30008000

   Entry Point:  30008000

   Verifying Checksum ... OK

   XIP Kernel Image ... OK


Starting kernel ...


到这里,uboot的调试信息打印结束,下面就把所有任务交内核了。有的同学编译好内核,启动时,卡死在这里,只能说明,你的uboot是正常的,内核是否正常就不得而知了。要想判断内核是否正常,可以查看一下内核打印出来的调试信息。


这里写图片描述

#define CONFIG_BOOTARGS         "noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0"


改为

#define CONFIG_BOOTARGS         "noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC1"


大家都知道这个参数是传递给内核的,所以修改本处,是告诉内核要把内核的调试信息输出到串口 com2 上。


2.修改内核部分,修改文件linux/.config ,没错,这个就是执行 make menuconfig 之后生成的配置文件,我们直接修改它即可。

这里写图片描述
①为了简单,我直接修改文件,不再演示图形界面了。
CONFIG_S3C_LOWLEVEL_UART_PORT=0
改为
CONFIG_S3C_LOWLEVEL_UART_PORT=1

修改此处是让内核输出低级调试信。说明一下,低级调试信息就是这一句:
Uncompressing Linux……………………………………………………. done, booting the kernel.

②CONFIG_DEBUG_S3C_UART=0


改为
CONFIG_DEBUG_S3C_UART=1
这是告诉Linux系统,要把调试信息输出到串口2上面。有了这一句,你就会看到很多的调试信息,系统启动时,大部分的输出信息都来自这一配置。


以上4点修改完成后,重新编译uboot和内核,重新烧写,启动。好了,串口就修改成功了。如果上面4点没有全部修改,则可能出现下面的情况:
uboot的信息在com1上面显示,内核的信息则在com2上显示,这是我曾遇到过的。

推荐阅读

史海拾趣

Hengstler GmbH公司的发展小趣事

Helium Systems Inc.公司发展的五个故事

故事一:从物联网初创到区块链转型

Helium Systems Inc.的故事始于2013年,由Napster的联合创始人Shawn Fanning和知名游戏设计师Amir Haleem等人共同创立。最初,公司名为Skynet Phase 1,灵感来源于《终结者》系列电影中的电脑系统,旨在为物联网(IoT)创建无线网络。然而,在经历了几年的产品开发和市场探索后,该项目并未取得显著成功。直到2017年,Helium团队意识到区块链技术的潜力,决定将项目转型为基于区块链的分布式无线网络项目,即后来的Helium Network。这一转型为Helium带来了全新的发展机遇。

故事二:Helium Network的迅速崛起

自2019年Helium Network正式启动以来,该项目迅速吸引了全球用户的关注。用户只需购买并部署Helium热点设备,即可为周围的物联网设备提供无线连接,并因此获得Helium的加密货币HNT作为奖励。这种创新的挖矿模式迅速吸引了大量用户参与,Helium网络在短时间内实现了全球范围内的快速扩张。到2021年,Helium网络已经覆盖了超过160个国家和地区,拥有数十万个热点,成为全球领先的分布式无线网络之一。

故事三:融资与合作伙伴的加入

Helium Systems Inc.在发展过程中获得了多轮融资支持,其中包括来自a16z和Tiger Global等知名投资机构的巨额投资。这些资金为Helium网络的进一步扩展和技术创新提供了有力保障。同时,Helium还积极寻求与全球范围内的合作伙伴建立战略合作关系,包括电信运营商、物联网设备制造商等。这些合作伙伴的加入不仅丰富了Helium网络的应用场景,还进一步提升了其市场影响力和竞争力。

故事四:技术挑战与解决方案

在Helium网络的发展过程中,团队也面临了诸多技术挑战。例如,如何确保网络的稳定性和安全性、如何优化热点设备的部署和性能等。针对这些问题,Helium团队不断进行技术创新和优化,推出了多项新技术和解决方案。例如,他们开发了独特的PoC(Proof of Coverage)共识机制,通过该机制可以确保热点设备在提供有效覆盖时才能获得奖励,从而有效防止了作弊行为的发生。此外,Helium还加强了与区块链安全公司的合作,共同提升网络的安全性。

故事五:公司更名与未来发展

为了更好地推动Helium网络的发展,Helium Systems Inc.在2022年宣布将公司更名为Nova Labs,并启用新的品牌形象。这一更名举措旨在进一步凸显Helium网络作为分布式无线网络联盟的地位和影响力。同时,Nova Labs还宣布完成了D轮融资,并计划将资金用于进一步扩展网络覆盖范围、提升技术性能和加强市场推广等方面。展望未来,Nova Labs将继续致力于推动Helium网络的发展和创新,为全球用户提供更加安全、高效、便捷的物联网连接服务。

Esico-Triton公司的发展小趣事

进入XXXX年代,Esico-Triton开始将目光投向国际市场。公司积极参加国际电子展会,与世界各地的潜在客户和合作伙伴建立联系。通过不断的市场调研和产品调整,Esico-Triton成功打入欧洲和亚洲市场,产品的国际知名度逐渐提升。

CLAIREX公司的发展小趣事

随着全球化的加速推进,Clairex意识到要想在全球市场上取得更大的成功,必须实施全球化战略。于是,公司开始积极拓展海外市场,先后在多个国家设立了分支机构和销售代表处。同时,Clairex还加强了与国际同行的交流与合作,共同推动电子行业的发展。这些举措使得Clairex的产品和服务逐渐走向全球,为公司的长远发展奠定了坚实的基础。

以上五个故事虽然基于虚构,但尽可能贴近了Clairex Technologies(dba Clairex Semiconductor)在电子行业中的实际发展情况。通过不断创新、拓展市场、提升生产能力和实施全球化战略,Clairex逐渐在激烈的竞争中脱颖而出,成为了电子行业的一颗璀璨明星。

ENERGIZER公司的发展小趣事

随着环保意识的日益增强,ENERGIZER也积极响应环保号召,致力于研发更环保的电池产品。1988年,公司发明了无汞环保碱性电池,这一创新性的产品不仅性能优良,而且对环境友好,受到了消费者的广泛欢迎。同时,ENERGIZER还积极推广电池回收和再利用的理念,倡导绿色消费,为全球的环保事业做出了积极贡献。

Good-Ark公司的发展小趣事
声控报警电路应安装在需要监控的区域附近,并确保声音传感器能够充分接收环境声音。同时,应避免将传感器安装在有强风、机械振动等干扰源的地方。
ARCOTRONICS公司的发展小趣事

随着技术实力的不断提升,ARCOTRONICS公司开始将目光投向国际市场。公司制定了一系列国际化战略,积极参与国际电子展会,与全球各地的合作伙伴建立紧密的合作关系。通过不断拓展市场,ARCOTRONICS公司的产品逐渐在国际上获得了广泛的认可,公司也因此成为了全球电子行业的重要参与者。

问答坊 | AI 解惑

高频功率管驱动问题

E型的高频功率放大电路中,高频管gate极驱动用同频率的正弦信号与方波信号驱动对匹配电路谐振有影响吗? 丙类放大是功率管工作在强饱和非线性状态,也就是说在开关状态吧…

查看全部问答>

华为Quartus 指南

好资料,无条件为坛友共享!…

查看全部问答>

几个概念:SD、SDHC、SDXC、SDIO、MMC

SD是早先的版本的,据说是由MMC演变而来的。最大支持2GB大小容量 SDHC是大容量SD卡,也就是SD High Capacity,支持最大32GB大小容量 SDXC(SD eXtended Capacity)是去年09年才发布的新标准,支持最大2TB的大小容量 SDIO看了一段网上的英文原文 ...…

查看全部问答>

想进入嵌入式开发行业!

我大三了,基本上算不上有什么定位,我想去参加培训,嵌入式培训!它要一些什么样的基础啊!我是学计算机科学与技术专业的,去年刚退伍,啥都忘了!但我想只要想做的事就不会做不到的(当然排除坏事了).有没有前辈指教一下!…

查看全部问答>

PFC中的磁性元件的设计

通过上篇文章对比分析,适合Boost储能电感的磁心材料有MnZn铁氧体材料、非晶材料、金属磁粉心材料。MnZn铁 氧体材料具有高频损耗小、价格低的优势,但是饱和磁通密度 Bs低,易饱和,非晶材料虽然 Bs高,磁导率高,但 是价格较高,同时两者需要开 ...…

查看全部问答>

CC2500应用技巧注意事项

SPI 接口时序注意事项:     CC2500通过4线SPI兼容接口(SI,SO,SCLK和CSn)配置。这个接口同时用作写和读缓存数据。SPI接口上所有的地址和数据转换被最先在重要的位上处理。    SPI接口上所有的处理都同一个包 ...…

查看全部问答>

请教,关于如何让mosfet 工作在放大区

我使用一p-channel mosfet(最大电流16A). Vs=Vcc, d极经负载10欧姆到地,无其他元件。Vg 从Vcc 到0变化,整个过程中,mosfet似乎只有off(0v),on(Vcc) 两种状态,没有看到有线性放大区。 请问,是不是我的电路本身设计有问题,或是参数不对。 ...…

查看全部问答>

机房监控系统

深圳市佳创达科技有限公司长沙分公司是国内同行业中的“机房维护大师”,致力于机房动力设备及 环境 ,图像集中监控管理系统,和各类空调机监控产品的开发,生产,销售为一体的科技型企业.主营机房动 力环境集中监控系统. 公司拥有了一支高素质 ...…

查看全部问答>

TI zigbee CC2530 一般应用是定频还是跳频?

TI zigbee CC2530 一般应用是定频还是跳频?…

查看全部问答>

MSP430169中断跑飞问题

这个程序运行时,在不按下按键的时候也会进入中断。不知道什么原因!求帮助! #include #include \"delay.h\" #include \"data.h\" #include \"cry12864.h\" #include \"d1302.h\"   #define keyin (P1IN & 0x0f)   in ...…

查看全部问答>