资料介绍
描述
Trenz Electronic 的 Zynqberry 系列板是有趣的小型 Xilinx 基于 Zynq 的 FPGA 开发板,采用来自其微控制器对应部件 Raspberry Pi 板的流行外形。正如您从名称中猜到的那样,ZynqberryZero 采用了 Raspberry Pi Zero 的外形尺寸。虽然本月早些时候我已经介绍了如何为ZynqberryZero创建硬件设计和裸机应用程序,但在没有嵌入式 Linux 映像的情况下,这并不是 ZynqberryZero 和 Raspberry Pi Zero 之间真正的苹果对苹果的比较。在 ZynqberryZero 上运行。
ZynqberryZero 拥有与嵌入式 Linux 映像相同的硬件外设,以利用包括 mico-USB OTG 端口、mini-HDMI 端口、MIPI/CSI 摄像头连接器和 40 针 GPIO 以及用于 SPI、I2C 的标准 Raspberry Pi 引出线、GPIO、5V电源和接地。
值得注意的是,虽然 Raspberry Pi Zero 的基本 Raspbian 映像是基于 Debian 的,但 PetaLinux 工具集会生成使用 RPM(Red hat Package Manager)的轻量级 Red Hat 映像。因此,如果您尝试在 ZynqberryZero 上迁移/复制任何 Raspberry Pi Zero 项目,请记住这一点。
创建 PetaLinux 项目
首先,从命令行获取环境中的 PetaLinux 工具:
~$ source /tools/Xilinx/PetaLinux/2019.2/settings.sh
然后将目录更改为您希望 PetaLinux 项目所在的文件夹。我个人喜欢将 PetaLinux 项目放在我为开发板创建硬件设计的 Vivado 项目的顶级目录中。所以在我的在这种情况下,我的 ZynqberryZero 的 Vivado 项目位于我的主文件夹中的 zynqberry_zero_prj 中:
~$ cd ./zynqberry_zero_prj/
接下来使用以下命令创建 PetaLinux 项目。为类型标志传递项目,为模板标志传递zynq。但是,请随意传递项目名称的所需名称。
~/zynqberry_zero_prj$ petalinux-create --type project --template zynq --name zynqberry_zero_os
将目录更改为最后一个命令创建的项目目录:
~/zynqberry_zero_prj$ cd ./zynqberry_zero_os/
导入硬件设计
在新的 PetaLinux 项目中需要做的第一件事是导入从 Vivado 导出的适当硬件平台,用于目标 FPGA 开发板。
在这种情况下,这将是在我之前的项目文章的最后一步中导出的硬件平台,该文章介绍了如何为位于 Vivado 项目顶层目录中的 ZynqberryZero 生成基本硬件设计,我还创建了 PetaLinux 项目在。
~/zynqberry_zero_prj/zynqberry_zero_os/$ petalinux-config --get-hw-description ../
导入硬件平台后,系统硬件配置编辑器会自动启动:
为 ZynqberryZero 的嵌入式 Linux 映像配置系统硬件,以在 ZynqberryZero 的 QSPI 闪存和 SD 卡上的设备树中查找引导二进制文件。
在Subsystem AUTO Hardware settings > Advanced bootable images storage Settings下,将映像存储介质更改为用于引导映像设置的主闪存,并将映像存储介质更改为用于dtb 映像设置的主 sd。
为了在功能方面与 Raspberry Pi Zero 更加匹配,我选择将根文件系统类型从 initramfs 更改为扩展 (EXT)。
The initramfs filesystem is writeable, but not persistent. Thus any changes are lost at each reboot because it is simply a complete set of directories as a normal root filesystem that is compressed into a single cpio archive loaded by the kernel at boot. The extended filesystem is the traditional filesystem type most think of. In this case it is ext4 in PetaLinux.
Change the root filesystem type from INITRAMFS to EXT. And uncheck the option for TFTP boot if you don't plan to boot your ZynqberryZero over a network connection.
Exit and save the system hardware configuration editor.
Linux Kernel
Next configure kernel in the PetaLinux project by launching the configuration editor:
~/zynqberry_zero_prj/zynqberry_zero_os/$ petalinux-config -c kernel
Use the search function in the kernel configuration editor by pressing the / key at any time. Verify/modify the kernel to configure the following kernel modules:
CONFIG_MII=y
CONFIG_XILINX_GMII2RGMII=y
CONFIG_USB_USBNET=y
CONFIG_USB_NET_AX8817X=y
CONFIG_USB_NET_AX88179_178A=y
CONFIG_USB_NET_CDCETHER=y
# CONFIG_USB_NET_CDC_EEM is not set
CONFIG_USB_NET_CDC_NCM=y
# CONFIG_USB_NET_HUAWEI_CDC_NCM is not set
# CONFIG_USB_NET_CDC_MBIM is not set
# CONFIG_USB_NET_DM9601 is not set
# CONFIG_USB_NET_SR9700 is not set
# CONFIG_USB_NET_SR9800 is not set
# CONFIG_USB_NET_SMSC75XX is not set
CONFIG_USB_NET_SMSC95XX=y
# CONFIG_USB_NET_GL620A is not set
CONFIG_USB_NET_NET1080=y
# CONFIG_USB_NET_PLUSB is not set
# CONFIG_USB_NET_MCS7830 is not set
# CONFIG_USB_NET_RNDIS_HOST is not set
CONFIG_USB_NET_CDC_SUBSET_ENABLE=y
CONFIG_USB_NET_CDC_SUBSET=y
# CONFIG_USB_ALI_M5632 is not set
# CONFIG_USB_AN2720 is not set
CONFIG_USB_BELKIN=y
CONFIG_USB_ARMLINUX=y
# CONFIG_USB_EPSON2888 is not set
# CONFIG_USB_KC2190 is not set
CONFIG_USB_NET_ZAURUS=y
# CONFIG_USB_NET_CX82310_ETH is not set
# CONFIG_USB_NET_KALMIA is not set
# CONFIG_USB_NET_QMI_WWAN is not set
# CONFIG_USB_NET_INT51X1 is not set
# CONFIG_USB_SIERRA_NET is not set
# CONFIG_USB_VL600 is not set
# CONFIG_USB_NET_CH9200 is not set
CONFIG_FB_SIMPLE=y
# CONFIG_FRAMEBUFFER_CONSOLE is not set
CONFIG_SND_SIMPLE_CARD_UTILS=y
CONFIG_SND_SIMPLE_CARD=y
CONFIG_USBIP_CORE=y
# CONFIG_USBIP_VHCI_HCD is not set
# CONFIG_USBIP_HOST is not set
# CONFIG_USBIP_VUDC is not set
# CONFIG_USBIP_DEBUG is not set
这启用了以太网控制器/USB 集线器芯片 LAN9514 的内核驱动程序。退出并保存内核的系统硬件配置编辑器。
根文件系统
通过在 PetaLinux 中启动相应的配置编辑器来配置根文件系统:
~/zynqberry_zero_prj/zynqberry_zero_os/$ petalinux-config -c rootfs
启用以下文件系统包(同样,您可以随时按 / 键使用内核配置编辑器中的搜索功能来准确查找每个包在菜单中的位置):
i2c-tools
alsa-plugins
alsa-lib-dev
libasound
alsa-conf-base
alsa-conf
alsa-utils
alsa-utils-aplay
busybox-httpd
接下来,为 ZynqberryZero 添加自定义应用程序:
~/zynqberry_zero_prj/zynqberry_zero_os$ petalinux-create -t apps --name fbgrab --enable
~/zynqberry_zero_prj/zynqberry_zero_os$ petalinux-create -t apps --name ffmpeg --enable
~/zynqberry_zero_prj/zynqberry_zero_os$ petalinux-create -t apps --name i2cpick --enable
~/zynqberry_zero_prj/zynqberry_zero_os$ petalinux-create -t apps --name rpicam --enable
~/zynqberry_zero_prj/zynqberry_zero_os$ petalinux-create -t apps --name startup --enable
~/zynqberry_zero_prj/zynqberry_zero_os$ petalinux-create -t apps --name webfwu --enable
Trenz 示例设计中提供了这些自定义应用程序的源文件,因此只需将它们复制过来:
从 Trenz 示例设计(这只是 bitbake 文件)中删除 PetaLinux 在 fbgrab 目录中生成的所有内容以及/zbzerodemo1/os/petalinux/project-spec/meta-user/recipes-apps/fbgrab内容的副本。
同时删除由 PetaLinux 在 ffmpeg 目录中生成的所有内容,并从Trenz 示例设计(包含源文件的 ffmpeg 文件夹和位烘焙文件)。
对于 i2cpick、rpicam、startup 和 webfwu,从 Trenz 示例设计 ( /zbzerodemo1/os/petalinux/project-spec/meta-user/recipes-apps/
由于某种原因,ZynqberryZero 示例设计中缺少 TE 音频编解码器内核模块,因此我从我的主要 Zynqberry PetaLinux 项目中复制了它。
并将以下行添加到/zynqberry_zero_prj/zynqberry_zero_os/project-spec/meta-user/conf中的user-rootfsconfig中,以便根文件系统配置编辑器获取它,以便我可以返回并在模块下启用它(运行 petalinux-config - c rootfs 再次)。
CONFIG_te-audio-codec
最后,将 Trenz 示例设计 ( /zbzerodemo1/os/petalinux/project-spec/meta-user/recipes-core ) 中的 recipes-core recipe 文件夹复制到 PetaLinux 项目中的 meta-user 文件夹:/zynqberry_zero_prj/zynqberry_zero_os/项目规范/元用户/。
这个秘籍包含基本的 TCP/IP 网络初始化脚本和配置文件,它们是在 Linux 映像中配置网络接口的高级工具。ZynqberryZero 的以太网控制器/USB 集线器芯片 LAN9514 允许它通过 microUSB 转以太网适配器连接到网络,例如:
因此,您会注意到网络接口在配方中的接口文件中被建立为以太网端口 (eth0)。
设备树
为了让内核能够查看系统中可用的硬件,需要将适当的节点添加到与Vivado 中的模块设计相关的设备树中。
将以下设备树节点添加到/ zynqberry_zero_prj/zynqberry_zero_os/project-spec/meta-user/recipes-bsp/device-tree/files中的system-user.dtsi
/include/ "system-conf.dtsi"
/{
};
/{
#address-cells = <1>;
#size-cells = <1>;
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
ranges;
hdmi_fb_reserved_region@1FC00000 {
compatible = "removed-dma-pool";
no-map;
reg = <0x1FC00000 0x400000>;
};
};
hdmi_fb: framebuffer@0x1FC00000 {
compatible = "simple-framebuffer";
reg = <0x1FC00000 (1280 * 720 * 4)>;
width = <1280>;
height = <720>;
stride = <(1280 * 4)>;
format = "a8b8g8r8";
status = "okay";
};
vcc_3V3: fixedregulator@0 {
compatible = "regulator-fixed";
regulator-name = "vccaux-supply";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
};
&qspi {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
flash0: flash@0 {
compatible = "jedec,spi-nor";
reg = <0x0>;
#address-cells = <1>;
#size-cells = <1>;
spi-max-frequency = <50000000>;
partition@0x00000000 {
label = "boot";
reg = <0x00000000 0x00500000>;
};
partition@0x00500000 {
label = "bootenv";
reg = <0x00500000 0x00020000>;
};
partition@0x00520000 {
label = "kernel";
reg = <0x00520000 0x00a80000>;
};
partition@0x00fa0000 {
label = "spare";
reg = <0x00fa0000 0x00000000>;
};
};
};
&video_out_axi_vdma_0 {
status = "disabled";
};
&video_in_axi_vdma_1 {
status = "disabled";
};
&gpio0 {
interrupt-controller;
#interrupt-cells = <2>;
};
/* I2C1 */
&i2c1 {
#address-cells = <1>;
#size-cells = <0>;
i2cmux: i2cmux@70 {
compatible = "nxp,pca9540";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x70>;
ID_I2C@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
};
CSI_I2C@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
};
};
};
/* USB */
/{
usb_phy0: usb_phy@0 {
compatible = "ulpi-phy";
#phy-cells = <0>;
reg = <0xe0002000 0x1000>;
view-port = <0x0170>;
drv-vbus;
};
};
&usb0 {
usb-phy = <&usb_phy0>;
};
您可能已经注意到,我没有使用Trenz的示例设计中提供的system- user.dtsi...
我在 Vivado 中创建基础硬件设计时提到过,两个 AXI Video DMA IP 模块在模块设计中都被命名为axi_vdma_0,这导致 Vivado 尝试将它们映射到 DDR 中的相同地址空间。在示例设计中提供的设备树中,同样的错误出现在视频输入和视频输出的视频 DMA 块的两个节点的标题为axi_vdma_0。这会阻止 PetaLinux 项目成功构建,因此我再次将节点中的视频更改为名为axi_vdma_1 ( &video_in_axi_vdma_1 ),因此它现在与硬件平台中的硬件节点名称匹配,并且嵌入式 Linux 映像不会尝试使用相同的视频视频输入和视频输出的 DMA 节点。
由于我使用的是 512MB 版本,因此我还删除了 128MB 版本的 ZynqberryZero 的一堆无关注释和所有硬件配置。
构建 PetaLinux 项目
为 ZynqberryZero 配置和定制项目后,构建 PetaLinux 项目:
~/zynqberry_zero_prj/zynqberry_zero_os/$ petalinux-build
通过在前面的步骤中进行的适当修改,此时应该会成功。
生成引导二进制文件
成功构建 PetaLinux 项目后,您将看到所有输出文件,例如内核映像、根文件系统、Zynq FSBL ELF 文件等都输出到 PetaLinux 的/zynqberry_zero_prj/zynqberry_zero_os/images/linux目录中项目。唯一不存在的是启动二进制文件,它是使用以下命令手动生成的:
~/zynqberry_zero_prj/zynqberry_zero_os$ petalinux-package --boot --fsbl ./images/linux/zynq_fsbl.elf --fpga ./images/linux/system.bit --u-boot
由于您可以根据配置 Linux 映像和硬件的方式将不同的东西打包到引导二进制文件中,这就是为什么它不会在 PetaLinux 项目构建中自动生成的原因。在这种情况下,我将 Zynq FSBL、FPGA 比特流和 U-BOOT 包含在启动二进制文件中。
加载 SD 卡
准备一张 MircoSD 卡(至少 8GB,10 类),用 500MB 大小的 FAT32 分区进行分区,并在其前面留出 4MB 可用空间。然后将 SD 卡的其余部分设为 EXT4 分区:
此分区方案符合 PetaLinux 用户指南 ( UG1144 )。FAT32 分区是内核映像和设备树文件所在的位置,而 EXT4 分区是根文件系统所在的位置。
对 SD 卡进行分区后,将每个分区适当地挂载到主机系统上的某个点:
~$ sudo mount /dev/sdc1 /media/BOOT
~$ sudo mount /dev/sdc2 /media/rootfs
将内核映像和设备树文件复制到第一个 (FAT32) 分区:
~$ sudo cp ./zynqberry_zero_prj/zynqberry_zero_os/images/linux/image.ub /media/BOOT/
~$ sudo cp ./zynqberry_zero_prj/zynqberry_zero_os/images/linux/system.dtb /media/BOOT/
并将根文件系统解压缩到第二个(EXT4)分区:
~$ sudo tar xvf ./zynqberry_zero_prj/zynqberry_zero_os/images/linux/rootfs.tar.gz -C /media/rootfs/
运行同步命令以确保文件传输已经完全完成(你不能总是相信仅仅因为命令行被返回给你,传输实际上已经完成——我已经学会了这个艰难的方式):
~$ sync
最后卸载每个分区以从主机 PC 中弹出 SD 卡:
~$ sudo umount /media/BOOT/
~$ sudo umount /media/rootfs/
在 Vitis 中创建 QSPI 引导应用程序
CLG225 封装中的 Xilinx Zynq 器件,例如同时用于 Zynqberry 和 ZynqberryZero 的器件,不支持直接从 SD 卡启动。因此,您必须从 QSPI 执行主引导 (Zynq FSBL)。因此,需要将引导二进制文件 (BOOT.BIN) 编程到 ZynqberryZero 的 QSPI 闪存中,因为它包含 Zynq FSBL。
为了将引导二进制映像放到 ZynqberryZero 的 QSPI 上,我们需要一个不同的 FSBL 来从 JTAG 引导 Zynq 的 ARM 内核以进行编程。为此,我们将在 Vitis 中创建一个 FSBL 嵌入式应用程序。我正在使用我在上一个项目帖子中为 ZynqberryZero 创建的相同 Vitis 工作区。
在为 FSBL 创建嵌入式应用程序之前,BSP(板级支持包)需要添加 Xilinx FAT 文件系统 (FFS) 库 xilffs。从 Vitis 的资源管理器窗口中打开platform.spr。在 ps7_cortex9_0 上的 Standalone下选择Board Support Package , Modify BSP Settings...按钮将出现在右侧的窗口中。
在为板级支持包设置弹出的窗口的概述选项卡中,您将看到可以在 BSP 中启用的库列表。选中xilffs旁边的框,然后单击OK。
使用 ctrl+B 重建平台。
接下来通过选择New > Application Project...创建一个新的应用程序项目
为项目指定所需的名称,选择为其创建新系统项目的选项。选择 ZynqberryZero 自定义平台项目作为其基础,并以 C 语言中的 Zynq 的 ARM-core 0 处理器为目标。最后,为其选择 Zynq FSBL 应用程序模板。
打开 main.c 并从第 286 行开始进行以下修改:
/*
* Print the FSBL Banner
*/
fsbl_printf(DEBUG_GENERAL,"\n\rXilinx First Stage Boot Loader \n\r");
fsbl_printf(DEBUG_GENERAL,"Release %d.%d %s-%s\r\n", SDK_RELEASE_YEAR, SDK_RELEASE_QUARTER,__DATE__,__TIME__);
xil_printf("\r\n--------------------------------------------------------------------------------\r\n");
xil_printf("Xilinx Zynq First Stage Boot Loader to write QSPI Flash (TE modified) \n\r");
xil_printf("Release %d.%d %s-%s\r\n", SDK_RELEASE_YEAR, SDK_RELEASE_QUARTER, __DATE__,__TIME__);
#ifdef XPAR_PS7_DDR_0_S_AXI_BASEADDR
/*
* DDR Read/write test
*/
// Status = DDRInitCheck();
// if (Status == XST_FAILURE) {
// fsbl_printf(DEBUG_GENERAL,"DDR_INIT_FAIL \r\n");
// /* Error Handling here */
// OutputStatus(DDR_INIT_FAIL);
// /*
// * Calling FsblHookFallback instead of Fallback
// * since, devcfg driver is not yet initialized
// */
// FsblHookFallback();
// }
然后从第 382 行开始添加 JTAG 引导模式掩码:
/*
* Read bootmode register
*/
BootModeRegister = Xil_In32(BOOT_MODE_REG);
BootModeRegister &= BOOT_MODES_MASK;
BootModeRegister = JTAG_MODE;
这些编辑只是禁用 DDR 读/写测试,因为它不是必需的,并将引导模式掩码更改为 JTAG 引导模式。
保存 main.c 并构建应用程序项目。
闪存 QSPI
创建用于编程的 FSBL 后,插入没有 SD 卡的 ZynqberryZero:
在 Explorer 窗口中右键单击 FSBL 应用程序项目名称,然后选择Program Flash。
在弹出的对闪存进行编程的窗口中,浏览到/zynqberry_zero_prj/zynqberry_zero_os/images/linux/中的 BOOT.BIN以获取Image File和 JTAG FSBL ELF 文件: /zynqberry_zero_prj/vitis_workspace/qspi_flash_app/Debug/ qspi_flash_app.elf对于FSBL 文件。
选中复选框以在闪烁后单击程序进行验证。
等待控制台读出闪存操作成功。
启动 ZynqberryZero
从您的主机 PC 上拔下 ZynqberryZero 并将准备好的 SD 卡插入 SD 卡插槽。以 115200 的波特率打开您选择的串行终端应用程序。
插入 ZynqberryZero 并使用串行终端应用程序连接到其 UART。由于 PetaLinux 项目已配置为在SD 卡。
由于在 u-boot 引导加载程序期间引导会失败,它会自动启动到 u-boot 终端,在这种情况下,命令行中的 Zynq> 表示:
Zynq>
使用以下两个命令定义 u-boot 中的命令以从 SD 卡加载内核映像和设备树文件:
Zynq> setenv cp_kernel2ram 'fatload mmc 0 ${netstart} ${kernel_img}'
Zynq> setenv cp_dtb2ram 'fatload mmc 0 ${dtbnetstart} ${dtb_img}'
设置默认启动命令以运行从 SD 卡加载内核映像和设备树文件的命令
Zynq> setenv default_bootcmd 'run cp_kernel2ram && run cp_dtb2ram && bootm ${netstart} - ${dtbnetstart}'
然后设置引导参数以指定根文件系统在 SD 卡上的设备节点和根文件系统的类型:
Zynq> setenv bootargs 'console=ttyPS0,115200 earlyprintk root=/dev/mmcblk0p2 rootfstype=ext4 ru rootwait'
最后,保存新的u-boot环境。这会将新命令写入引导二进制文件所在的 QSPI 闪存:
Zynq> saveenv
并启动 ZynqberryZero:
Zynq> boot
此时,您将看到正常的启动顺序开始并最终将您带到登录。除非在 PetaLinux 项目中另外修改,否则用户名和密码都是root :
如您所见,让 PetaLinux 在 Zynqberry 和 ZynqberryZero 板上运行可能有点棘手,因为它们不能直接从 SD 卡启动。但仍然是我最喜欢的小型 FPGA 开发板之一!
- 为ZynqberryZero编写嵌入式C应用程序
- 视频教程-嵌入式Linux开发基础-嵌入式
- 嵌入式Linux路线
- 嵌入式Linux系统移植(Linux内核配置)
- 嵌入式Linux network
- 【嵌入式Linux(基础篇)】从标准Linux到嵌入式Linux + 嵌入式Linux知识架构
- 嵌入式linux和物联网,嵌入式Linux或RTOS:用于物联网
- 《嵌入式LINUX基础教程》中文 第2版 (2 of 3) 0次下载
- 嵌入式LINUX系统内核和内核模块调试
- 嵌入式Linux应用程序例程
- 嵌入式LINUX开发基础知识 261次下载
- 基于Linux的嵌入式LCD设计
- 基于Linux的嵌入式应用浅析
- 嵌入式Linux和嵌入式Linux开发环境说明
- 嵌入式linux学习
- 嵌入式Linux开发的三种方式 758次阅读
- 嵌入式软件与生态系统:为嵌入式开发者提供必要的组件 491次阅读
- 简化SBC的嵌入式Linux软件开发 998次阅读
- 基于嵌入式Linux内核的ARM9运行实现方式介绍 1475次阅读
- 基于Yocto Project的定制嵌入式Linux产品设计浅析 1w次阅读
- 如何在嵌入式Linux中截屏 5908次阅读
- 关于嵌入式Linux在PMP消费类电子产品上的应用探讨浅析 947次阅读
- 关于嵌入式系统的特点和Linux内核的实时应用分析 1037次阅读
- 什么是嵌入式Linux内核调试威廉希尔官方网站 ?嵌入式开发又面临着哪些问题? 1137次阅读
- 基于PXA255开发板外围字符设备的嵌入式Linux字符设备驱动设计与应用 1138次阅读
- 关于Linux嵌入式操作系统的优势特征详解 5524次阅读
- 嵌入式C实现延时程序的不同变量的区别 几种Linux嵌入式开发环境的简单介绍 1566次阅读
- 嵌入式Linux的学习方法解析 3092次阅读
- 基于嵌入式Linux的家居监控系统设计 2023次阅读
- 基于Linux的嵌入式实时操作系统的研究 2298次阅读
下载排行
本周
- 1使用单片机实现七人表决器的程序和仿真资料免费下载
- 2.96 MB | 44次下载 | 免费
- 2联想E46L DAOLL6笔记本电脑图纸
- 1.10 MB | 2次下载 | 5 积分
- 3MATLAB绘图合集
- 27.12 MB | 2次下载 | 5 积分
- 4PR735,使用UCC28060的600W交错式PFC转换器
- 540.03KB | 1次下载 | 免费
- 5UCC38C42 30W同步降压转换器参考设计
- 428.07KB | 1次下载 | 免费
- 6DV2004S1/ES1/HS1快速充电开发系统
- 2.08MB | 1次下载 | 免费
- 7模态分解合集matlab代码
- 3.03 MB | 1次下载 | 2 积分
- 8美的电磁炉维修手册大全
- 1.56 MB | 1次下载 | 5 积分
本月
- 1使用单片机实现七人表决器的程序和仿真资料免费下载
- 2.96 MB | 44次下载 | 免费
- 2UC3842/3/4/5电源管理芯片中文手册
- 1.75 MB | 15次下载 | 免费
- 3DMT0660数字万用表产品说明书
- 0.70 MB | 13次下载 | 免费
- 4TPS54202H降压转换器评估模块用户指南
- 1.02MB | 8次下载 | 免费
- 5STM32F101x8/STM32F101xB手册
- 1.69 MB | 8次下载 | 1 积分
- 6HY12P65/HY12P66数字万用表芯片规格书
- 0.69 MB | 6次下载 | 免费
- 7华瑞昇CR216芯片数字万用表规格书附原理图及校正流程方法
- 0.74 MB | 6次下载 | 3 积分
- 8华瑞昇CR215芯片数字万用表原理图
- 0.21 MB | 5次下载 | 3 积分
总榜
- 1matlab软件下载入口
- 未知 | 935119次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420061次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233084次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191367次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183335次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81581次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73807次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65987次下载 | 10 积分
评论
查看更多