tag 标签: 开发板

相关博文
  • 热度 2
    2024-11-26 15:03
    215 次阅读|
    2 个评论
    ES32VF2264LT是一款基于RISC-V架构的高性能、低功耗微控制器,具有丰富的外设接口和灵活的应用能力。在Arduino平台上,它可以通过ESP-IDF或Arduino IDE进行编程,适用于各种嵌入式应用。以下是关于ES32VF2264LT在Arduino平台上的应用分析: 1. 硬件设计: ES32VF2264LT采用LQFP封装,支持多种引脚配置,如LQFP48、LQFP64等。 它集成了多个GPIO引脚,可以连接各种传感器和执行器,实现复杂的控制逻辑。 通过核心板与扩展板的结合使用,工程师可以快速搭建原型系统,缩短产品开发周期。 2. 软件开发: ES32VF2264LT支持Arduino IDE进行开发,这为初学者提供了便捷的入门途径。 Arduino IDE提供了丰富的库函数和示例代码,可以帮助开发者快速上手并实现功能。 对于高级用户,还可以使用ESP-IDF进行更深入的开发,以充分利用ES32VF2264LT的性能优势。 3. 应用领域: ES32VF2264LT广泛应用于白色家电、工业控制、智能人机交互等领域]。 在物联网领域,它可以作为网关或节点设备,实现数据的采集、传输和处理。 在消费电子领域,它可以用于游戏手柄、微型打印机等设备的控制。 综上所述,ES32VF2264LT在Arduino平台上具有广泛的应用前景和强大的性能优势。随着技术的不断发展和市场需求的不断增长,相信它将在未来的嵌入式应用中发挥越来越重要的作用。
  • 热度 1
    2024-11-25 21:28
    175 次阅读|
    0 个评论
    #include "ald_gpio.h" // 定义 GPIO 端口地址为指针类型 #define ALD_GPIO_PORT_A ((GPIO_TypeDef *)0x40021000) // 示例地址,替换为数据手册中的实际地址 #define ALD_GPIO_PORT_B ((GPIO_TypeDef *)0x40020000) // 示例地址,替换为数据手册中的实际地址 void gpio_init(void) { // 初始化LED引脚(PA15) ald_gpio_init(ALD_GPIO_PORT_A, ALD_GPIO_PIN_15, &gpio_init); // 初始化KEY引脚(PB7) ald_gpio_init(ALD_GPIO_PORT_B, ALD_GPIO_PIN_7, &gpio_init); } int main(void) { gpio_init(); while (1) { if (ald_gpio_read_pin(ALD_GPIO_PORT_B, ALD_GPIO_PIN_7)) { // 读取PB7引脚状态 ald_gpio_write_pin(ALD_GPIO_PORT_A, ALD_GPIO_PIN_15, 1); // 写入高电平,点亮LED(PA15) } else { ald_gpio_write_pin(ALD_GPIO_PORT_A, ALD_GPIO_PIN_15, 0); // 写入低电平,熄灭LED(PA15) } } return 0; } 没有烧录成功,可能是我的笔记本电脑,安装驱动有问题,虽然按照了手册操作,还是有报错,
  • 2024-11-22 16:50
    70 次阅读|
    0 个评论
    随着市场对嵌入式设备的功能需求越来越高,集成了嵌入式处理器和实时处理器的主控方案日益增多,以便更好地平衡性能与效率——实时核负责高实时性任务,A核处理复杂任务,两核间需实时交换数据。然而在数据传输方面,传统串行接口尽管成本较低,但其传输速率相对较慢;反之,并行接口虽然传输速度快,但成本却比较高。因此,单芯片多核异构处理器就成为能够满足需求的理想选择。 RISC-V作为一种开源指令集架构,以其简洁性、一致性、可扩展性以及高编译效率,为实时性处理场景提供了强大的支持。将A核与RISC-V核结合作为单芯多核异构方案,可以有效利用RISC-V的这些优势,实现高性能与高实时性的有效结合。 本文将以OK113i-S开发板为例,为大家介绍RISC-V核的资源和应用案例。 1、OK113i-S开发板的RISC-V核 飞凌嵌入式OK113i-S开发板是一款基于全志T113-i工业级处理器开发的高性价比开发板,集成了双核Cortex-A7 CPU、64位玄铁C906 RISC-V和DSP,能够提供高效的计算能力和性价比。尤为值得一提的是,其内置的RISC-V核心作为一款超高能效的实时处理器,主频峰值可达1008MHz,并标准配备了内存管理单元,能够流畅运行RTOS系统或裸机程序,进一步提升了应用灵活性。 1.1 RISC-V核的特性 (1) 最高主频可达1008MHz; (2) 32KB指令缓存; (3) 32KB数据缓存; (4) 可运行于超大容量的DDR ... ... 1.2 RISC-V核的接口资源 2、应用实例 2.1 SPI数据收发 本案例为SPI回环测试,即将SPI的MOSI和MISO两个引脚短接进行数据收发。 (1) 功能介绍 (2) 效果实现 SPI发送和接收的FIFO均为64个,在底层hal库程序中,当数据长度小于64字节时,采用中断方式,当FIFO大于等于64字节时,采用DMA模式。 中断方式传输效果: DMA方式传输效果: 在DMA传输方式下,SPI速率默认为5Mbit/s,案例中平均传输速率为580.43KB/s,即4.6Mbit/s,接近理论值。 2.2 核间通信RPbuf RPbuf是全志基于RPMsg所实现一套高带宽数据传输的框架。RPMsg是基于共享内存和Msgbox中断实现的一套核间通信机制,RPMsg除去头部的16字节数据外,单次最多可发送496字节有效数据。因此,全志基于RPMsg实现了一套大数据量传输机制RPbuf,实现原理是在DDR中放置传输的数据,通过RPMsg传输DDR的地址和大小。我们以单次32KB数据传输为例进行展示。 (1) 功能介绍 • VirtIO: 一套虚拟化数据传输框架,用于管理共享内存VRING; • VRING: 由VirtIO管理的一个环形共享内存; • Msgbox: 全志提供的一套消息中断机制,已与linux内核中原生的mailbox框架适配; • MSGBOX_IRQ: Msgbox中断; • RPMsg: 基于VirtIO管理的共享内存所实现一套少量数据传输的框架; • RPbuf: 全志基于RPMsg所实现一套大量数据传输的框架。 由上图可知(以RISC-V核向A核发送数据为例),RPbuf首先将数据放置在DDR中,再将缓冲区首地址和大小通过RPMsg发送至A核(RPMsg将缓冲区首地址和大小放入VRING,然后请求Msgbox中断,A核收到这个中断后,在回调函数中使用RPMsg接口函数来从VRING中取出cmd)。 随后A核从cmd handler中获取缓冲区内的地址和长度,最后在应用层读取数据,从而完成双核间的数据传输。 (2) 效果展示 由上图测试效果可以看到,带宽大约为27~30Mbps。 以上就是飞凌嵌入式OK113i-S开发板RISC-V核部分外设的使用方法,是不是感觉和单片机的开发一样简单方便呢?
  • 热度 3
    2024-11-17 06:44
    128 次阅读|
    0 个评论
    【CW32L010 Mini Board 测评】简介、点灯
    【CW32L010 Mini Board 测评】简介、点灯 CW32L010 Mini Board 是 武汉芯源半导体 设计的基于 CW32L010 的开发板, 简介 CW32L010 Mini Board 是基于 CW32L010F8U6 的 QFN 封装设计的最小系统核心板,产品规格与 CW32L010 芯片规格一致。便于客户灵活快速的评估芯片性能和产应用。 1.0mm的板厚、单面元器件设计、半孔工艺设计使得CW32L010核心板可以作为一个模块元器件贴装在项目中,减少焊接QFN封装带来的不便。 产品参数 内核:ARM® Cortex®-M0+ 工作温度:-40℃ 至 85℃ 工作电压:1.62V 至 5.5V 内置稳压器具有“正常”和“低功耗”两种工作模式,并且在复位后一直保持工作。 “正常”模式:对应全速操作的状态。 “低功耗”模式:对应部分供电工作状态,包括Sleep 和 DeepSleep 工作模式。 存储容量 64K 字节 FLASH,数据保持 25 年 @-40℃ ~ +85℃,支持擦写保护、读保护和安全运行库保护功能 4K 字节 RAM,支持硬件奇偶校验 22 字节 OTP 存储器 复位和电源管理 低功耗模式(Sleep,DeepSleep) 上电和掉电复位(POR/BOR) 可编程低电压检测器(LVD) 时钟管理 4 ~ 32MHz 晶体振荡器 32kHz 低速晶体振荡器 内置 48MHz RC 振荡器 内置 32kHz RC 振荡器 时钟监测系统 允许独立关断各外设时钟 支持最多 16+1 路 I/O 接口 所有 I/O 口支持具备滤波的中断功能 所有 I/O 口支持具备滤波的唤醒功能 所有 I/O 口支持迟滞及上拉输入 所有 I/O 口支持推挽及开漏输出 12 位模数转换器 最高 2M SPS 转换速度,各序列通道采样时间可单独配置 具备 8 个转换结果寄存器 内置 1.2V 电压基准 模拟看门狗功能 内置温度传感器 双路电压比较器 实时时钟和日历 支持由 Sleep/DeepSleep 模式唤醒 定时器 16位高级控制定时器,支持6路输入捕获,支持6对带死区的互补PWM输出,支持双点比较,支持 PWM 移相 一组 16 位通用定时器 三组 16 位基本定时器 一组 16 位低功耗定时器 独立看门狗定时器 通信接口 二路低功耗 UART,支持小数波特率,支持低功耗接收数据,支持可配置电平转换,其中一路支持 LIN 通信接口 一路 SPI 接口 24Mbit/s,支持 4~16bit位宽 一路 I2C 接口 1Mbit/s,支持可配置电平转换,支持SMBUS IR 调制器,可编程占空比和极性 串行调试接口 (SWD) 80 位唯一 ID 注意:板子出厂时默认为无程序状态,上电灯不亮。需要上传程序才可以点亮 LED. 相关资料: L010新品开发板-活动与资料合集 . 原理图 开发环境搭建 下载并安装 Keil - MDK IDE . 下载并安装芯片开发包 WHXY.CW32L010_DFP.1.0.0.pack . 代码 打开例程 CW32L010_StandardPeripheralLib_V1.0.2 - Examples - GPIO - gpio_blink 修改 main.c 中的 GPIO 定义,由原理图可知,板载 LED 为 GPIO_B2 输出低电平点亮 # define LED_GPIO_PORT CW_GPIOB # define LED_GPIO_PINS GPIO_PIN_0 void Delay ( uint16_t nCount) ; int32_t main ( void ) { GPIO_InitTypeDef GPIO_InitStruct = { 0 }; SYSCTRL_HSI_Enable (SYSCTRL_HSIOSC_DIV12); __SYSCTRL_GPIOA_CLK_ENABLE(); __SYSCTRL_GPIOB_CLK_ENABLE(); GPIO_InitStruct.IT = GPIO_IT_NONE; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pins = LED_GPIO_PINS; GPIO_Init (LED_GPIO_PORT, &GPIO_InitStruct); while ( 1 ) { GPIO_TogglePin (LED_GPIO_PORT, LED_GPIO_PINS); Delay ( 0xFFFF ); } } 重编译工程,上传工程至开发板。 这里使用 PWLink 连接开发板。 效果
  • 2024-11-15 17:45
    38 次阅读|
    0 个评论
    本篇测评由优秀测评者“eefocus_3914144”提供。 本文将介绍基于米尔电子MYD-LMX93开发板(米尔基于NXP i.MX93开发板)的基于OpenCV的人脸检测方案测试。 OpenCV提供了一个非常简单的接口,用于相机捕捉一个视频(我用的电脑内置摄像头) 1、安装python3-opencv apt install python3-opencv 2、查看摄像头支持的格式与分辨率 root @debian :~ # v4l2-ctl --device=/dev/video0 --list-formats-ext 经测试,只能支持640*480 为此建立opencv_test.py import cv2 video = cv2.VideoCapture( 0 ) 设置相机参数 video .set(cv2.CAP_PROP_FRAME_WIDTH, 1280) video .set(cv2.CAP_PROP_FRAME_HEIGHT, 720) while True: ret, frame = video. read () cv2. imshow ( "A video" , frame) c = cv2. waitKey ( 1 ) if c == 27 : breakvideo. release ()cv2. destroyAllWindows () 保存后执行”python3 opencv_test.py OpenCV装好后,可以为后面的人脸检测提供可行性。 要实现人脸识别功能,首先要进行人脸检测,判断出图片中人脸的位置,才能进行下一步的操作。 OpenCV人脸检测方法 在OpenCV中主要使用了两种特征(即两种方法)进行人脸检测,Haar特征和LBP特征。用得最多的是Haar特征人脸检测,此外OpenCV中还集成了深度学习方法来实现人脸检测。 【参考资料】 使用OpenCV工具包成功实现人脸检测与人脸识别,包括传统视觉和深度学习方法(附完整代码,模型下载......)_opencv人脸识别-CSDN博客 【Haar级联检测器预训练模型下载】 opencv/opencv: Open Source Computer Vision Library (github.com) 下载好的,在 opencv-4.xdatahaarcascades 文件夹下有模型,把他上传到开发板。 【获取检测人脸的图片】 我在百度上找到了**的图片,并把它也上传到开发板。 【编写检测代码】 import numpy as np import cv2 as cv if __name__ == '__main__' : # (6) 使用 Haar 级联分类器 预训练模型 检测人脸 # 读取待检测的图片 img = cv.imread( "yanmi.jpg" ) print (img.shape) # 加载 Haar 级联分类器 预训练模型 model_path = "haarcascade_frontalface_alt2.xml" face_detector = cv.CascadeClassifier(model_path) # # 使用级联分类器检测人脸 faces = face_detector.detectMultiScale(img, scaleFactor= 1.1 , minNeighbors= 1 , minSize=( 30 , 30 ), maxSize=( 300 , 300 )) print (faces.shape) # (17, 4) print (faces ) # (x, y, width, height) # 绘制人脸检测框 for x, y, width, height in faces: cv.rectangle(img, (x, y), (x + width, y + height), ( 0 , 0 , 255 ), 2 , cv.LINE_8, 0 ) # 显示图片 cv.imshow( "faces" , img) cv.waitKey( 0 ) cv.destroyAllWindows() 【实验效果】 运行程序后,可以正确地识别,效果如下:
相关资源