社区首页
技术讨论创新帖
全部新帖
资料区
社区活动
联系管理员
★ 社区积分制度
★ 新手必读
★ 申请版主★
请
登录
后使用快捷导航
没有帐号?
注册
首页
|
电子技术
|
嵌入式
模拟电子
单片机
电源管理
传感器
半导体
电子应用
|
工业控制
物联网
汽车电子
网络通信
医疗电子
手机便携
测试测量
安防电子
家用电子
机器人
新能源
电子头条
|
社区
|
论坛
测评
博客
大学堂
|
下载
|
下载中心
电路图
精品文集
电路图
|
参考设计
|
Datasheet
|
活动
|
直播
datasheet
datasheet
文章
搜索
登录
注册
中文
En
论坛
切换旧版
电子工程世界-论坛
»
论坛
›
电子技术交流
›
国产芯片交流
›
全志R128 SDK HAL 模块开发指南——CSI
返回列表
发新帖
回复
阅
496
|
回
0
aleksib
当前离线
纯净的硅(中级)
最后登录
2025-1-6
在线时间
40 小时
威望
998分
芯积分
511分
(兑换)
E金币
0枚
(兑换)
(兑换)
好友
0
aleksib
287
帖子
0
TA的资源
纯净的硅(中级)
+ 好友
私信
楼主
发表于2024-3-21 11:33
只看该作者
全志R128 SDK HAL 模块开发指南——CSI
[复制链接]
# CSI 介绍sunxi 平台RTOS 上CSI_JPEG 驱动hal 的一般使用方法及调试接口,为开发与调试提供参考。 ## 模块介绍 ### SENSOR -> CSI 通路 CSI (CMOS sensor interface)接口时序上可支持独立 SYNC 和嵌入 SYNC(CCIR656)。支持接收 YUV422 或 YUV420 数据。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/50615e73e9844c86878ebc36f7de0207.png#pic_center) VSYNC 和HSYNC 的有效电平可以是正极性,也可以是负极性。在配置时,需要保证摄像头和 CSI 内部配置保持一致。 最常见的 YUV422 格式输入后,内部只能处理成 YUV420 格式,并输出到 memory 存以 NV12布局形式。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/2dbdef73e10d42afb37f7ffe4144845a.png#pic_center) ### CSI -> JPEG 通路 #### 编码格式 JPEG 模块只支持 YUV420 格式的编码,因此 CSI 捕获的数据输出给 JPEG 模块编码的图像格式必须是 YUV420。若 CSI 输入 JPEG 模块是 JPEG 码流,JPEG 模块也能正常将其输出。 #### 编码模式 JPEG 模块支持 online 及 offline 模式编码。 - online 模式即在线模式,CSI 每接收到 16 行数据就自动进行 JPEG 编码,当前帧图像接收完,编码也随即完成。该模式 CSI 不会将接收的原始图像数据保存起来,只输出 JPEG 编码后的数据。编码数据输出的方式又有:整帧模式和分块模式。 - offline 模式即离线模式,CSI 接收到的数据会先存到内存中,待一帧完整数据全部存储完成后,由软件启动 JPEG 编码。所以此时 JPEG 不是实时处理,可以对任何已经保存好的 YUV420 图像数据进行编码。 ##### online 模式 Online 模式的通路框图如下图所示: ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/de39fcd846c54effa6baf3105f75c232.png#pic_center) Sensor(摄像头) 输出 YUV422 格式数据到 CSI,CSI 接收到 YUV422 后处理成 YUV420 格式,每接收到 16 行数据后,硬件会自动启动 JPEG encoder 进行一次编码操作,编码输出的码流通过总线直接写到设定好的内存中,故可认为 Online 模式下图像的接收和编码是同时进行的。在一帧数据接收完并编码结束后,JPEG encoder 会产生 ve finish(编码完成) 中断。因此,对图像分辨率的要求是行列数为 16 的整数倍,支持的最小分辨率为 32*32。 Online 分块模式与整帧模式的区别在于,分块模式可以在 JPEG 编码输出数据量达到设定值 (例如 2KB/4KB) 后产生中断,并且可以在一帧编码过程中循环使用编码输出空间,例如只分配 8KB的编码输出空间,而一帧图像编码数据有 20KB,则在第一次写满 8KB 后,JPEG 将会从这 8KB的首地址开始存储,循环使用,故需要软件配合将之前的数据读走,否则之前的数据会被覆盖。 ##### offline 模式 Offline 模式的通路框图如下图所示: ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/27f4c936aeb2478dbe24462f7852fb63.png#pic_center) Offline 模式下,CSI 会将 YUV420 的原始图像数据存储到 YUV memory 中,存放格式为NV12。一帧图像全部存完后,产生写回中断 (wb finish),然后由软件启动 JPEG 开始编码, JPEG 编码器会读取 YUV memory 中的原始数据送给 Encoder 进行编码,编码后的数据写到JPEG memory 中。 ## 模块配置 其menuconfig 的配置如下(以选择GC0308 摄像头为例): ```c Drivers Options ---> soc related device drivers ---> CSI Devices ---> [*] enable csi driver [*] enable csi camera driver [*] csi camera choice ---> --- csi camera choice [*] csi camera GC0308 [*] enable jpeg encoder [*] enable csi demo test command// csi_jpeg模块测试用例 ``` ## 源码结构 驱动位于 `rtos-hal/hal/source/drivers/hal/source/csi` ```c csi/ ├── csi_camera/ ;csi driver │ ├── csi.c │ ├── csi.h │ ├── csi_reg/ │ │ ├── csi_reg.c │ │ └── csi_reg.h │ └── sensor/ ;cmos sensor driver │ ├── drv_gc0308.c │ ├── sensor_helper.c │ └── sensor_helper.h ├── hal_csi_jpeg.c ;csi_jpeg模块驱动实现主体 ├── jpeg/ ;jpeg driver │ ├── hal_jpeg.c │ ├── hal_jpeg.h │ ├── jpegenc.c │ ├── jpegenc.h │ ├── jpeglib.c │ ├── jpeglib.h │ ├── jpeg_marker.h │ └── jpeg_reg/ │ ├── jpeg_reg.c │ └── jpeg_reg.h └── utility ├── cj_board_cfg.h ├── cj_platform_cfg.h └── sensor/ ├── camera_sensor.h └── drv_gc0308.h ``` ## 模块接口说明 ### 数据结构 #### `csi_jpeg_fmt` 作用:用于描述csi_jpeg 模块的属性参数 成员: - line_mode:JPEG 的工作模式。 - output_mode:CSI_JPEG 的输出图像格式。 - cb:CSI/JPEG 的硬件中断的回调函数。可以用做实现JPEG 分块模式的数据提取功能。 ```c struct csi_jpeg_fmt { unsigned int width; unsigned int height; enum line_mode_t line_mode; enum pix_output_fmt_mode_t output_mode; CapStatusCb cb; unsigned char fps; //reserve }; // 成员line_mode结构体 enum line_mode_t { OFFLINE_MODE = 0, ONLINE_MODE, }; // 成员output_mode结构体 enum pix_output_fmt_mode_t { PIX_FMT_OUT_NV12 = 0x1, PIX_FMT_OUT_JPEG = 0x2, PIX_FMT_OUT_MAX = 0x3, }; ``` #### `csi_ipeg_mem` 作用:用于描述 CSI/JPEG 模块所申请 buffer 相关的属性信息 成员: - buf : 所申请的 buffer。 - mpart_info : JPEG 分块模式的块属性信息。 ```c struct csi_ipeg_mem { unsigned char index; struct csi_ipeg_buf buf; jpeg_mpartbuffinfo mpart_info; struct list_head list; }; // 成员buf结构体 struct csi_ipeg_buf { unsigned int size; void *addr; }; // 成员mpart_info结构体 typedef struct { uint8_t buff_index; /* Indicate which buffer the currently encoded part jpeg is stored in */ uint32_t buff_offset; /* Indicate the offset of the current part of jpeg in the buffer */ uint8_t tail; /* Indicates whether it is the last part of a jpeg image */ uint32_t size; /* Indicate the size of the current part of jpeg encoding */ } jpeg_mpartbuffinfo; ``` ### 模块加载初始化 csi_jpeg 模块的加载函数,主要是CSI/JPEG 模块的初始化、申请中断和clk 初始化等 函数原型: ```c HAL_Status hal_csi_jpeg_probe(void) ``` 参数: - 无 返回值: - 0:成功 - 负数:失败 ### 模块去初始化 csi_jpeg 模块的移除函数,主要是CSI/JPEG 模块的反初始化、注销中断和clk 反初始化等。 ```c HAL_Status hal_csi_jpeg_remove(void) ``` 参数: - 无 返回值: - 0:成功 - 负数:失败 ### 配置参数 设置csi_jpeg 模块的属性参数。 函数原型: ```c void hal_csi_jpeg_set_fmt(struct csi_jpeg_fmt *intput_fmt) ``` 参数: - intput_fmt:指向csi_jpeg_fmt 结构体类型的配置参数。 返回值: - 无 ### 申请图像buffer CSI/JPEG 模块获取存放图像数据的buffer。多个缓存可以用于建立FIFO,来提高视频采集的效率。 函数原型: ```c int hal_csi_jpeg_reqbuf(unsigned int count) ``` 参数: - count: buffer 数目 返回值: - 0:成功 - 负数:失败 ### 释放图像buffer CSI/JPEG 模块释放存放图像数据的buffer。 函数原型: ```c int hal_csi_jpeg_freebuf(void) ``` 参数: - 无 返回值: - 0:成功 - 负数:失败 ### 配置流开关 csi_jpeg 模块的开流/关流函数,主要是CSI/JPEG 模块的配置和控制CSI 采集功能等。 函数原型: ```c void hal_csi_jpeg_s_stream(unsigned int on) ``` 参数: - on:“非0” 值代表开启,“0” 值代表关闭 返回值: - 无 ### CSI buffer 出列 将CSI driver 已经填充好数据的 buffer 出列,供应用使用。 函数原型: ```c unsigned int hal_csi_dqbuf(struct csi_ipeg_mem *csi_mem, unsigned int timeout_msec) ``` 参数: - csi_mem:CSI buffer,指向csi_ipeg_mem 结构体类型的配置参数。 - timeout_msec:单位ms。 返回值: - 正数代表成功,返回csi_mem - 负数代表失败 ### CSI buffer 入队 将 User 空间已经处理过的buffer,重新入队,移交给CSI driver,等待填充数据。 函数原型: ```c void hal_csi_qbuf(void) ``` 参数: - 无 返回值: - 无 ### JPEG buffer 出列 将 JPEG driver 已经填充好数据的 buffer 出列,供应用使用。 函数原型: ```c unsigned int hal_jpeg_dqbuf(struct csi_ipeg_mem *jpeg_mem, unsigned int timeout_msec) ``` 参数: - jpeg_mem:JPEGbuffer,指向csi_ipeg_mem 结构体类型的配置参数。 - timeout_msec:单位ms。 返回值: - 正数代表成功,返回csi_mem - 负数代表失败 ### JPEG buffer 入队 将User 空间已经处理过的buffer,重新入队,移交给JPEG driver,等待填充数据。 函数原型: ```c void hal_jpeg_qbuf(void) ``` 参数: - 无 返回值: - 无 ## 模块使用范例 ### online 模式 ```c #include
#include
#include
#include "FreeRTOS/_os_semaphore.h" #include "FreeRTOS/_os_time.h" #include "sunxi_hal_twi.h" #include
#include
#include
#include
#include "hal_csi_jpeg.h" #include "jpegenc.h" #include "cj_platform_cfg.h" /* Macro JPEG_MPART_ENABLE defined in jpegenc.h */ #if JPEG_MPART_ENABLE #define JPEG_MPART_SIZE (50*1024) #endif static int read_whole_jpg(struct csi_ipeg_mem *jpeg_mem, int order) { FILE* fd; long long res; void *addr; int size; char name[128]; hal_log_info("%s line: %d addr = 0x%08x size = %d\n", __func__, __LINE__, jpeg_mem->buf.addr, jpeg_mem->buf.size); sprintf(name, "/data/test_%d.jpg", order); fd = fopen(name, "ab"); if (fd < 0) { hal_log_info("open /data/test.jpg error %d\n", fd); return -1; } addr = jpeg_mem->buf.addr - JPEG_HEADER_LEN; size = jpeg_mem->buf.size + JPEG_HEADER_LEN; res = fwrite(addr, size, 1, fd); if (res < 0) { hal_log_info("write fail(%d), line%d..\n", res, __LINE__); fclose(fd); return -1; } hal_log_info("write JPEG image ok\n"); fclose(fd); return 0; } static int read_part_jpg(void *addr, int size, int order) { FILE* fd; long long res; char name[128]; hal_log_info("%s line: %d addr = 0x%08x size = %d\n", __func__, __LINE__, addr, size); sprintf(name, "/data/test_%d.jpg", order); fd = fopen(name, "ab"); if (fd < 0) { hal_log_info("open /data/test.jpg error %d\n", fd); return -1; } res = fwrite(addr, size, 1, fd); if (res < 0) { hal_log_info("write fail(%d), line%d..\n", res, __LINE__); fclose(fd); return -1; } hal_log_info("write JPEG image ok\n"); fclose(fd); return 0; } #if JPEG_MPART_ENABLE static uint8_t* gmpartaddr[3]; static uint32_t gmpartsize[3]; static void jpeg_mpart_cb(struct csi_ipeg_mem *jpeg_mem) { static uint32_t offset = 0; static int index = 0; hal_dcache_clean_invalidate((unsigned long)jpeg_mem->buf.addr + jpeg_mem->mpart_info.buff_offset, jpeg_mem->mpart_info.size); /* necessary operation */ memcpy(gmpartaddr[index] + offset, jpeg_mem->buf.addr + jpeg_mem->mpart_info.buff_offset, jpeg_mem->mpart_info.size); offset += jpeg_mem->mpart_info.size; if (jpeg_mem->mpart_info.tail) { /*encode one jpeg finish */ gmpartsize[index] = offset; offset = 0; index++; if (index > 3) index = 0; } } #endif static void main_test() { struct csi_jpeg_fmt fmt; unsigned int count, i; struct csi_ipeg_mem *csi_mem; struct csi_ipeg_mem *jpeg_mem[3]; unsigned int test_count; unsigned int timeout_msec; unsigned int j = 0; fmt.width = 640; fmt.height = 480; fmt.line_mode = ONLINE_MODE; fmt.output_mode = PIX_FMT_OUT_MAX; #if JPEG_MPART_ENABLE fmt.cb = &jpeg_mpart_cb; #endif hal_csi_jpeg_set_fmt(&fmt); count = 3; if (hal_csi_jpeg_reqbuf(count) != 0) { return; } test_count = 3; hal_csi_jpeg_s_stream(1); hal_log_info("csi stream on!"); timeout_msec = 2000; #if JPEG_MPART_ENABLE for (i = 0; i < count; i++) { gmpartaddr[i] = malloc(JPEG_MPART_SIZE); hal_log_info("jpeg pic addr = %x\n", gmpartaddr[i]); memset(gmpartaddr[i], 0 , JPEG_MPART_SIZE); } #endif while (test_count-- > 0) { jpeg_mem[j] = hal_jpeg_dqbuf(jpeg_mem[j], timeout_msec); hal_jpeg_qbuf(); j++; if (j > count) j = 0; } hal_disable_irq(CSI_JPEG_IRQn); #if JPEG_MPART_ENABLE for (i = 0; i < count; i++) { read_part_jpg(jpeg_mem[i]->buf.addr - JPEG_HEADER_LEN, JPEG_HEADER_LEN, i); read_part_jpg(gmpartaddr[i], gmpartsize[i], i); free(gmpartaddr[i]); } #else for (i = 0; i < count; i++) read_whole_jpg(jpeg_mem[i], i); #endif hal_csi_jpeg_s_stream(0); hal_csi_jpeg_freebuf(); hal_log_info("csi stream off!!\n"); } int cmd_csi_jpeg_online_test(int argc, const char **argv) { hal_log_info("csi jpeg demo started\n"); hal_csi_jpeg_probe(); main_test(); hal_csi_jpeg_remove(); hal_log_info("csi jpeg demo over\n"); return 0; } FINSH_FUNCTION_EXPORT_CMD(cmd_csi_jpeg_online_test, hal_csi_jpeg_online, csi jpeg online encode test) ``` ### offline 模式 ```c #include
#include
#include
#include "FreeRTOS/_os_semaphore.h" #include "FreeRTOS/_os_time.h" #include "sunxi_hal_twi.h" #include
#include
#include
#include
#include "hal_csi_jpeg.h" #include "jpegenc.h" static int out_fmt = 0; #define CSI_JPEG_IRQn 109// rv //#define CSI_JPEG_IRQn 93// arm static int read_frame(struct csi_ipeg_mem *csi_mem) { FILE* fd; long long res; hal_disable_irq(CSI_JPEG_IRQn);// when write bin, close irq, r/w too slow hal_log_info("%s line: %d addr = 0x%08x size = %d\n", __func__, __LINE__, csi_mem->buf.addr, csi_mem->buf.size); fd = fopen("/data/nv12.bin", "ab"); if (fd < 0) { hal_log_info("open /data/nv12.bin error %d\n", fd); return -1; } res = fwrite(csi_mem->buf.addr, csi_mem->buf.size, 1, fd); if (res < 0) { hal_log_info("write fail(%d), line%d..\n", res, __LINE__); fclose(fd); return -1; } hal_log_info("write YUV image ok\n"); fclose(fd); hal_enable_irq(CSI_JPEG_IRQn); // after write bin, open irq, r/w too slow return 0; } static int read_jpg(struct csi_ipeg_mem *jpeg_mem) { FILE* fd; long long res; void *addr; unsigned int size; char name[128]; hal_disable_irq(CSI_JPEG_IRQn);// cfm when write bin, close irq hal_log_info("%s line: %d addr = 0x%08x size = %d\n", __func__, __LINE__, jpeg_mem->buf.addr, jpeg_mem->buf.size); fd = fopen("/data/test.jpg", "ab"); if (fd < 0) { hal_log_info("open /data/test_online.jpg error %d\n", fd); return -1; } addr = jpeg_mem->buf.addr - JPEG_HEADER_LEN; size = jpeg_mem->buf.size + JPEG_HEADER_LEN; res = fwrite(addr, size, 1, fd); if (res < 0) { hal_log_info("write fail(%d), line%d..\n", res, __LINE__); fclose(fd); return -1; } hal_log_info("write JPEG image ok\n"); fclose(fd); hal_enable_irq(CSI_JPEG_IRQn); // cfm after write bin, open irq return 0; } static void main_test() { struct csi_jpeg_fmt fmt; unsigned int count; struct csi_ipeg_mem *csi_mem; struct csi_ipeg_mem *jpeg_mem; unsigned int test_count; unsigned int timeout_msec; fmt.width = 640; fmt.height = 480; fmt.line_mode = OFFLINE_MODE; fmt.output_mode = PIX_FMT_OUT_MAX; hal_csi_jpeg_set_fmt(&fmt); count = 3; if (hal_csi_jpeg_reqbuf(count) != 0) { return ; } hal_csi_jpeg_s_stream(1); hal_log_info("csi stream on!"); test_count = 200; timeout_msec = 2000;// recommend 2s, 10s for pm test if (!out_fmt) { while (test_count-- > 0) { hal_log_info("test count = %d\n", test_count); csi_mem = hal_csi_dqbuf(csi_mem, timeout_msec); if (test_count == 1) read_frame(csi_mem); hal_csi_qbuf(); } } else { while (test_count-- > 0) { hal_log_info("test count = %d\n", test_count); jpeg_mem = hal_jpeg_dqbuf(jpeg_mem, timeout_msec); if (test_count == 1) read_jpg(jpeg_mem); hal_jpeg_qbuf(); } } hal_csi_jpeg_s_stream(0); hal_csi_jpeg_freebuf(); hal_log_info("csi stream off!!\n"); } struct rt_thread *thread; static void csi_thread(void *data) { hal_log_info("csi jpeg demo started\n"); hal_csi_jpeg_probe(); main_test(); hal_csi_jpeg_remove(); hal_log_info("csi jpeg demo over\n"); kthread_stop(thread); return 0; } int cmd_csi_jpeg_offline_test(int argc, const char **argv) { int ret; if (argc < 2) { hal_log_info("Usage: hal_csi_jpeg_offline num. num: 0 is nv12, 1 is jpeg\n"); } else { out_fmt = strtol(argv[1], NULL, 0); } thread = kthread_create((void *)csi_thread, NULL, "csi_thread", 409600, HAL_THREAD_PRIORITY_SYS); kthread_start(thread); return 0; } FINSH_FUNCTION_EXPORT_CMD(cmd_csi_jpeg_offline_test, hal_csi_jpeg_offline, csi jpeg offline encode test) ```
此帖出自
国产芯片交流论坛
点赞
关注
(0)
回复
分享
扫一扫,分享给好友
复制链接分享
链接复制成功,分享给好友
举报
提升卡
变色卡
千斤顶
返回列表
发新帖
回复
您需要登录后才可以回帖
登录
|
注册
发表回复
回帖后跳转到最后一页
活动
更多>>
有奖直播 | ADI 超低功耗 MCU MAX326xx 系列介绍
走近 AI 重磅新品 STM32N6,解锁在 MCU 部署高性能、节能型边缘 AI!答题有好礼~还有开发板等你拿!
Microchip 直播|多相降压电源控制技术的发展与探讨 报名中!
安世半导体智能工业应用探索站,闯关赢好礼!
24年年终盘点来啦!精选强推:原创、测评、拆解、视频、资料
PI 电源小课堂:集成式半桥驱动IC BridgeSwitch 2, 助力高效永磁同步电机逆变器的设计
Microchip喊你探索dsPIC33A 芯片,70份好礼等你赢!
【瓜分2500元红包】票选2024 DigiKey “感知万物,乐享生活”创意大赛人气作品TOP3!
开源项目
更多>>
合宙820开发板 X-MagicBox-820覆铜有问题
使用 NXP Semiconductors 的 PCF2129A 的参考设计
1811571117-QN8027
MC10XS3535 智能前角灯开关的简化应用图
AD8037-EB,具有 AD8037 宽带宽、低失真钳位放大器的评估板
LT1109CN8 具有停机功能的 3V 至 5V 转换器的典型应用电路
电流电压表-USB测试仪-V2.0 copy copy
16W, 2.5V, 3.3V, 5V, 12V, 22V, 30V 交流转直流多路输出液晶电视电源
[测试通过] windows hello 摄像头驱动
MC33PF3000A5ES PMIC 解决方案电源管理的典型应用
随便看看
具身智能机器人仿真平台市场调查报告
具身智能机器人仿真平台是用于模拟、测试和验证具身智能机器人在物理环境中与任务、工具、障碍物等交互的虚拟环境平台。这些平台通过高度仿真机器人的运动学、动力学、感知、控制、任务执行等多个方面,提供了一个低成本、高效率的开发和测试环境。具身智能机 ...
汽车玻璃升降器行业数据分析报告2025-恒州诚思
【嘉楠K230开发板】人脸检测
Qorvo 眼里的 WiFi 6 机遇与挑战
怎么样学好单片机及我的大学四年(转载)一
关于C语言中(LONG)的用法?
u盘隐藏文件恢复工具
关于GPRS模块用LM317做稳压电源的问题
查找数据手册?
搜索
EEWorld Datasheet 技术支持
热门标签
源代码
单片机
放大器
TI
ST
电源
分立器件
传感器
测试测量
模拟
模拟电子技术基础第四版pdf
RDVKeyboardAvoiding
802.11无线技术
固定翼无人机
电化学极化
总线型拓扑
复谐振
GPS
FPC
NVR
相关文章
更多>>
德州仪器 2024年Q4财报解析:中国市场增长亮眼,目前没有收到反垄断调查通知
在 2024 年第四季度收益电话会议上,德州仪器(TI)向外界展示了一些好消息,尤其是凸显了中国市场在其全球布局中的关键地位。 第四季度,TI 收入为 40 亿美元,环比下降 3%,比去年同期下
欧盟提议成立高级研究机构:专注于AI等战略技术以加强竞争力
据彭博社报道,欧盟将提议仿照美国政府实体建立一个高级研究项目机构,对战略技术进行投资,以此作为提高欧盟竞争力的更广泛努力的一部分。 欧盟还将呼吁为 AI 建设新的超级计算基础设施。知情人士及文件显示
传台积电报废三万片晶圆,三万片受损
晶圆代工龙头厂台积电位于南科的晶圆厂,受地震影响的机台设备移位、晶圆破损经过抢修后,供应链传出,3、 5纳米的先进制程晶圆十八厂,预计将于23日达100%复机,准备恢复正常生产,晶圆十四厂复机还没有
中国芯片出口连续14个月增长
特朗普退出巴黎协定,芯片业碳中和完了没?
汇顶科技 2024 年业绩亮眼,展现强劲发展韧性
谷歌母公司:美国AI难保证对华领先 不少方面是落后
消息称三星电子砍半晶圆代工部门 2025 年设备投资预算,陡降至 5 万亿韩元
史上最佳表现:SK 海力士 2024 年营业利润 23.5 万亿韩元
宇树发布“踢足球”机器人G1-Comp,网友:国足有救了
新帖速递
STM32和无源蜂鸣器播放声音的问题
车规级AECQ200介绍,混合铝电解电容器的选择
嵌入式教程_DSP技术_DSP实验箱操作教程:2-28 搭建轻量级WEB服务器实验
OPA847IDBVR运放器国产替代
AG32VF407测试UART
【得捷电子Follow Me第二期】第一章 收到货物的分享
请问这个红外接收头是什么型号?能用哪个型号代替?谢谢
出售全新未拆封ZYNQ 7Z020 FPGA核心板
用在锂电池供电的水表设置上的LORA模块,当有100块水表集中安装在一个楼道内时,节能
请问一下,当某个端口被设置为 RX0后,这个端口的输入输出方向还有必要设置吗
今年怎么这么难,比疫情时还难,三十了面临失业好迷茫
请教稳压管测试问题
【小华HC32F448测评】关于小华半导体的UART中断发送和PRINTF构造和重定向
【BIGTREETECH PI开发板】 HDMI输出测试
【BIGTREETECH PI开发板】+08.音频测试(zmj)
开发板申请:拥有 AI 加持的 STM32N6570-DK 免费试用 !
申请时间:即日起-3月2日
查看 »
安世半导体智能工业应用探索站,闯关赢好礼!
点击页面内“开始探索”按钮,填写并提交表单;
请根据序号依次完成3个安世半导体智能工业应用的探索,并根据给出的资料完成共计9题(每个应用3题),答对5题以上的玩家即可获得抽奖资格;
每人仅有一次参与答题的机会,请慎重作答,活动结束后,我们将抽取30位玩家赠送礼品。
查看 »
Microchip 直播|多相降压电源控制技术的发展与探讨 报名中!
直播主题:多相降压电源控制技术的发展与探讨
直播时间:2025年2月25日(星期二)上午10:30-11:30
快来报名!
查看 »
回帖赢好礼 | 关于无线技术的那些事儿
【活动时间】即日起—2025年1月31日
【活动好礼】50元京东卡
查看 »
答题赢好礼,PI电源小课堂第3期来啦!
本期内容:集成式半桥驱动IC BridgeSwitch 2, 助力高效永磁同步电机逆变器的设计
活动时间:即日起-2月28日
看视频答题即可赢取京东卡!
查看 »
Microchip喊你探索 dsPIC33A 芯片,70份好礼等你赢!
活动时间:即日起-1月26日
活动奖励:随身Wi-Fi、家用多功能电烤箱、20000mAh充电宝、50元京东卡
查看 »
DigiKey应用探索站重磅上线!潮流应用,硬核技术探秘,N多干货,一站get!
当月好物、热门技术资源、潮流应用技术、特色活动、DigiKey在线实用工具,干货多多~
查看 »
本周精选下载推荐:电源管理基础Dummies
本周小编给大家带来一本超简单、超干货的电子书——《电源管理基础Dummies》!内容深入浅出,排版舒服简洁,分分钟能get到电源管理最核心的知识内容。
查看 »
关闭
站长推荐
1
/8
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
电信业务审批[2006]字第258号函
京公网安备 11010802033920号
Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复
返回顶部
返回列表
论坛首页
版块列表
专业技术中心
TI技术论坛
ST传感器与低功耗无线技术论坛
ADI参考电路
DigiKey得捷技术专区
ADI · 世健工业技术
电子技术交流
边缘AI
嵌入式系统
单片机
国产芯片交流
电机控制
FPGA/CPLD
模拟电子
电源技术
无线连接
传感器
PCB设计
综合技术交流
下载中心专版
大学堂专版
测评中心专版
行业应用
汽车电子
机器人开发
工业自动化与控制
能源基础设施
医疗电子
消费电子
创意与实践
电子竞赛
DIY/开源硬件专区
淘e淘
创意市集
休息一下
聊聊、笑笑、闹闹
工作这点儿事
为我们提意见&公告
EEWorld颁奖专区
信息发布
最新帖子
最新帖子
最新回复
精华
消灭零回复
测评中心
活动中心
积分兑换
E金币兑换
芯积分
厂商专区
TI技术论坛
ST传感器与低功耗无线技术论坛