tag 标签: 原创奖励

相关帖子
相关博文
  • 热度 2
    2025-3-15 20:58
    241 次阅读|
    0 个评论
    【原创奖励】 esp32s3使用platformio 点亮1.69寸TFT历程之LVGL移植
    esp32s3使用platformio 点亮1.69寸TFT历程之LVGL移植 继上一篇我历经很久的时间点亮了1.69寸TFT之后。我开始进行LVGL的移植。开始LVGL的学习。用platformio 开发esp32s3真的好方便。按照上一节的环境。本次由于需要使用LVGL。打开platformio lib界面搜索LVGL。目前里面的版本是9.2.2。我使用的8.3.6。然后按照下图加载到自己的工程项目。 待加载完毕后。我们会看到libdeps下面会出现LVGL库 好了,这一步完成后。我们就开始移植了,更改里面的代码适配硬件。 第一步:把lv_conf_template.h重命名为lv_conf.h。然后使能LVGL 第二步:设置周期:默认显示刷新周期为30ms,我们把它更改为1ms。LVGL将重新绘制改变的区域与这个周期时间,输入设备读取周期毫秒 第三步:心跳使能 第四步:开启demo案例,我们这里用的是widget Mian 文件里setup()里调用的函数 第五步:把DEMO文件夹拉至SRC文件夹下, 将.pio\libdeps\esp32-s3-devkitc-1\lvgl\examples\arduino\LVGL_Arduino\LVGL_Arduino.ino文件内容复制出来做更改移植。加入头文件。 第六步:根据硬件显示屏分辨率,设置相应的参数(竖屏改为横屏显示) 第七步:更改变量类型lv_disp_t修改为lv_disp_drv_t 第八步:由于我这个屏幕没有触摸,就把触摸部分的代码屏蔽了 以上步骤完成后进行编译,烧录。iframe height=340 width=100% allowscriptaccess="always" src='https://u.eet-china.com/video/iframe/3896' frameborder=0 allowfullscreen="true"/iframe参考 Hi1L 博主的博客,完成的初步的LVGL移植。效果如下: 在此基础上,我尝试了运行lv_demo_benchmark(); 打开该函数,屏蔽lv_demo_widgets() 将LV_USE_DEMO_WIDGETS 0关闭 将LV_USE_DEMO_BENCHMARK 1打开 再次进行编译,烧录。完美运行。 esp32s3使用platformio 点亮1.69寸TFT历程之LVGL移植初尝试成功,由于没有触摸后能,后面将进行按键或编码器进行控制来进行LVGL的进阶学习。
  • 热度 2
    2025-3-10 22:09
    165 次阅读|
    0 个评论
    【原创奖励】esp32s3使用platformio  点亮1.69寸TFT历程
    上个月在立创商城搞了一块ESP32S3R8N8,然后从优信电子淘了一块1.69寸ISP的屏幕,来学习lvgl相关的知识这两个电子元器件还是很精致的。立创在学习资料还是非常丰富的。可以从入门到精通。 对于ESP32S3R8N8,立创提供了几中语言和开发工具的入门(如下图),我选择了Arduino赛道。 我选择VS code +Platformio 来进行我的1.69寸显示屏点亮。在 platformio搭建Arduino环境,参照LED成功比点亮。简单的几行代码就可以点亮外设。真的跟搭积木一样,在上层应用,无需管底层, 在硬件软件没问题后,开始进一步去开发显示。按照接线和CSDN Hi1L 博主的教程“ ESP32】立创ESP32S3R8N8开发板+2.8寸TFT电容触摸屏 +PlatformIO+LVGL测试” 开始了显示的按部就班学习。了解SPI,接线,Platformio的库的安装调用等等,每一步都很顺利,每一步都一模一样。但是结果就很奇怪,产品就是没有点亮显示屏(我还特地去咨询博主,还未回复)。显示屏只有背光没有画面(如下图)。 我找了好多例程和咨询了很多个渠道,困扰了我几天,依旧没有起色。起初以为是不是线束(杜邦线)问题,更换了还一样。然后又排查了软件,更改了接口都没什么问题,依旧还是只有背光无显示。 后来以为显示屏问题(还屁颠去咨询客服),为了找到源头,进一步确认原因,我尝试了用立创IDE例程代码和接线。成功的点亮了TFT(但是不是用的Arduino是IDF)。证明硬件是没有问题(如下图)。 经过前面的排查后,我又把问题聚焦到了Platformio开发这里。我一定要找到这个问题的原因。在不经意经我翻到了一篇博客”PlatformIO下ESP32使用TFT_eSPI库无限重启,报StoreProhibited错误详细解决方案” 里面说 esp32核心版本太高了,ESP32-S3下的TFT_eSPI库并不适配,产生兼容性问题。需要降版本。 我回想起自己之前好像更新了版本。我打开Platformio-》Platforms我发现我用的是6.10.0对应的Arduino - v2.0.17 (based on IDF v4.4.7)比博客介绍的还要高(如下图) 于是我按照教程,在platformio.ini里加入了“@6.5.0”,待版本安装好后,编译,下载。 Bingo!显示屏终于正常显示了(如下图), 解决了困扰我许久的ESP32点亮ST7789V2 1.69寸显示问题。虽然这是个很小的问题,但对于刚使用此环境的小白来说,需要去修复他需要很长时间。 附上简单显示代码 #include Arduino.h #include SPI.h #include TFT_eSPI.h // Hardware-specific library #define TFT_GREY 0x5AEB TFT_eSPI tft = TFT_eSPI(); // Invoke custom library void setup() { tft.init(); tft.setRotation(0); tft.fillScreen(TFT_GREY); tft.setTextColor(TFT_WHITE, TFT_GREY); // Adding a background colour erases previous text automatically tft.fillRect(0, 0, 240, 50, TFT_RED); tft.fillRect(0, 50, 240, 50, TFT_GREEN); tft.fillRect(0, 100, 240, 50, TFT_BLUE); tft.drawCentreString("Time flies", 120, 260, 4); } void loop() { // put your main code here, to run repeatedly: }
  • 热度 2
    2025-2-17 10:29
    1707 次阅读|
    4 个评论
    在面包板社区发原创文章月月有奖励! ——只要你热爱写,京东商城搬回家! 活动时间: 2025年全年 ✳如何参与 注册为本站用户, 在本站博客/论坛任何专区发布原创文章 ,并在 标题处 添加 【原创奖励】【原创计划】【原创】 标签即可参与。字数不限,文章通过社区评审,将获得500 - 1000 E币/篇的奖励(每月20篇封顶)。如果内容被发布在面包板社区公众号,浏览量每超过1万则追加奖励1000E币(最高奖励10000E币) 内容要求: 1、内容必须是原创首发在本社区。(原创标准:内容需1/3以上本人原创,其他可来自多渠道整理引用) 2、与电子行业相关即可。(不限于技术干货、笔记、经验、心得;电子市场行情;人生经历、职场故事) E币如何使用? 可在面包板社区E币兑换商城,兑换礼品,只要有币,任意兑换。(参考京东自营商品,未在E币商城出现的,可单独联系我们新增)。每月底发货一次。 商城入口: https://estore.eet-china.com/ 如果没有喜欢的物品或者显示无货的可以联系管理员上新。 管理员微信二维码↓
  • 热度 6
    2024-12-25 14:13
    851 次阅读|
    0 个评论
    ALTERA Cyclone 10器件的使用-8:特定的上电顺序
    概述 Intel 要求用户为其10代FPGA器件使用特定的上电和掉电顺序,这就要求用户在进行FPGA硬件设计的时候必须选择恰当的FPGA供电方案,并合理控制完整的供电上电顺序。经过在Cyclone 10 GX测试板上实际验证,统一上电确实会导致FPGA无法正常工作,具体表现为JTAG接口无法探测或识别到目标器件。 上电顺序要求 Cyclone 10 GX,Arria 10以及Stratix 10系列器件所有的电源轨被划分成了三个组合,三组电源轨要求依次上电,如图1所示,为三组电源轨上电顺序示意图。 图1:Cyclone 10 GX器件上电顺序示意图 三组电源轨具体划分如表1所示,而在具体设计的时候,有些电源轨电平相同,此时相同电平的电源轨当电流合适的情况下,在进行合理隔离后可以进行合并。具体情况可以参考 。 表1:Cyclone 10 GX供电电压轨分组划分 Group1 VCC,VCCP,VCCERAM,VCCR_GXB,VCCT_GXB Group2 VCCPT,VCCH_GXB,VCCA_PLL Group3 VCCPGM,VCCIO 在分组2中所有电源轨开始爬升之前,分组1中的所有电源轨可以任何顺序爬升到其标称电平的90%水平。 在分组1中所有电压轨以任何顺序爬升到其标称电平的90%后,分组中所有电压轨才可以任何顺序开始爬升。 同样,分组3中的电压轨,也只有等到分组2中所有电压轨均爬升到其标称电压水平的90%之后,才可以任何顺序开始爬升。 之前提到,当分组之中或不同分组之中电压轨标称电平一直时,在合理隔离情况下可以共享供电模块,后面再详细介绍。 需要注意的是,确保新合并的电压轨不会导致未通电的GPIO或收发器引脚获得“驱动”。 所有电压轨都必须单调爬升,且上述上电顺序控制,必须满足标准或快速POR延迟时间要求。也即,整个爬升时间必须控制在最小的POR延迟时间之内。POR延迟时间指标如表2所示。 表2:POR延迟时间指标 Cyclone 10 GX器件电压轨供电共享指导原则 查参考 给出了两种共享供电模块例子,这里就第一个例子进行讨论,详细信息可以查看 。如表3所示,为Cyclone 10 GX器件电压轨共享分组方案之一。 表3:Cyclone 10 GX器件电压轨共享方案 电源 引脚名称 分组 压值(V) 供电公差 电压源 模块共享 备注 VCC 1 0.9 ±30mV 开关电源 可共享 VCCP VCCERAM VCCR_GXBL 2 0.95 ±30mV 开关电源 可共享 为获得更好性能,将VCCR_GXB与VCCT_GXB隔离 VCCT_GXBL VCCBAT 3 待定 ±5% 开关电源 均为1.8V可共享 这四个均为1.8V时,可以使用同一电源模块供电 VCCPT 1.8 VCCIO 待定 VCCPGM VCCH_GXBL 1.8 隔离 可共享,但需要进行正确隔离 VCCA_PLL 参考 AN 692: Power Sequencing Consideration for Intel Cyclone 10 GX, Intel Arria 10, and Intel Stratix 10 Devvices. Intel Cyclone 10 GX Device Family Pin Connection Guidelines
  • 热度 4
    2024-12-22 11:46
    1644 次阅读|
    1 个评论
    AD9218子板在新处理板上表现的问题
    概述 新的数据处理板融合了数字和数据处理功能模块,计划采用ADI的4通道串行ADC芯片代替之前的并行ADC。由于初次使用,所以初次设计时预留了AD9218的子板的插槽。 在调试AD9633功能的同时并不影响SiPM读出测试系统的联调,只是在新处理板上使用AD9218子板的时候出现了意料之外的问题。本文就该问题展开分析。 新处理板架构 新的处理板架构其实非常简单,就是将之前分离的数字处理板和数据处理板合并一处。所谓数字处理板,主要是将前端模拟信号经过模数转换得到数字信号,并将得到的数字信号进行必要的预处理后传输到后一级的数据处理板。 而数据处理板主要功能是将接收来自数字处理板的信号进行基于单事件和符合事件两种不同的模式进行处理,并形成基于时间戳的数据流,利用DAQ接口将排好序的数据流上传给上位机。 老的结构,主要是集中数字化,即数字板集中收集前端众多模拟信号,集中进行数字化,所以单个数字处理板上集中了多个ADC(SST系统数字单板集中有40个ADC通道),整个系统又由多个数字处理板组成,这样数据处理和数字处理板之间通信经由高速背板完成。 新的结构,将数字处理结构打散,并尽量向前布置。即单个模块可以分别单独数字化,然后数据再下传。AD9633集成了四个ADC通道,可以很好完成单个模块四个模拟信号(ABCD)的数字化。ADC和前端驱动芯片和SiPM读出测试模块可以绑定一起组成更大的模块,然后形成更为集中的前端处理模组。 AD9218集成了2个通道,理论上也可以完成上述集成,只是其采样输出为并行结构,这样需要更多的数据总线传输数据,而且长距离传输不利于数据传输稳定。而AD9633的输出总线为LVDS差分对结构,很好解决了此问题。图1为滨松公司为用户提供的开发套件中关键的前端信号处理板。 我们新的信号处理板为了验证前端数字和后端数据处理,将前端数字和后端数据处理融合一起,而图1中的ASIC模块功能,则由独立的SiPM读出测试系统完成。这就是目前新处理板即便架构,该机构保留了AD9218和AD9633两种数字处理模块,二者并行相互独立。 图1:滨松开发套件中的前端信号处理板 AD9218子板在新处理板上遇到的问题 因为AD9218是预制的子板,而且在前一代系统经过验证可以正常使用,所以该问题必然是由此处理板引起。如图2所示,为AD9218正常工作表现;而图3则为AD9218出现异常时状况。 图2:AD9218正常工作表现 图3:AD9218工作出现异常 新处理板为符合测试,给AD9218预留了4个槽位,即总共8个ADC通道。经过测试,发现上述问题在每个ADC通道上都会出现,ADC子板由于可以拔插,所以更换不同ADC子板后,问题依旧存在,所以如上述总结那样,此问题与ADC子板无关,其根源来自新的处理板。 AD9218输出并未直接引入FPGA(Cyclone 10 GX系列),而是经过一片MAX10 CPLD转接后送入FPGA。C10GX器件总共只有1个BANK支持3.0V的I/O标准,这不多的3V引脚都分配给了ARM和DAQ总线,并无足够的引脚用于AD9218。 MAX10器件可以使用其3V标准I/O BANK接收所有AD9218通道的输出总线,然后直通由该CPLD的其它1.8V I/O BANK输出并直接接入FPGA。CPLD与FPGA之间的I/O均为1.8V。如此很好解决了FPGA收AD9218数字输出的问题。 调试伊始,也曾怀疑上述异常是否与CPLD有关,经过测试,发现CPLD对应的接收ADC和传送ADC数据都存在上述问题,所以根源还是来自ADC与CPLD无关,而ADC问题根源与上述分析那样,来自处理板。具体应该是和板子供电有关,电源模块的相关噪声耦合到了模拟输入信号,而且这种串扰还是间隙性的偶发,不会一直存在。 参考 Quad, 12-Bit, 80 MSPS/105 MSPS/125 MSPS, Serial LVDS 1.8 V ADC Datasheet LVDS SERDES Intel FPGA IP User Guide: Intel Arria 10 and Intel Cyclone 10 Devices.