|
本帖最后由 jerryshuuei 于 2024-5-12 08:31 编辑
Hi 大家好! 根据上一个帖子大家指出的问题, 我又重新画了块板子.
上一块板子电压上电不对, 排查来排查去发现3v3, 1v2, 1v8单独接入时都是正常的,
但是1v2和3v3同时接入, 1v2被拉到了2v2... 感觉只有芯片内部出问题了.
现在重新画了块板子, 分成了好几块板子拼接. 电源板, 核心板, 底板. 留了以太网的接口.
目前可以实现的:
1. 上电后电压正常;
2. USB启动: 与PC机上的新唐Nuwriter烧录软件建立连接;
3. SD卡启动: 未完全成功
目前我的板子算一个最小系统板:
1. SD卡作为"启动盘",
2. 一个串口输出调试信息,
3. 一个USB口来和Nuwriter烧录软件对接.
4. 核心板上引出了一组SPI Flash接口和RMII以太网接口作为后续扩展
现在的实物板子和SD卡启动的问题
-------------------------------
之前在新唐官方开发板NUC980-IIOT(NUC980DR61Y)开发好了软件应用,
现在直接将SD卡用在我的板子(NUC980DR61YC)上.
SD卡启动的时候, 串口有输出, 读取加载uboot成功, 内核已加载到内存.
不知道是不是一些外设没有的原因... 导致一直卡在了
...
nuc980-ohci b0017000.usbh_ohci: Nuvoton NUC980 OHCI Host Controller
nuc980-ohci b0017000.usbh_ohci: new USB bus registered, assigned bus number 2
nuc980-ohci b0017000.usbh_ohci: irq 24, io mem 0xb0017000
...就没有后续了
官方板子上的启动输出是
'''
nuc980-ohci b0017000.usbh_ohci: Nuvoton NUC980 OHCI Host Controller
nuc980-ohci b0017000.usbh_ohci: new USB bus registered, assigned bus number 2
nuc980-ohci b0017000.usbh_ohci: irq 24, io mem 0xb0017000
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 8 ports detected
NUC980 OHCI init done.
'''
我想知道是我硬件的问题还是固件的问题.
重新编译固件可以解决吗?
或者我飞几根线配置对应的引脚可以解决吗?
下面是两块板子的对同一张SD卡的完整启动输出对比
---------------------------
自制新唐NUC980最小系统板的输出:
感觉像是OHCI未能初始化成功就一直卡着了...
一开始的Err-CRC7是什么情况? 同一张卡...
- NUC980 IBR 20180813
- Boot from SD
- Err-CRC7 # 这个是什么意思?
- DDR-OK
- finish SD dow�d
- U-Boot 2016.11-g4739e90-dirty (Feb 26 2024 - 09:56:37 +0800)
- CPU: NUC980
- Board: NUC980
- DRAM: 64 MiB
- MMC: NUC980 SD: 0
- In: serial
- Out: serial
- Err: serial
- Net: Net Initialization Skipped
- No ethernet found.
- Hit any key to stop autoboot: 0
- reading uImage
- 3833240 bytes read in 506 ms (7.2 MiB/s)
- reading nuc980-dev-v1.0.dtb
- 27807 bytes read in 8 ms (3.3 MiB/s)
- ## Booting kernel from Legacy Image at 00007fc0 ...
- Image Name: Linux-5.10.140+
- Image Type: ARM Linux Kernel Image (uncompressed)
- Data Size: 3833176 Bytes = 3.7 MiB
- Load Address: 00008000
- Entry Point: 00008000
- Verifying Checksum ... OK
- ## Flattened Device Tree blob at 00c00000
- Booting using the fdt blob at 0xc00000
- XIP Kernel Image ... OK
- Loading Device Tree to 03e7b000, end 03e84c9e ... OK
- StartiÿBooting Linux on physical CPU 0x0
- Linux version 5.10.140+ (shuuei@H8) (arm-buildroot-linux-gnueabi-gcc.br_real (Buildroot 2023.02.8) 11.4.0, GNU ld (GNU Binutils) 2.38) #1 PREEMPT Mon Feb 26 10:18:45 CST 2024
- CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=0005317f
- CPU: VIVT data cache, VIVT instruction cache
- OF: fdt: Machine model: Nuvoton NUC980 DEV V1.0
- Memory policy: Data cache writeback
- Zone ranges:
- Normal [mem 0x0000000000000000-0x0000000003ffffff]
- Movable zone start for each node
- Early memory node ranges
- node 0: [mem 0x0000000000000000-0x0000000003ffffff]
- Initmem setup node 0 [mem 0x0000000000000000-0x0000000003ffffff]
- Built 1 zonelists, mobility grouping on. Total pages: 16256
- Kernel command line: console=ttyS0,115200n8 noinitrd rootfstype=ext4 root=/dev/mmcblk0p2 rw rootwait mem=64M
- Dentry cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
- Inode-cache hash table entries: 4096 (order: 2, 16384 bytes, linear)
- mem auto-init: stack:off, heap alloc:off, heap free:off
- Memory: 56516K/65536K available (5789K kernel code, 680K rwdata, 1252K rodata, 168K init, 244K bss, 9020K reserved, 0K cma-reserved)
- SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
- rcu: Preemptible hierarchical RCU implementation.
- rcu: RCU event tracing is enabled.
- Trampoline variant of Tasks RCU enabled.
- rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
- NR_IRQS: 545
- clocksource: nuc980-timer5: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 62215505635 ns
- sched_clock: 24 bits at 120kHz, resolution 8333ns, wraps every 69905062489ns
- Console: colour dummy device 80x30
- printk: console [ttyS0] enabled
- Calibrating delay loop... 148.88 BogoMIPS (lpj=744448)
- pid_max: default: 32768 minimum: 301
- Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
- Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
- CPU: Testing write buffer coherency: ok
- Setting up static identity map for 0x8400 - 0x843c
- rcu: Hierarchical SRCU implementation.
- devtmpfs: initialized
- clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
- futex hash table entries: 256 (order: -1, 3072 bytes, linear)
- pinctrl core: initialized pinctrl subsystem
- NET: Registered protocol family 16
- DMA: preallocated 256 KiB pool for atomic coherent allocations
- <DT> nuc980_dt_device_init +
- <DT> nuc980_dt_device_init -
- nuc980-pinctrl apb:pinctrl@b0000000: initialized NUC980 pinctrl driver
- SCSI subsystem initialized
- usbcore: registered new interface driver usbfs
- usbcore: registered new interface driver hub
- usbcore: registered new device driver usb
- mc: Linux media interface: v0.10
- videodev: Linux video capture interface: v2.00
- clocksource: Switched to clocksource nuc980-timer5
- NET: Registered protocol family 2
- IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
- tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
- TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
- TCP bind hash table entries: 1024 (order: 0, 4096 bytes, linear)
- TCP: Hash tables configured (established 1024 bind 1024)
- UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
- UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
- NET: Registered protocol family 1
- NetWinder Floating Point Emulator V0.97 (double precision)
- workingset: timestamp_bits=30 max_order=14 bucket_order=0
- jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
- NET: Registered protocol family 38
- Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
- io scheduler mq-deadline registered
- io scheduler kyber registered
- nuc980_gpio_probe - pdev = b0004000.gpio
- nuc980_dma_probe - pdev = b0008000.dma
- nuc980-dma b0008000.dma: NUC980 DMA ready
- b0070000.serial: ttyS0 at I/O 0xf0070000 (irq = 36, base_baud = 750000) is a NUC980
- brd: module loaded
- nuc980 mtd nand driver version: 20220317
- RX nuc980_qspi0_probe: dma0chan0 module removed
- TX nuc980_qspi0_probe: dma0chan1 module removed
- spi-nand: probe of spi0.0 failed with error -110
- CAN device driver interface
- ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
- EHCI over-current active level low...
- nuc980-ehci b0015000.usbh_ehci: Nuvoton NUC980 EHCI Host Controller
- nuc980-ehci b0015000.usbh_ehci: new USB bus registered, assigned bus number 1
- nuc980-ehci b0015000.usbh_ehci: irq 23, io mem 0xb0015000
复制代码
---------------------------
新唐官方NUC980-iiot板同一张SD卡的输出正常, 顺利到login
- NUC980 IBR 20180813
- Boot from SD
- DDR-OK
- finish SD dow�d
- U-Boot 2016.11-g4739e90-dirty (Feb 26 2024 - 09:56:37 +0800)
- CPU: NUC980
- Board: NUC980
- DRAM: 64 MiB
- MMC: NUC980 SD: 0
- In: serial
- Out: serial
- Err: serial
- Net: Net Initialization Skipped
- No ethernet found.
- Hit any key to stop autoboot: 0
- reading uImage
- 3833240 bytes read in 506 ms (7.2 MiB/s)
- reading nuc980-dev-v1.0.dtb
- 27807 bytes read in 8 ms (3.3 MiB/s)
- ## Booting kernel from Legacy Image at 00007fc0 ...
- Image Name: Linux-5.10.140+
- Image Type: ARM Linux Kernel Image (uncompressed)
- Data Size: 3833176 Bytes = 3.7 MiB
- Load Address: 00008000
- Entry Point: 00008000
- Verifying Checksum ... OK
- ## Flattened Device Tree blob at 00c00000
- Booting using the fdt blob at 0xc00000
- XIP Kernel Image ... OK
- Loading Device Tree to 03e7b000, end 03e84c9e ... OK
- StartiÿBooting Linux on physical CPU 0x0
- Linux version 5.10.140+ (shuuei@H8) (arm-buildroot-linux-gnueabi-gcc.br_real (Buildroot 2023.02.8) 11.4.0, GNU ld (GNU Binutils) 2.38) #1 PREEMPT Mon Feb 26 10:18:45 CST 2024
- CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=0005317f
- CPU: VIVT data cache, VIVT instruction cache
- OF: fdt: Machine model: Nuvoton NUC980 DEV V1.0
- Memory policy: Data cache writeback
- Zone ranges:
- Normal [mem 0x0000000000000000-0x0000000003ffffff]
- Movable zone start for each node
- Early memory node ranges
- node 0: [mem 0x0000000000000000-0x0000000003ffffff]
- Initmem setup node 0 [mem 0x0000000000000000-0x0000000003ffffff]
- Built 1 zonelists, mobility grouping on. Total pages: 16256
- Kernel command line: console=ttyS0,115200n8 noinitrd rootfstype=ext4 root=/dev/mmcblk0p2 rw rootwait mem=64M
- Dentry cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
- Inode-cache hash table entries: 4096 (order: 2, 16384 bytes, linear)
- mem auto-init: stack:off, heap alloc:off, heap free:off
- Memory: 56516K/65536K available (5789K kernel code, 680K rwdata, 1252K rodata, 168K init, 244K bss, 9020K reserved, 0K cma-reserved)
- SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
- rcu: Preemptible hierarchical RCU implementation.
- rcu: RCU event tracing is enabled.
- Trampoline variant of Tasks RCU enabled.
- rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
- NR_IRQS: 545
- clocksource: nuc980-timer5: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 62215505635 ns
- sched_clock: 24 bits at 120kHz, resolution 8333ns, wraps every 69905062489ns
- Console: colour dummy device 80x30
- printk: console [ttyS0] enabled
- Calibrating delay loop... 148.88 BogoMIPS (lpj=744448)
- pid_max: default: 32768 minimum: 301
- Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
- Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
- CPU: Testing write buffer coherency: ok
- Setting up static identity map for 0x8400 - 0x843c
- rcu: Hierarchical SRCU implementation.
- devtmpfs: initialized
- clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
- futex hash table entries: 256 (order: -1, 3072 bytes, linear)
- pinctrl core: initialized pinctrl subsystem
- NET: Registered protocol family 16
- DMA: preallocated 256 KiB pool for atomic coherent allocations
- <DT> nuc980_dt_device_init +
- <DT> nuc980_dt_device_init -
- nuc980-pinctrl apb:pinctrl@b0000000: initialized NUC980 pinctrl driver
- SCSI subsystem initialized
- usbcore: registered new interface driver usbfs
- usbcore: registered new interface driver hub
- usbcore: registered new device driver usb
- mc: Linux media interface: v0.10
- videodev: Linux video capture interface: v2.00
- clocksource: Switched to clocksource nuc980-timer5
- NET: Registered protocol family 2
- IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
- tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
- TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
- TCP bind hash table entries: 1024 (order: 0, 4096 bytes, linear)
- TCP: Hash tables configured (established 1024 bind 1024)
- UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
- UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
- NET: Registered protocol family 1
- NetWinder Floating Point Emulator V0.97 (double precision)
- workingset: timestamp_bits=30 max_order=14 bucket_order=0
- jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
- NET: Registered protocol family 38
- Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
- io scheduler mq-deadline registered
- io scheduler kyber registered
- nuc980_gpio_probe - pdev = b0004000.gpio
- nuc980_dma_probe - pdev = b0008000.dma
- nuc980-dma b0008000.dma: NUC980 DMA ready
- b0070000.serial: ttyS0 at I/O 0xf0070000 (irq = 36, base_baud = 750000) is a NUC980
- brd: module loaded
- nuc980 mtd nand driver version: 20220317
- RX nuc980_qspi0_probe: dma0chan0 module removed
- TX nuc980_qspi0_probe: dma0chan1 module removed
- spi-nand spi0.0: Winbond SPI NAND was found.
- spi-nand spi0.0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64
- 2 fixed-partitions partitions found on MTD device spi0.0
- Creating 2 MTD partitions on "spi0.0":
- 0x000000000000-0x000000800000 : "kernel"
- 0x000000800000-0x000001000000 : "rootfs"
- CAN device driver interface
- ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
- EHCI over-current active level low...
- nuc980-ehci b0015000.usbh_ehci: Nuvoton NUC980 EHCI Host Controller
- nuc980-ehci b0015000.usbh_ehci: new USB bus registered, assigned bus number 1
- nuc980-ehci b0015000.usbh_ehci: irq 23, io mem 0xb0015000
- nuc980-ehci b0015000.usbh_ehci: USB 2.0 started, EHCI 0.95
- hub 1-0:1.0: USB hub found
- hub 1-0:1.0: 2 ports detected
- NUC980 EHCI init done.
- ehci-platform: EHCI generic platform driver
- ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
- usb_hcd_nuc980_probe, name: b0017000.usbh_ohci, 0
- nuc980-ohci b0017000.usbh_ohci: Nuvoton NUC980 OHCI Host Controller
- nuc980-ohci b0017000.usbh_ohci: new USB bus registered, assigned bus number 2
- nuc980-ohci b0017000.usbh_ohci: irq 24, io mem 0xb0017000
- hub 2-0:1.0: USB hub found
- hub 2-0:1.0: 8 ports detected
- NUC980 OHCI init done.
- ohci-platform: OHCI generic platform driver
- usbcore: registered new interface driver usb-storage
- i2c /dev entries driver
- usb usb1-port1: over-current condition
- nuc980_sd_probe - pdev = b0018000.sdh
- NUC980 Crypto engine enabled.
- usbcore: registered new interface driver usbhid
- usbhid: USB HID core driver
- NET: Registered protocol family 10
- usb usb2-port1: over-current condition
- Segment Routing with IPv6
- sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
- NET: Registered protocol family 17
- can: controller area network core
- NET: Registered protocol family 29
- can: raw protocol
- can: broadcast manager protocol
- usb usb1-port2: over-current condition
- can: netlink gateway - max_hops=1
- Waiting for root device /dev/mmcblk0p2...
- usb usb2-port2: over-current condition
- usb usb2-port3: over-current condition
- usb usb2-port4: over-current condition
- usb usb2-port5: over-current condition
- usb usb2-port6: over-current condition
- usb usb2-port7: over-current condition
- usb usb2-port8: over-current condition
- mmc0: new high speed SDHC card at address 59b4
- mmcblk0: mmc0:59b4 SMI 15.0 GiB
- mmcblk0: p1 p2
- EXT4-fs (mmcblk0p2): recovery complete
- EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
- VFS: Mounted root (ext4 filesystem) on device 179:2.
- devtmpfs: mounted
- Freeing unused kernel memory: 168K
- Kernel memory protection not selected by kernel config.
- Run /sbin/init as init process
- EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
- Seeding 256 bitsrandom: crng init done
- and crediting
- Saving 256 bits of creditable seed for next boot
- Starting syslogd: OK
- Starting klogd: OK
- Running sysctl: OK
- Starting network: OK
- Starting ntpd: OK
- Starting nginx...
- Starting sshd: OK
- Welcome to Buildroot
- buildroot login:
复制代码
-------
两块板子的对比
NUC980-iiot
我的板子
-----
主要问题
未能成功启动进入login界面, 可能是什么原因呢? 是我硬件的问题还是固件的问题呢?
1. 重新配置编译固件可以解决吗? 是需要单独编译Linux内核, 配置设备树吗?
2. 飞几根线配置对应的引脚可以解决吗?
------
其他一些问题
1. 电源板2层, DC-DC芯片布局这样可以吗? 比以前有没有不辣眼睛了一点么...
2. 核心板4层: 电容好多... 抄的官方板的位号和布局...
后续想加SPI Flash存储器作为更新升级的中转, 不知道行不行.
3. 底板4层. 现在复位按钮不灵光...有时候按下没有反应... 是10/1uF电容的原因吗
这是我的复位电路. 有时候没反应就只能手动飞线复位...
4. 铺铜问题: 这次我的几块板子都没有铺铜... 会不会有什么影响呢
VSS和几路VDD都是30mil的线直接在对应的层手动拉.
不太喜欢铺铜, 觉得不铺铜可以看到每个层里面的线, 挺好看的.
5. 以太网拓展板的问题: 我是想单独做一块以太网板拼接,
但是这样信号通过这么多排针排母, 会有什么问题么...
6: 还有很多看不懂官方设计的问题,
像复位电路, usb电源电路, usb和sd卡座接地电路, 磁珠选型等
官方复位电路
官方外壳接地电路
官方usb标识电源
官方磁珠与0欧电阻
还请大家批评指正! 答疑解惑! 谢谢!
-----
参考资料
1. 新唐官方板使用手册
芯片手册
硬件参考设计
2. 开源NUC980设计
3. B站UP主讲解NUC980
4. 开源f1c200s设计记录
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|