导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页
    1. 主页
    2. YuzukiTsuru
    3. 帖子
    • 资料
    • 关注 4
    • 粉丝 82
    • 我的积分 32710
    • 主题 101
    • 帖子 1160
    • 最佳 169
    • 群组 0

    YuzukiTsuru 发布的帖子

    • 回复: 请问 F1C200s 可以同时输出到LCD 和 TV 上吗?

      @tigger 可以

      发布在 其它全志芯片讨论区
      YuzukiTsuru
      柚木 鉉
    • Tina如何打包SPI NOR、SPI NAND固件

      需要修改哪一个配置文件

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 请问 F1C200s 可以同时输出到LCD 和 TV 上吗?

      我记得Arduino可以模拟CVBS,可以考虑软件模拟一个(?

      发布在 其它全志芯片讨论区
      YuzukiTsuru
      柚木 鉉
    • 回复: 关于我稀奇古怪的操作导致D1自带的WIFI模组挂菜了,求购大佬们搞一片WIFI模组(XR819)

      换一个8723ds,改一下配置电阻就行

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: D1使用Tina 2.0的base-files导入文件没有运行权限,有没有可以设置的地方或者脚本

      @tevet 那样弄太麻烦了,我还是改base-files的makefile好了

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 全志F1C100s在Tina Linux SDK上修改CPU频率的方法

      好诶,供电不用修改吧

      发布在 其它全志芯片讨论区
      YuzukiTsuru
      柚木 鉉
    • 回复: 在TinaV2.2 D1s上面搞LVGL8去调用G2D旋转让LVGL8的软件旋转再见

      还可以这样afbce520-43b1-4126-982b-ee37899862b2-w.gif

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: D1 哪吒解码视频文件测试

      好哦,来看看quq

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 请问大家 D1 的 TV 输出可以用吗?

      测试不行,等大佬

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 【开源直播】手把手教你用全志XR32芯片DIY一个自己的开发板(一:电路与PCB绘制)

      那我可以用小座子这种然后dvp接法了

      不错
      a1867747-3085-47d6-9f71-fdf8b2b7bb2b-image.png

      发布在 Wireless & Analog Series
      YuzukiTsuru
      柚木 鉉
    • Tina 基于 OpenWRT 14.07,尝试给OpenWRT 14.07 打了一个patch,来看看Tina改了多少东西

      把dl文件夹删了不然patch就太大了。

      921bcce9-ef89-4d5f-9b54-19a73d89dc0c-image.png

      VSCode打开看看
      fd7b641b-6598-4315-83af-95d714a809e3-image.png

      oom oom
      bf057a8f-b5a8-4a1e-bd51-5f01b4ac2d36-image.png

      那轻量级的npp呢
      f972645e-1ad3-41fe-ab5b-3b4d8954c570-image.png

      patch下载地址:
      链接:https://pan.baidu.com/s/1a0tLzEHEPjT0mO6UmaDpDg
      提取码:ygz2

      发布在 灌水区
      YuzukiTsuru
      柚木 鉉
    • D1使用Tina 2.0的base-files导入文件没有运行权限,有没有可以设置的地方或者脚本

      cfdbb76e-d884-4804-bbc8-7d20a1e57825-image.png

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 运行hello_word遇到GLIBC_2.29 not defined in file libc.so.6改怎么办

      @oiouou123 tina源码里的编译器,应该就是那个
      30e0878e-092f-45a8-aafb-35ded0516c89-image.png

      Using built-in specs.
      COLLECT_GCC=./riscv64-unknown-linux-gnu-gcc
      COLLECT_LTO_WRAPPER=/home/yuzuki/WorkSpace/tina-d1-h/prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702/bin/../libexec/gcc/riscv64-unknown-linux-gnu/8.1.0/lto-wrapper
      Target: riscv64-unknown-linux-gnu
      Configured with: /ldhome/software/toolsbuild/slave/workspace/riscv64_build_linux_x86_64/build/../source/riscv/riscv-gcc/configure --target=riscv64-unknown-linux-gnu --with-mpc=/ldhome/software/toolsbuild/slave/workspace/riscv64_build_linux_x86_64/lib-for-gcc-x86_64-linux/ --with-mpfr=/ldhome/software/toolsbuild/slave/workspace/riscv64_build_linux_x86_64/lib-for-gcc-x86_64-linux/ --with-gmp=/ldhome/software/toolsbuild/slave/workspace/riscv64_build_linux_x86_64/lib-for-gcc-x86_64-linux/ --prefix=/ldhome/software/toolsbuild/slave/workspace/riscv64_build_linux_x86_64/install --with-sysroot=/ldhome/software/toolsbuild/slave/workspace/riscv64_build_linux_x86_64/install/sysroot --with-system-zlib --enable-shared --enable-tls --enable-languages=c,c++,fortran --disable-libmudflap --disable-libssp --disable-libquadmath --disable-nls --disable-bootstrap --src=../../source/riscv/riscv-gcc --enable-checking=yes --with-pkgversion='C-SKY RISCV Tools V1.8.4 B20200702' --enable-multilib --with-abi=lp64d --with-arch=rv64gcxthead 'CFLAGS_FOR_TARGET=-O2  -mcmodel=medany' 'CXXFLAGS_FOR_TARGET=-O2  -mcmodel=medany' CC=gcc CXX=g++
      Thread model: posix
      gcc version 8.1.0 (C-SKY RISCV Tools V1.8.4 B20200702) 
      
      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 运行hello_word遇到GLIBC_2.29 not defined in file libc.so.6改怎么办

      用编译rootfs的编译器编译

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: buildroot配置QTeglfs的问题

      GLES需要显卡驱动,这个宏是只要勾选支持的显卡驱动就打开了

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 搭建了一个 Tina 的 opkg 仓库,软件包逐渐完善中

      @wsxiaoping3
      彼此彼此

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 【开源直播】手把手教你用全志XR32芯片DIY一个自己的开发板(一:电路与PCB绘制)

      @randolph 那太好了

      发布在 Wireless & Analog Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 【开源直播】手把手教你用全志XR32芯片DIY一个自己的开发板(一:电路与PCB绘制)

      @chengwei_peng 有没有具体的摄像头型号可以参考一下的?

      发布在 Wireless & Analog Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 【开源直播】手把手教你用全志XR32芯片DIY一个自己的开发板(一:电路与PCB绘制)

      目前存在的问题

      1. 芯片的CSI是一个怎样的接口,支持什么摄像头?【已解决】
      发布在 Wireless & Analog Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 【开源直播】手把手教你用全志XR32芯片DIY一个自己的开发板(一:电路与PCB绘制)

      板子到货啦,调试后发现的问题做出的修改

      1. 删除UPG使用的上拉电阻电容
        720980fe-fc8e-4d6a-ba51-d07ed695b39e-image.png

      2. UART保留CH340N,TX改为电源灯(主要是绿灯太暗了给的电阻小所需电流较大导致UART强上拉)
        00a6f453-c6d3-49ea-bbb9-3f3df59d08a1-image.png

      3. TF卡使用全上拉
        23b339d9-e3d5-4d9d-9cb7-f227a17b1969-image.png

      4. 修改版型使其适合拼版
        1451c33f-4587-4a7a-8338-9801be483d8d-image.png

      发布在 Wireless & Analog Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 【开源直播】手把手教你用全志XR32芯片DIY一个自己的开发板(一:电路与PCB绘制)

      打样焊接

      打样

      打样的板子做了一些调整,加宽了外圈就不用出半孔费了QuQ

      c6073403-3809-4e54-8132-f13bca4c2332-image.png

      打样打样~~~
      8eef95ad-f2e5-4091-89eb-ee1378d3b9f1-f12b8013a0dc2fd596f58b5fe028997.jpg

      Pinout

      b9b5a219-67fc-43f3-bd93-8260b3dca07c-Pinouts.jpg

      发布在 Wireless & Analog Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 【开源直播】手把手教你用全志XR32芯片DIY一个自己的开发板(一:电路与PCB绘制)

      项目计划

      • 一个大概5cm*2cm的小型开发板
      • 板载电源灯与点灯必备IO灯
      • 板载USB转UART
      • 一个复位按键一个下载按键
      • TF卡槽
      • SPI Flash
      • 摄像头CSI的FPC接口
      • 板形为通孔+邮票孔外围(差不多是这样↓)
        1924a8fc-630c-4269-8747-3ddd635e3862-w.jpg

      电路设计

      原理图设计

      封装设计

      首先设计XR32F429C2的原理图封装,封装已经上传立创eda,链接:XR32F429C2 LCEDA封装
      6b9826c2-bf7d-4c55-b6c6-8b33b4cd7778-image.png

      绘制芯片外围电路

      e8832622-4dbb-4e54-b825-72f5e12e3ffd-image.png

      外围电路主要包括三部分

      • 电源
      • 退耦、滤波电容
      • 辅助电路、时钟

      首先来电源和电容

      查阅芯片手册的Power Management章节,得知芯片内置了几路LDO,一路DCDC,只需要给芯片供电5V就可以使用了。

      2846dafb-44bd-478f-aed8-0e4c9f97f0a2-image.png

      再参考一下EVB的电路设计

      cc45a415-a376-4935-975b-a7789c825800-image.png

      GPIO就先这样拉出来,不做细分处理。

      对于时钟,查看数据手册Clock章节,有可以看到XR32F429有两个时钟,一个高速时钟一个低速时钟。

      216b50de-1fb5-4267-9122-d0862ee7f518-image.png

      其时钟控制图框如下。可以看到低速时钟有两个时钟源,一个内置RC震荡电路,一个外部晶振。因为低速时钟为32.768k正好是2的15次方,其主要是给系统RTC与低功耗模式使用的,对RTC或者对低功无需求可以舍去低速晶振。高速时钟支持24MHz, 26Mhz, 40MHz 或者 52MHz 的晶振。这里就选择24MHz的2016封装的晶振(正好全志的大部分Linux芯片也是24MHz)。

      708a0992-21ad-49bd-be0f-a738487d4c8c-image.png

      在这里因为是开发板,所以两个时钟都画上。每个晶振时钟脚加一个电容作为起振电容。

      497dfd7e-e448-4ec7-b345-958ae5aa785e-image.png

      最后一个辅助电路,用户按键。程序跑飞了的RESET键,下载程序的UPGRADE键。

      首先是RESET键,找了一圈居然没找到EN和RST引脚,查看了文档才发现叫做 CHIP_PWD

      eef8c65c-62f0-4b60-a73e-f80cfced5c4b-image.png

      下载按键就不好弄了,数据手册没有见到描述的部分,看了一下EVB的电路图,这咋还献祭了PB2和PB3。
      d078e3ac-08de-4939-aa1a-45a7dfab1807-image.png

      于是进行了一下搜索,在Github找到了XR871_Quick_Start_Guide-CN这个手册
      0f69cb55-d177-451e-813a-b56db8befc56-image.png

      里面描述了下载的全部过程。
      2efbb523-6393-4e90-a8bc-7100ed6a0445-image.png

      那现在就需要做出一个选择了,PB2和PB3是JTAG的数据口,如果直接拉低了可能会导致JTAG无法使用。便折中了一下,PB3接口通过电阻拉低,如果需要使用JTAG则将电阻移除即可。

      0bde53f4-b521-4668-bd4f-2726d4b28e4a-image.png

      电阻选用0603封装方便拆焊

      b4425bf8-d565-4987-9348-5f7d934012ee-image.png

      绘制板子的用户IO

      计算了一下,一共有31个GPIO+一个RESET需要引出,于是使用两列双18Pin穿孔+邮票孔封装。

      先画原理图封装,很简单

      6537a423-6f2b-4da2-84f1-45473a5baf57-image.png

      再画PCB封装,也很简单,两个焊盘一个长方形一个圆形,制版的时候把边框层放到白线就好了。

      fa190ca1-d72b-44f5-88ce-c5e0934338aa-image.png

      然后原理图里面对面放好

      867b5bce-89b5-40f1-b47b-8148be00aa55-image.png

      然后生成PCB,大概摆放一下元件
      e7d524ed-fdce-4a3f-8980-fd83271124ac-image.png

      渲染一下看看,有内味了

      71b6119e-b08b-4e4b-bccb-731e5cd69bb5-image.png

      USB转串口用的是人见人爱的CH340N,配上TypeC接口,CH340N没货了也可以用CH343P,不过这里就不用了。原理图把它们两个都画上。

      7e6e3a1a-6967-47b5-9607-2102a1c9ce89-image.png

      ((整了个活,CH340N和CH343P的复用焊盘

      15b6e636-63cd-4899-826f-929a050f6d04-@4}MUQ`~(XG1_K36F09HEGK.png

      TF卡槽,USB,摄像头FPC连接器和其他小东西

      大概设计(整活)了一下,这样层叠式设计。
      6236ad68-d7ae-4802-a35a-0e6570e2267b-w.jpg

      PCB摆放一下位置,开始拉线
      ced168da-b1e6-48a3-8718-fc7596a5b0d3-image.png

      其中先先不在原理图中绑定邮票孔IO对应的引脚,先把PCB的线拉出来,再按照线的位置去修改引脚
      cdc8ec78-cafa-4553-b66d-2edc582bc0ae-image.png

      比如这里,PB5对应H1 16, PB4对应H1 15

      32f9b699-73c3-4877-a1a2-5e3d03e40882-image.png

      就在原理图中把两个引脚确定下来
      7b48960e-96cb-4c38-b0b1-48d2788dd91d-image.png

      TF卡槽

      这里使用SDIO 1连接TF卡槽 1bit模式,只需要给CMD上拉,SDIO 0因为被CSI占用了所以就不使用了。
      470b6329-0de6-41ec-9baf-2cbf33f053d6-image.png

      当然,TF卡是可以带电拔插的,所以需要加上ESD器件,USB因为需要插上USB才上电所以这里就省略了。

      b66a0f54-6f90-4ef6-aca1-b13076cabc00-image.png

      USB

      USB当然是TypeC接口了,CC线下拉两个电阻,关于TypeC的接线可以参考这篇文章:Type C 的 CC 到底该怎么C

      7b9ba819-e5e2-4847-9e2e-61c42e3222e7-image.png

      摄像头FPC

      摄像头需要三路供电,分别是1V2,2V8,3V3。这里使用两个LDO作为两路供电。

      c238598d-7798-45b4-8a7d-6a0fa6818cb3-image.png

      SPI Flash

      没啥好说的,F1C100S板子上抄过来。

      e37b1a2d-342a-4b18-a0ad-6d8ece625397-image.png

      其他小东西

      给UART加上了指示灯,烧录的时候会闪一闪

      ced19ad5-67d3-43e7-ad05-774422f516f5-image.png

      加了一颗RGB灯,点灯吃灰一条龙

      d7f6cc7d-8f10-4112-abb7-012e2c4cd401-image.png

      PCB设计

      大概布局了一下下,并且把IO的线,供电,时钟的线连上了

      2fc19bab-a5b7-4332-a044-54747ad89d18-image.png

      3D渲染看看

      fb197052-0aae-49b3-ada0-7a0afee45566-image.png

      飞线消消乐中.........

      7036dc8a-de6d-425c-bcfb-68cbf8fafcc0-image.png

      a53d9c85-5f4a-441f-9b44-42809e544af9-image.png

      b08d3ecd-25e7-48f8-8d0a-685e39d20f7b-image.png

      157787ce-ddd9-4939-9274-2b3da3953999-image.png

      画一下IO丝印

      d7694782-74ff-46b5-94e5-d7ea9e3bc88a-image.png

      然后第一版就画完了QuQ

      发布在 Wireless & Analog Series
      YuzukiTsuru
      柚木 鉉
    • 【开源直播】手把手教你用全志XR32芯片DIY一个自己的开发板(一:电路与PCB绘制)

      d095629a-3f09-4c35-bbed-c6560a979682-23.jpg

      XR32

      【XR32】:完整型号【XR32F429】

      https://bbs.aw-ol.com/assets/uploads/files/1645509724979-9e4a33a7-60bb-4229-9ebf-cb6e084505b8-image.png

      是全志推出MCU芯片,听名字就知道,对标的是某tm/某sp32,可以用来做各自小板子、小车车、小电子设备、实验装置等等等

      10a6e97a-d401-4e66-a1fc-5f2248bc55f4-2.jpg

      XR32F429 基于主频最高可达 192MHz 的高性能 ARM Cortex-M4F 32 位 RISC 内核。 Cortex-M4F 内核具有一个浮点单元 (FPU) 单精度,它包含所有 ARM 单精度数据处理指令和数据类型。 它还实现了一个内存保护单元 (MPU),可实现应用程序安全性。 它支持集成的 832KB SRAM 和 2MB 闪存 ROM。 它还包括许多外设,包括 UART、TWI、SPI、I2S、DMIC、PWM、IrDA (T/R)、CSI、SDIO 和辅助 ADC。

      The XR32F429 devices are based on the high-performance ARM Cortex-M4F 32-bit RISC core operating at frequency up to 192MHz. The Cortex-M4F core features a Floating Point Unit (FPU) single precision which all ARM single-precision data-processing instructions and data types. It also implements a memory protection unit (MPU) which enables application security. It supports an integrated 832KB SRAM and 2MB Flash ROM. It also includes many peripherals, including UART, TWI, SPI, I2S, DMIC, PWM, IrDA (T/R), CSI, SDIO and auxiliary ADC.

      芯片特性

      • 集成高性能ARM Cortex-M4F内核,并配备832KB SRAM和16Mbit Flash

      • 集成硬件加解密引擎,保障数据传输与存储的安全

      • 集成度高,集成UART,SPI,I2C,PWM,ADC,SDIO,IrDA,I2S,DMIC,CSI等丰富的接口

      • 平台

        • ARM Cortex-M4F内核,最高192MHz运行频率
        • 内置832KB SRAM
        • 支持低功耗RTC模式
        • 集成2Kbit efuse
        • 6mm x 6mm 52pin QFN封装
      • 加解密引擎

        • 支持AES ECB/CBC/CTR,128/192/256位秘钥
        • 支持DES/3DES
        • 支持MD5/SHA/SHA256/CRC16/CRC32/PRNG
      • 外设

        • 2路SPI,3路UART,2路I2C,1路SDIO,IrDA
        • 8路PWM,8路ADC,GPIO若干
        • 1xI2S,1xDMIC,1xCSI
      • 电源

        • 单电源输入,宽电压范围2.7V-5.5V支持
        • 集成200mA 3.3VLDO,可用于外设供电
        • 内置DC-DC和LDO供内部电路使用
        • 支持低电检测
        • 支持系统关机/休眠状态唤醒
      • 时钟

        • 24MHz XTAL
        • 32768低频时钟
      • 其他

        • 工作温度-40~85℃, 存储温度-40~135℃
        • ESD HBM ±4000V,CDM ±800V

      楼主目前得到了XR32的全球独家权限,准备基于该芯片做一个开发板。所有软硬件将全部开源,方便后面的同学参考学习。

      从0开设DIY一个自己的开发板,并适配代码让它跑起来,应该是每个嵌入式工程师入门的入门之路吧,希望大家通过跟着我们操作走一遍,可以摸清入门的路~
      楼主目前普通本科物联网专业大二在读,相信我能完成的内容各位同学们都能完成。

      芯片框图:

      18fb7813-44da-4981-bf0c-a0c8a5da726c-image.png

      硬件:

      本项目将使用立创EDA进行进行原理图设计和PCB layout(因为它免费而且不用下载适合学生朋友使用)
      XR32的封装库后续会建好在立创EDA上直接开源,大家可以直接调用
      个人立创硬件开源平台主页:https://oshwhub.com/GloomyGhost

      XR芯片后面会放到全志系的淘宝店上销售,价格人民币一位数。同时也准备放到立创商城,大家下单打板就能直接调立创商城里的货,这样就不用寄来寄去了(和立创商城的人沟通中)。

      软件

      使用全志官方支持的FreeRTOS系统,适配自己做的开发板,代码全部开源,github/gitee双边同步
      github地址:https://github.com/YuzukiHD/XR32SDK
      gitee地址:https://gitee.com/GloomyGhost/xr32-sdk

      芯片资料

      XR32 datasheet:XR32F429C2_Datasheet_V1.2.pdf
      XR32 User_manual:XR32F429C2_User_Manual_V1.0.pdf

      硬件参考资料

      XR32参考设计原理图.7z
      XR32封装库.7z
      XR32参考设计原理图AD版本.zip
      XR32F429C2 LCEDA封装

      发布在 Wireless & Analog Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 【开源】YuzukiRuler 随身Linux小尺子

      @xiaowenge 是ST7789V SPI

      发布在 其它全志芯片讨论区
      YuzukiTsuru
      柚木 鉉
    • 回复: 全新 D1 SDK v2.0 开放下载了

      @whycan 用tina1.1的板级配置文件,devices和target什么的

      发布在 代码下载问题专区
      YuzukiTsuru
      柚木 鉉
    • 【开源】YuzukiRuler 随身Linux小尺子

      YuzukiRuler

      YuzukiRuler 随身Linux小尺子,板载UART和OTG,还有一个1.14小屏幕,支持2.4G Wi-Fi网上冲浪

      来点图片

      3fcaa541-db9a-4415-be46-066413d0b27e-image.png
      62955760-382e-401c-bc8f-cef2da988b28-image.png
      e69c8e05-2fa5-48f5-a293-fffcbe94126d-image.png
      2616ef81-c11b-439e-b9d9-02dac3e58256-image.png
      b00a8e7c-2bca-4f0f-94b1-89cc43fc12b4-image.png

      软件适配

      Linux Kernel 5.4.180 主线内核
      Uboot 2020.07
      Buildroot rootfs

      硬件开源地址

      https://oshwhub.com/GloomyGhost/yuzukiruler

      SDK 相关

      SDK下载地址:github.com/YuzukiHD/Buildroot-YuzukiSBC
      SDK开发说明:yuzukihd.gloomyghost.com/Buildroot-YuzukiSBC

      最新固件下载

      github.com/YuzukiHD/Buildroot-YuzukiSBC/releases/latest

      用户名:root
      密码:无
      固件默认输出Console,有其他需要请自行修改固件

      发布在 其它全志芯片讨论区
      YuzukiTsuru
      柚木 鉉
    • 回复: 搭建了一个 Tina 的 opkg 仓库,软件包逐渐完善中

      @wsxiaoping3 没有((

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 搭建了一个 Tina 的 opkg 仓库,软件包逐渐完善中

      @memory 理论上不需要,只要不是大版本更新

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 搭建了一个 Tina 的 opkg 仓库,软件包逐渐完善中

      @tigger 是的

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 搭建了一个 Tina 的 opkg 仓库,软件包逐渐完善中

      版本0.1.1 Alpha 测试版:http://opkg.gloomyghost.com/snapshots/

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 搭建了一个 Tina 的 opkg 仓库,软件包逐渐完善中

      凭什么tina要看着debian和Fedora用包管理器安装软件,人家Tina也要嘛,明明是基于OpenWRT有一个现成的opkg了。

      先来点图

      主页

      w.png

      还可以搜索软件包哦

      NKP`Q461P8N4D$A_0L6J_QA.png

      在Tina里使用

      f26944ca-60e3-40f4-bcb8-f65629c5ba48-G_RR7{81QE)RJ517112G~)9.png
      69f0eb8f-a988-4a19-8686-8fa26fc13003-wq.png

      支持列表

      • 目前测试版本仅支持 D1-H 与 D1s 芯片,其他芯片支持陆续增加中(咕

      使用方法

      删除本地库

      rm -rf /etc/opkg/distfeeds.conf
      

      修改添加远程库

      vi /etc/opkg/customfeeds.conf
      
      src/gz snapshots http://xxxx.com
      

      域名可能变动,最新仓库url后续回帖里找一下((

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: D1-H开发板无法下载固件

      @whycan 一个板子认到两个USB设备有点奇怪

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 大佬请喝茶

      居然是刨丝器,羡慕了

      发布在 灌水区
      YuzukiTsuru
      柚木 鉉
    • 回复: 全新 D1 SDK v2.0 开放下载了

      @readme0 一直都没有

      发布在 代码下载问题专区
      YuzukiTsuru
      柚木 鉉
    • 回复: 全新 D1 SDK v2.0 开放下载了

      老板级要修改Makefile

      KERNELNAME:=Image.gz Image dtbs
      
      发布在 代码下载问题专区
      YuzukiTsuru
      柚木 鉉
    • 回复: 【开源硬件】YuzukiXR806 开发板更新日志

      5fc09d76-897c-4256-9339-3b84259b4ca9-2.png

      测试完成了,找到一个问题,烧录固件后内置LDO输出电压变为5V,强制使用外置LDO修复

      发布在 Wireless & Analog Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 【开源硬件】YuzukiXR806 开发板更新日志

      cd61df75-e428-4ca2-a284-b0a7e9656041-w.jpg

      发布在 Wireless & Analog Series
      YuzukiTsuru
      柚木 鉉
    • 回复: D1-H是否支持LPDDR2 或者LPDDR3

      @txl216 DDR3L 兼容DDR3,只是在DDR3模式下不能使用L的特性

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 用buildroot自带的genimage把tina dragon的活干完,让dragon无活可干。

      @whycan DSP核用的,里面还能找到亮点呢
      4ad62780-c054-42c6-a293-783336457e2d-image.png

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 【开源硬件】YuzukiXR806 开发板更新日志
      • 增加了电源LED
        d366c4b3-9dd5-49af-a702-0c8a8723c032-image.png
      • 增加IO电压选择
        0de6a8e1-92f8-4cf3-be76-33287a524f31-image.png
      发布在 Wireless & Analog Series
      YuzukiTsuru
      柚木 鉉
    • 【开源硬件】YuzukiXR806 开发板更新日志

      除夕闲着太无聊了,不如画板子。正好找晕哥拿了点XR806,所以来画一个XR806板子好了

      G$JX59$D$852N7C1JNRE`BF.jpg

      先来一个IBOM

      c5c6dec7-a64f-43b3-9c93-6c5d05c0fa74-EFTUJX1{I2J6C_X0%062FEI.png

      渲染图

      de02d790-906b-4fe0-898c-844234e38624-P4_X9U4Y~@2IZTBFPAGGMQG.png
      4c2dbab9-183b-403b-a936-ec22c6468550-11.png

      发布在 Wireless & Analog Series
      YuzukiTsuru
      柚木 鉉
    • 使用 LicheeRV 86 Panel 与 Tina BSP 实现 RGB 与 SPI 双屏显示

      Tina 提供了2种 SPI TFT 显示屏的驱动方式。第一种是官方推荐的 fbdev 方式,使用 Framebuffer implementaion without display hardware of AW 进行 SPI屏幕的驱动。另外一种是使用 fbtft 进行 SPI 屏幕驱动。 fbdev 方式由于 pinctrl 在新内核中调用方式出现修改,所以暂时无法使用。修改难度较大。fbtft 虽然官方wiki表明不建议在 Linux 5.4 中使用,但是其实也是可以使用的,只需要修改一下 GPIO 的注册方式就行。

      先驱动 SPI 屏幕

      这里驱动的屏幕所选择的是 ST7789V SPI

      修改 FBTFT 驱动

      进入 tina-d1-open/lichee/linux-5.4/drivers/staging/fbtft 找到 fbtft-core.c

      首先加入将要使用到的头文件

      #include <linux/gpio.h>
      #include <linux/of_gpio.h>
      

      然后找到 static int fbtft_request_one_gpio() 函数,将已经弃用的端口绑定方法改为以下内容

      static int fbtft_request_one_gpio(struct fbtft_par *par,
                        const char *name, int index,
                        struct gpio_desc **gpiop)
      {
          struct device *dev = par->info->device;
          struct device_node *node = dev->of_node;
          int gpio, flags, ret = 0;
          enum of_gpio_flags of_flags;
      
          if (of_find_property(node, name, NULL)) {
              gpio = of_get_named_gpio_flags(node, name, index, &of_flags);
              if (gpio == -ENOENT)
                  return 0;
              if (gpio == -EPROBE_DEFER)
                  return gpio;
              if (gpio < 0) {
                  dev_err(dev,
                      "failed to get '%s' from DT\n", name);
                  return gpio;
              }
              flags = (of_flags & OF_GPIO_ACTIVE_LOW) ? GPIOF_OUT_INIT_LOW :
                                  GPIOF_OUT_INIT_HIGH;
              ret = devm_gpio_request_one(dev, gpio, flags,
                              dev->driver->name);
              if (ret) {
                  dev_err(dev,
                      "gpio_request_one('%s'=%d) failed with %d\n",
                      name, gpio, ret);
                  return ret;
              }
      
              *gpiop = gpio_to_desc(gpio);
              fbtft_par_dbg(DEBUG_REQUEST_GPIOS, par, "%s: '%s' = GPIO%d\n",
                                  __func__, name, gpio);
          }
      
          return ret;
      }
      

      找到 static void fbtft_reset() 函数,将 RST 信号最后拉高

      static void fbtft_reset(struct fbtft_par *par)
      {
          if (!par->gpio.reset)
              return;
          fbtft_par_dbg(DEBUG_RESET, par, "%s()\n", __func__);
          gpiod_set_value_cansleep(par->gpio.reset, 1);
          msleep(10);
          gpiod_set_value_cansleep(par->gpio.reset, 0);
          msleep(200);
          gpiod_set_value_cansleep(par->gpio.reset, 1);
          msleep(10);
      }
      

      找到 static void fbtft_set_addr_win() 函数,添加地址偏移。否则会出现下图部分雪花屏现象。

      c902dcac-f513-4c6f-8e8c-528a1e578bb2-image-20220130233626284.jpg

      static void fbtft_set_addr_win(struct fbtft_par *par, int xs, int ys, int xe,
      			       int ye)
      {
      	switch(par->info->var.rotate)
      	{
      		case   0: xs+=53;xe+=53;ys+=40;ye+=40;
      				 break;
      		case  90: xs+=40;xe+=40;ys+=53;ye+=53;
      				 break;
      		case 180: xs+=53;xe+=53;ys+=40;ye+=40;
      				 break;
      		case 270: xs+=40;xe+=40;ys+=53;ye+=53;
      				 break;
      		default :
      				 break;
      	}
      
      	write_reg(par, MIPI_DCS_SET_COLUMN_ADDRESS,
      		  (xs >> 8) & 0xFF, xs & 0xFF, (xe >> 8) & 0xFF, xe & 0xFF);
      
      	write_reg(par, MIPI_DCS_SET_PAGE_ADDRESS,
      		  (ys >> 8) & 0xFF, ys & 0xFF, (ye >> 8) & 0xFF, ye & 0xFF);
      
      	write_reg(par, MIPI_DCS_WRITE_MEMORY_START);
      }
      

      找到 fb_st7789v.c,参照STM32的初始化函数对初始化部分进行修改。

      static int init_display(struct fbtft_par *par)
      {
          par->fbtftops.reset(par);
          mdelay(50);
          write_reg(par,0x36,0x00);
          write_reg(par,0x3A,0x05);
          write_reg(par,0xB2,0x0C,0x0C,0x00,0x33,0x33);
          write_reg(par,0xB7,0x35);
          write_reg(par,0xBB,0x19);
          write_reg(par,0xC0,0x2C);
          write_reg(par,0xC2,0x01);
          write_reg(par,0xC3,0x12);
          write_reg(par,0xC4,0x20);
          write_reg(par,0xC6,0x0F);
          write_reg(par,0xD0,0xA4,0xA1);
          write_reg(par,0xE0,0xD0,0x04,0x0D,0x11,0x13,0x2B,0x3F,0x54,0x4C,0x18,0x0D,0x0B,0x1F,0x23);
          write_reg(par,0xE1,0xD0,0x04,0x0C,0x11,0x13,0x2C,0x3F,0x44,0x51,0x2F,0x1F,0x1F,0x20,0x23);
          write_reg(par,0x21);
          write_reg(par,0x11);
          mdelay(50);
          write_reg(par,0x29);
          mdelay(200);
          return 0;
      }
      

      将屏幕大小配置为屏幕实际大小

      static struct fbtft_display display = {
      	.regwidth = 8,
      	.width = 135,
      	.height = 240,
      	.gamma_num = 2,
      	.gamma_len = 14,
      	.gamma = DEFAULT_GAMMA,
      	.fbtftops = {
      		.init_display = init_display,
      		.set_var = set_var,
      		.set_gamma = set_gamma,
      		.blank = blank,
      	},
      };
      

      设备树修改

      首先打开电路图,找到 SPI 屏幕的电路。

      e52ae014-7791-4437-8583-3015afba37cc-image-20220130234217827.jpg

      根据电路,找到 pio 节点,添加 SPI0 所用引脚,spi0_pins_a 作为数据时钟绑定,spi0_pins_b 作为 CS 的绑定,并上拉。RST,DC,背光在这里不做声明。

      spi0_pins_a: spi0@0 {
      	pins = "PC2", "PC4";
      	function = "spi0";
      	drive-strength = <10>;
      };
      
      spi0_pins_b: spi0@1 {
      	pins = "PC3";
      	function = "spi0";
      	drive-strength = <10>;
      	bias-pull-up;
      };
      

      然后找到 SPI0 节点,添加屏幕使用的设备树。使用 pinctrl-0 将 pio 中定义的 SPI 引脚进行注册。RST,DC,背光在这里进行绑定,并设置其工作电平。

      &spi0 {
      	clock-frequency = <100000000>;
      	pinctrl-0 = <&spi0_pins_a &spi0_pins_b>;
      	status = "okay";
          
          st7789v@0 {
          	status = "okay";
          	compatible = "sitronix,st7789v";
              reg = <0>;
              spi-max-frequency = <32000000>;
              rotate = <90>;
              rgb;
              fps = <30>;
              buswidth = <8>;
      	reset = <&pio PC 6 GPIO_ACTIVE_LOW>;
      	dc = <&pio PC 5 GPIO_ACTIVE_LOW>;
      	led = <&pio PD 18 GPIO_ACTIVE_HIGH>;
              debug = <1>;
          };
      };
      

      最后,将不需要的屏幕关闭,方便调试

      &disp {
      	disp_init_enable = <0>;
          ......
      }
      
      &lcd0 {
      	lcd_used = <0>;
          ......
      }
      
      &hdmi {
      	hdmi_used = <0>;
          ......
      }
      

      内核配置

      进入 kernel_menuconfig ,开启 FBTFT,关闭 RGB,MIPI 所使用的 DISP Driver Support(sunxi-disp2) 输出。

      Device Drivers  --->
      	 Graphics support  --->
      	 	Frame buffer Devices  --->
      	 		 <*> Support for frame buffer devices  --->
      	 		 Video support for sunxi  --->
      	 		 	 < > DISP Driver Support(sunxi-disp2)
      	 [*] Staging drivers  --->
      	 	 <*>   Support for small TFT LCD display modules  --->
      	 	 	  <*>   FB driver for the ST7789V LCD Controller
      

      由于上面配置关闭了 DISP Driver Support(sunxi-disp2) ,所用需要在 menuconfig 里将内核模块关闭,否则会出现找不到驱动的错误。

      Kernel modules  --->
      	Video Support  --->
               < > kmod-sunxi-disp....................................... sunxi-disp support
               < > kmod-sunxi-g2d......................................... sunxi-g2d support 
               < > kmod-sunxi-hdmi....................................... sunxi-hdmi support
               < > kmod-sunxi-uvc......................................... sunxi-uvc support
      

      编译,打包,使用 fbviewer 进行测试

      make -j65535
      pack
      
      fbviewer Yuzuki.jpg
      

      5c2fc323-cf2f-4405-ad2a-0a5ff24013c8-image-20220130235222641.jpg

      修改为双屏驱动

      修改双屏也很简单,SPI 屏幕调试完成之后,将刚才关闭的各类驱动打开即可。

      配置设备树

      找到 SPI0 节点,将背光 led 注释掉,查看电路图可知 RGB 屏幕和 SPI 屏幕使用的背光是同一个,这里不需要分开注册。

      &spi0 {
      	clock-frequency = <100000000>;
      	pinctrl-0 = <&spi0_pins_a &spi0_pins_b>;
      	status = "okay";
          
          st7789v@0 {
          	status = "okay";
          	compatible = "sitronix,st7789v";
              reg = <0>;
              spi-max-frequency = <32000000>;
              rotate = <90>;
              rgb;
              fps = <30>;
              buswidth = <8>;
      	reset = <&pio PC 6 GPIO_ACTIVE_LOW>;
      	dc = <&pio PC 5 GPIO_ACTIVE_LOW>;
      //	led = <&pio PD 18 GPIO_ACTIVE_HIGH>;
              debug = <1>;
          };
      };
      

      把之前关闭的显示输出重新打开

      &disp {
      	disp_init_enable = <1>;
          ......
      }
      
      &lcd0 {
      	lcd_used = <1>;
          ......
      }
      
      &hdmi {
      	hdmi_used = <1>;
          ......
      }
      

      配置内核

      进入 kernel_menuconfig ,开启 DISP Driver Support(sunxi-disp2) 输出,并选择面板驱动。

      Device Drivers  --->
      	 Graphics support  --->
      	 	Frame buffer Devices  --->
      	 		 <*> Support for frame buffer devices  --->
      	 		 Video support for sunxi  --->
      	 		 	 <*> DISP Driver Support(sunxi-disp2)
      	 		 	 <*> HDMI2.0 Driver Support(sunxi-disp2)
      	 		 	 	 HDMI2.0 PHY SELECT. (Allwinner PHY)  --->
      	 		 	     LCD panels select  --->
      	 		 	 		 [*] LCD support ST7701S RGB panel
      	 [*] Staging drivers  --->
      	 	 <*>   Support for small TFT LCD display modules  --->
      	 	 	  <*>   FB driver for the ST7789V LCD Controller
      

      在 menuconfig 里将内核模块重新打开。

      Kernel modules  --->
      	Video Support  --->
      	 <*> kmod-sunxi-disp....................................... sunxi-disp support
               <*> kmod-sunxi-g2d......................................... sunxi-g2d support 
               <*> kmod-sunxi-hdmi....................................... sunxi-hdmi support
               <*> kmod-sunxi-uvc......................................... sunxi-uvc support
      

      编译,打包,测试。这里使用 ffmpeg 进行双屏播放 badapple.mp4

      a14ece23-1f74-417f-9541-725a06e06503-image-20220130235928850.jpg

      附录:部分设备树完整参考(配置双屏后,HDMI禁用了)

      &pio {
      	...前略...
      	spdif_pins_b: spdif_sleep@0 {
      		pins = "PB0";
      		function = "io_disabled";
      		drive-strength = <20>;
      		bias-disable;
      	};
      
      	spi0_pins_a: spi0@0 {
      		pins = "PC2", "PC4"; /*clk mosi*/
      		function = "spi0";
      		drive-strength = <10>;
      	};
      
      	spi0_pins_b: spi0@1 {
      		pins = "PC3";
      		function = "spi0";
      		drive-strength = <10>;
      		bias-pull-up;   // only CS should be pulled up
      	};
      
      	spi1_pins_a: spi1@0 {
      		pins = "PD11", "PD12", "PD13","PD14", "PD15"; /*clk mosi miso hold wp*/
      		function = "spi1";
      		drive-strength = <10>;
      	};
      
      	spi1_pins_b: spi1@1 {
      		pins = "PD10";
      		function = "spi1";
      		drive-strength = <10>;
      		bias-pull-up;   // only CS should be pulled up
      	};
      
      	spi1_pins_c: spi1@2 {
      		pins = "PD10", "PD11", "PD12", "PD13","PD14", "PD15";
      		function = "gpio_in";
      		drive-strength = <10>;
      	};
      
      	ledc_pins_a: ledc@0 {
      		pins = "PC0";
      		function = "ledc";
      		drive-strength = <10>;
      	};
      
      	ledc_pins_b: ledc@1 {
      		pins = "PC0";
      		function = "gpio_in";
      	};
      	
      	...后略...
      };
      
      &spi0 {
      	clock-frequency = <100000000>;
      	pinctrl-0 = <&spi0_pins_a &spi0_pins_b>;
      	status = "okay";
      
          st7789v@0 {
          	status = "okay";
          	compatible = "sitronix,st7789v";
              reg = <0>;
              spi-max-frequency = <32000000>;
              rotate = <90>;
              rgb;
              fps = <30>;
              buswidth = <8>;
      	reset = <&pio PC 6 GPIO_ACTIVE_LOW>;
      	dc = <&pio PC 5 GPIO_ACTIVE_LOW>;
      //	led = <&pio PD 18 GPIO_ACTIVE_HIGH>;
              debug = <1>;
          };
      };
      
      /*----------------------------------------------------------------------------------
      disp init configuration
      
      disp_mode             (0:screen0<screen0,fb0>)
      screenx_output_type   (0:none; 1:lcd; 2:tv; 3:hdmi;5:vdpo)
      screenx_output_mode   (used for hdmi output, 0:480i 1:576i 2:480p 3:576p 4:720p50)
                            (5:720p60 6:1080i50 7:1080i60 8:1080p24 9:1080p50 10:1080p60)
      screenx_output_format (for hdmi, 0:RGB 1:yuv444 2:yuv422 3:yuv420)
      screenx_output_bits   (for hdmi, 0:8bit 1:10bit 2:12bit 2:16bit)
      screenx_output_eotf   (for hdmi, 0:reserve 4:SDR 16:HDR10 18:HLG)
      screenx_output_cs     (for hdmi, 0:undefined  257:BT709 260:BT601  263:BT2020)
      screenx_output_dvi_hdmi (for hdmi, 0:undefined 1:dvi mode 2:hdmi mode)
      screen0_output_range   (for hdmi, 0:default 1:full 2:limited)
      screen0_output_scan    (for hdmi, 0:no data 1:overscan 2:underscan)
      screen0_output_aspect_ratio  (for hdmi, 8-same as original picture 9-4:3 10-16:9 11-14:9)
      fbx format            (4:RGB655 5:RGB565 6:RGB556 7:ARGB1555 8:RGBA5551 9:RGB888 10:ARGB8888 12:ARGB4444)
      fbx pixel sequence    (0:ARGB 1:BGRA 2:ABGR 3:RGBA)
      fb0_scaler_mode_enable(scaler mode enable, used FE)
      fbx_width,fbx_height  (framebuffer horizontal/vertical pixels, fix to output resolution while equal 0)
      lcdx_backlight        (lcd init backlight,the range:[0,256],default:197
      lcdx_yy               (lcd init screen bright/contrast/saturation/hue, value:0~100, default:50/50/57/50)
      lcd0_contrast         (LCD contrast, 0~100)
      lcd0_saturation       (LCD saturation, 0~100)
      lcd0_hue              (LCD hue, 0~100)
      framebuffer software rotation setting:
      disp_rotation_used:   (0:disable; 1:enable,you must set fbX_width to lcd_y,
      set fbX_height to lcd_x)
      degreeX:              (X:screen index; 0:0 degree; 1:90 degree; 3:270 degree)
      degreeX_Y:            (X:screen index; Y:layer index 0~15; 0:0 degree; 1:90 degree; 3:270 degree)
      devX_output_type : config output type in bootGUI framework in UBOOT-2018.
      				   (0:none; 1:lcd; 2:tv; 4:hdmi;)
      devX_output_mode : config output resolution(see include/video/sunxi_display2.h) of bootGUI framework in UBOOT-2018
      devX_screen_id   : config display index of bootGUI framework in UBOOT-2018
      devX_do_hpd      : whether do hpd detectation or not in UBOOT-2018
      chn_cfg_mode     : Hardware DE channel allocation config. 0:single display with 6
      				   channel, 1:dual display with 4 channel in main display and 2 channel in second
                         display, 2:dual display with 3 channel in main display and 3 channel in second
                         in display.
      ----------------------------------------------------------------------------------*/
      &disp {
      	disp_init_enable         = <1>;
      	disp_mode                = <0>;
      
      	screen0_output_type      = <1>;
      	screen0_output_mode      = <4>;
      
      	screen1_output_type      = <3>;
      	screen1_output_mode      = <10>;
      
      	screen1_output_format    = <0>;
      	screen1_output_bits      = <0>;
      	screen1_output_eotf      = <4>;
      	screen1_output_cs        = <257>;
      	screen1_output_dvi_hdmi  = <2>;
      	screen1_output_range     = <2>;
      	screen1_output_scan      = <0>;
      	screen1_output_aspect_ratio = <8>;
      
      	dev0_output_type         = <1>;
      	dev0_output_mode         = <4>;
      	dev0_screen_id           = <0>;
      	dev0_do_hpd              = <0>;
      
      	dev1_output_type         = <4>;
      	dev1_output_mode         = <10>;
      	dev1_screen_id           = <1>;
      	dev1_do_hpd              = <1>;
      
      	def_output_dev           = <0>;
      	hdmi_mode_check          = <1>;
      
      	fb0_format               = <0>;
      	fb0_width                = <0>;
      	fb0_height               = <0>;
      
      	fb1_format               = <0>;
      	fb1_width                = <0>;
      	fb1_height               = <0>;
      	chn_cfg_mode             = <1>;
      
      	disp_para_zone           = <1>;
      	/*VCC-LCD*/
      /*	dc1sw-supply = <&reg_dc1sw>;*/
      	/*VCC-DSI*/
      /*	eldo3-supply = <&reg_eldo3>;*/
      	/*VCC-PD*/
      /*	dcdc1-supply = <&reg_dcdc1>;*/
      };
      
      /*----------------------------------------------------------------------------------
      ;lcd0 configuration
      
      ;lcd_if:               0:hv(sync+de); 1:8080; 2:ttl; 3:lvds; 4:dsi; 5:edp; 6:extend dsi
      ;lcd_hv_if             0:Parallel RGB; 8:Serial RGB; 10:Dummy RGB; 11: RGB Dummy;12:CCIR656
      ;lcd_hv_clk_phase      0:0 degree;1:90 degree;2:180 degree;3:270 degree
      ;lcd_hv_sync_polarity  0:vs low,hs low; 1:vs high,hslow; 2:vs low,hs high; 3:vs high,hs high
      ;lcd_hv_syuv_seq       0:YUYV; 1:YVYU; 2:UYVY; 3:VYUY
      ;lcd_cpu_if            0:18bit/1 cycle parallel(RGB666); 4:16bit/1cycle parallel (RGB565)
      ;                      6:18bit/3 cycle parallel(RGB666); 7:16bit/2cycle parallel (RGB565)
      ;lcd_cpu_te            0:frame auto trigger; 1:frame triggered by te rising edge; 2:frame triggered by te falling edge;
      ;lcd_dsi_if            0:video mode; 1: Command mode; 2:video burst mode
      ;lcd_dsi_te            0:frame auto trigger; 1:frame triggered by te rising edge; 2:frame triggered by te falling edge;
      ;lcd_x:                lcd horizontal resolution
      ;lcd_y:                lcd vertical resolution
      ;lcd_width:            width of lcd in mm
      ;lcd_height:           height of lcd in mm
      ;lcd_dclk_freq:        in MHZ unit
      ;lcd_pwm_freq:         in HZ unit
      ;lcd_pwm_pol:          lcd backlight PWM polarity
      ;lcd_pwm_max_limit     lcd backlight PWM max limit(<=255)
      ;lcd_hbp:              hsync back porch(pixel) + hsync plus width(pixel);
      ;lcd_ht:               hsync total cycle(pixel)
      ;lcd_vbp:              vsync back porch(line) + vysnc plus width(line)
      ;lcd_vt:               vysnc total cycle(line)
      ;lcd_hspw:             hsync plus width(pixel)
      ;lcd_vspw:             vysnc plus width(pixel)
      ;lcd_lvds_if:          0:single link;  1:dual link
      ;lcd_lvds_colordepth:  0:8bit; 1:6bit
      ;lcd_lvds_mode:        0:NS mode; 1:JEIDA mode
      ;lcd_frm:              0:disable; 1:enable rgb666 dither; 2:enable rgb656 dither
      ;lcd_io_phase:         0:noraml; 1:intert phase(0~3bit: vsync phase; 4~7bit:hsync phase;
      ;                      8~11bit:dclk phase; 12~15bit:de phase)
      ;lcd_gamma_en          lcd gamma correction enable
      ;lcd_bright_curve_en   lcd bright curve correction enable
      ;lcd_cmap_en           lcd color map function enable
      ;deu_mode              0:smoll lcd screen; 1:large lcd screen(larger than 10inch)
      ;lcdgamma4iep:         Smart Backlight parameter, lcd gamma vale * 10;
      ;                      decrease it while lcd is not bright enough; increase while lcd is too bright
      ;smart_color           90:normal lcd screen 65:retina lcd screen(9.7inch)
      ;Pin setting for special function ie.LVDS, RGB data or vsync
      ;   name(donot care) = port:PD12<pin function><pull up or pull down><drive ability><output level>
      ;Pin setting for gpio:
      ;   lcd_gpio_X     = port:PD12<pin function><pull up or pull down><drive ability><output level>
      ;Pin setting for backlight enable pin
      ;   lcd_bl_en     = port:PD12<pin function><pull up or pull down><drive ability><output level>
      ;fsync setting, pulse to csi
      ;lcd_fsync_en          (0:disable fsync,1:enable)
      ;lcd_fsync_act_time    (active time of fsync, unit:pixel)
      ;lcd_fsync_dis_time    (disactive time of fsync, unit:pixel)
      ;lcd_fsync_pol         (0:positive;1:negative)
      ;gpio config: <&pio for cpu or &r_pio for cpus, port, port num, pio function,
      pull up or pull down(default 0), driver level(default 1), data>
      ;For dual link lvds: use lvds2link_pins_a  and lvds2link_pins_b instead
      ;For rgb24: use rgb24_pins_a  and rgb24_pins_b instead
      ;For lvds1: use lvds1_pins_a  and lvds1_pins_b instead
      ;For lvds0: use lvds0_pins_a  and lvds0_pins_b instead
      ;----------------------------------------------------------------------------------*/
      &lcd0 {
      	lcd_used        = <1>;
      	lcd_driver_name = "st7701s_rgb";
      
      	lcd_if          = <0>;
      	lcd_hv_if       = <0>;
      
      	lcd_width       = <70>;
      	lcd_height      = <72>;
      	lcd_x           = <480>;
      	lcd_y           = <480>;
      	lcd_dclk_freq   = <19>;
      	lcd_hbp         = <60>;
      	lcd_ht          = <612>;
      	lcd_hspw        = <12>;
      	lcd_vbp         = <18>;
      	lcd_vt          = <520>;
      	lcd_vspw        = <4>;
      
      	lcd_backlight   = <50>;
      	lcd_pwm_used    = <1>;
      	lcd_pwm_ch      = <7>;
      	lcd_pwm_freq    = <20000>;
      	lcd_pwm_pol     = <1>;
      	lcd_bright_curve_en = <0>;
      
      	lcd_frm         = <1>;
      	lcd_io_phase    = <0x0000>;
      	lcd_gamma_en    = <0>;
      	lcd_cmap_en     = <0>;
      	lcd_hv_clk_phase= <0>;
      	lcd_hv_sync_polarity= <0>;
      	lcd_rb_swap          = <0>;
      
      	lcd_power       = "vcc-lcd";
      	lcd_pin_power   = "vcc-pd";
      	lcd_gpio_0      = <&pio PG 13 GPIO_ACTIVE_HIGH>;
      	lcd_gpio_1      = <&pio PE 14 GPIO_ACTIVE_HIGH>;
      	lcd_gpio_2      = <&pio PE 12 GPIO_ACTIVE_HIGH>;
      	lcd_gpio_3      = <&pio PE 15 GPIO_ACTIVE_HIGH>;
      	pinctrl-0       = <&rgb18_pins_a>;
      	pinctrl-1       = <&rgb18_pins_b>;
      };
      
      
      
      &hdmi {
      	hdmi_used = <0>;
      	hdmi_power_cnt = <0>;
      	hdmi_cts_compatibility = <1>;
      	hdmi_hdcp_enable = <1>;
      	hdmi_hdcp22_enable = <0>;
      	hdmi_cec_support = <1>;
      	hdmi_cec_super_standby = <0>;
      
      	ddc_en_io_ctrl = <0>;
      	power_io_ctrl = <0>;
      };
      
      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 使用 WSL2 编译 LicheeRV Tina BSP

      下载WSL镜像:链接:https://pan.baidu.com/s/1geVQFcTpkoVgc-HNcHuENw 提取码:di1l

      WIndows上准备好WSL环境以及WSL2相关补丁。导入WSL镜像。

      wsl --import <Distro> <InstallLocation> <FileName>
      

      例如将Tina开发环境导入到 D:\VirtVM\Tina_build 并命名为 TinaBuild

      wsl --import TinaBuild D:\VirtVM\Tina_build Tina_WSL2.tar.gz
      

      将镜像转换为WSL2版本。

      wsl --set-version TinaBuild 2
      

      进入 Tina 开发环境

      cd tina-d1-open
      source build/envsetup.sh
      lunch
      

      镜像相关:

      用户名: tina
      密码: tina
      

      603c0a3c-f1db-4836-b364-e8e0686b2ad9-image.png

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 在 Lichee RV 上玩游戏:DOOM

      @pojdd 在 在 Lichee RV 上玩游戏:DOOM 中说:

      @yuzukitsuru 可以分享一下镜像吗?

      UnusolaOS_d1-lichee_rv_86_uart0.zip
      86Panel 的

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 在 Lichee RV 上玩游戏:DOOM

      移植了一下DOOM到 Lichee RV 上,用SDL管理所以要打开SDL的packages

      顺便把DOOM也加入packages了
      29c627d5-b67d-4ccd-9d47-c1453a12ebc5-image.png

      cad86e9b-106b-4a48-b5cb-21ffcf2ce381-image.png

      用Lichee RV Dock玩(视频不知道怎么就反了hhhh

      fe7ccea3-b84c-4bf1-b18d-d1bc18c3adeb-93E21526C8CE910A69A86B131FA411C6.png

      当然怎么能少了86Panel

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: D1 LicheeRV Dock 移植RTL8723DS驱动

      测了一下速度
      1bd6a809-dc2f-4e90-9cba-963693af5797-w.png

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: D1 LicheeRV Dock 移植RTL8723DS驱动

      @tigger 当然可以(

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: D1 LicheeRV Dock 移植RTL8723DS驱动

      @tigger 对,是有2个

      可以当热点用,一个STATION模式一个AP模式,如果不想要两个可以修改Makefile加一行

      EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
      

      660f14e7-50d9-49bc-92d8-2fb038ea07bc-2.jpg

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 【D1 Lichee RV & WIFI】RTL8723DS & BS 的 WiFi 移植记录

      我优化了一下现在模块插入大概只要8秒了

      a8dc4ebd-0344-4055-b2eb-1cee8b881672-8723ds.ko

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • D1 LicheeRV Dock 移植RTL8723DS驱动

      RTL8723DS焊接上去了,现在把驱动程序移植上去。

      咱先获取源码:https://github.com/lwfinger/rtl8723ds

      下载完成后,把驱动文件复制到 tina-d1-open\lichee\linux-5.4\drivers\net\wireless\rtl8723ds 里,没有rtl8723ds文件夹记得新建一个。

      fe5ca772-673e-4a45-a2df-c8b39365be51-image.png

      修改tina-d1-open\lichee\linux-5.4\drivers\net\wireless\Makefile,加一行 obj-$(CONFIG_RTL8723DS) += rtl8723ds/

      bb6a7df5-1a7a-4e9a-b680-570e4284fd69-image.png

      修改tina-d1-open\lichee\linux-5.4\drivers\net\wireless\Kconfig,加一行 source "drivers/net/wireless/rtl8723ds/Kconfig"

      fdb8f381-75aa-43c8-94e4-ce36577ec0e5-image.png

      修改tina-d1-open\lichee\linux-5.4\drivers\net\wireless\rtl8723ds\os_dep\linux\os_intfs.c
      加一行MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);

      1c869ee5-ccc3-4cd0-b92f-185d830f4d9e-image.png

      修改tina-d1-open\lichee\linux-5.4\drivers\net\wireless\rtl8723ds\os_dep\linux\rtw_cfgvendor.c
      在每一行.policy = VENDOR_CMD_RAW_DATA, 下面加上 .maxattr = 1,

      43e66411-c05e-496a-868a-9034ca7098b6-image.png

      修改tina-d1-open\target\allwinner\d1-lichee_rv_dock\modules.mk,增加以下内容:

      define KernelPackage/net-rtl8723ds
        SUBMENU:=$(WIRELESS_MENU)
        TITLE:=RTL8723DS support (staging)
        DEPENDS:= +r8723ds-firmware +@IPV6 +@USES_REALTEK
        FILES:=$(LINUX_DIR)/drivers/net/wireless/rtl8723ds/8723ds.ko
        AUTOLOAD:=$(call AutoProbe,8723ds)
      endef
      
      define KernelPackage/net-rtl8723ds/description
        Kernel modules for RealTek RTL8723DS support
      endef
      
      $(eval $(call KernelPackage,net-rtl8723ds))
      

      (其中的d1-lichee_rv_dock 是我的板级配置,请选择自己的板级配置比如d1-nezha,如下图)
      93134673-9dd9-4a31-9179-da70d31ede99-image.png

      进入内核配置,勾选Realtek 8723D SDIO or SPI WiFi为Module(<M>不是<*>)

      make kernel_menuconfig
      
      Device Drivers ->
           Network device support -> 
                 Wireless LAN -> 
                        <M>   Realtek 8723D SDIO or SPI WiFi
      

      进入Tina配置,勾选相关驱动

      make menuconfig
      
      Firmware  ->
           <*> r8723ds-firmware.............................. RealTek RTL8723DS firmware
      
      Kernel modules -> 
           Wireless Drivers  ->
              <*> kmod-net-rtl8723ds........................... RTL8723DS support (staging)
      

      保存,编译,打包

      make -j65535
      pack
      

      烧录后就能看到了
      e04b88a3-b684-4cfe-9ddf-ad75bc45daaf-739PM1SA(5)F32B@_B{@3~Q.jpg

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 【开源】YuzukiZero R329-N4 开发板更新记录

      @mangogeek hhhh,是挺像的

      发布在 A Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 【开源】YuzukiNezha D1s 核心板 Mini-PICE 核心板

      修复SD卡槽错误,优化走线。
      7eb1a8b2-74e2-4d63-a32b-21bde4e31d8f-IMG_3466(1).JPG

      跟F1C200S 核心板合影
      db83db27-93d4-4b3f-a6d5-8f2039b9deb2-IMG_3469(20220117-190206).JPG

      启动系统的样子
      c198d55d-f8bc-42c5-bcf8-847b04c53aff-AA2C8AC195B935A23DBDBA2795212EDF.png

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 【开源】YuzukiZero R329-N4 开发板更新记录

      fbc76d07-2067-4646-a95e-13afb0d07b2d-image.png

      发布在 A Series
      YuzukiTsuru
      柚木 鉉
    • Lichee RV 内存小了?改到2G来玩!

      在这之前

      这是一个计算条,D1核心配上512MB内存。
      ec02517e-e547-4847-b85d-7c188894bc5d-IMG_3350.JPG

      ee510bf7-eccf-438d-acc2-5c5727159d76-image.png

      运行正常系统已经完全够用了,不过我不是那种正常的人,写的一个小程序经常把内存用完被oom杀了。

      1941bbae-7619-4797-bd11-f4f1b9241c85-SDA.png

      ++内存

      查阅了一下资料(某宝),发现我钱包能承担的2G内存颗粒只有D9STR,也就是镁光MT41K1G16DGA-125:A,全新芯片280左右,但是二手只需要135。Datasheet显示这是一颗双晶DDR3L芯片。

      a3469e03-9158-4164-88ba-dc006ff917a5-image.png

      那就麻烦了,如果RV板子没有提供Two Rank,那就没办法驱动这颗芯片。于是查阅了Lichee RV的电路图
      a314a199-3d8b-4a0c-957a-15b5a0dde08f-image.png
      好欸,LicheeRV 的CS#,ODT#,CK都是按照TwoRank的接法连接的,所以可以直接替换了!

      准备材料

      • Lichee RV 计算条*1
      • 热风枪*1
      • 电烙铁*1
      • D9STR*1
      • 焊接材料若干
      • 洗板水+清洁材料

      开始魔改

      注意,魔改有失败风险,保修肯定是没有了。请确认拥有BGA拆焊能力再进行魔改!

      风枪温度360,风速40。拆焊之前记得上点油。焊接BGA差不多了要用镊子轻轻推一下,看看会不会归位,如果可以归位那就焊接完成了。

      当然颜值党肯定要把焊油洗干净的QwQ

      结果

      15d51f68-84ff-4d47-a3cd-488040703745-daas.jpg

      1aa8bf03-3d7f-4422-9ad2-7d7b395a9921-wadsa.jpg

      ecf24651-dac7-41ba-86e7-51e36db04c0f-DE`}@R(8}O0JSV}RWMQ7{LH.png

      再跑跑那个程序

      c2ebb27b-ebf8-4af8-9f22-db8b1c635b38-adas.png

      。。。。。。。。。。。。我回去改算法了

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 【开源】YuzukiNezha D1s 核心板 Mini-PICE 核心板

      OSHWhub 开源地址:https://oshwhub.com/GloomyGhost/yuzukif133 (PCB&SCH实时更新)
      Github 开源地址:https://github.com/YuzukiHD/YuzukiNezha-D1s (版本更新+SDK)

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 【开源】YuzukiNezha D1s 核心板 Mini-PICE 核心板

      经历了期末考试挂科风险、板子刚寄到学校我就回家了、疫情元器件停止派送等一些列人情世故后,它终于来了:YuzukiNezha D1s

      bcbd4947-a003-488c-8d8a-7f4d97374c6b-E7E25C86050458AD6EB2C24FCE79E063.png

      特点

      • Mini PCIE版型,引出接口,可以自由搭配以太网,RGB屏、MIPI屏底板。不需要排线连接转接。
      • 板载电源树、USB接口、TP排线接口、SPI与TF卡槽。PG11引出一颗LED,没有底板也能愉快点灯。
      • 四层板设计、工艺不需要加钱(最好花钱沉个金)、0402优雅阻容。
      • 板载WiFi模块,可以焊接各种适配模块。
      • LCEDA格式,OSHWHUB与Github开源。协议CERN-OHL-P

      来点图

      正面图

      16668cfb-c8d4-4583-87d5-2951a48fd5ff-IMG_3284.JPG

      背面图

      635947c0-4314-4ac9-b2be-e3bbf751a45e-IMG_3285.JPG

      三兄弟

      c56ccf7d-b8d2-45df-ac0f-a24b376fffd4-IMG_3283.JPG

      目前问题(杀鸽

      • TF卡槽买错了还没有验证
      • Audio部分被砍了(主要是期末考试没时间画了
      • WiFi 模块的配置电阻还没给,只能用特定型号的模块
      • 没时间画丝印(((
      • AWOL LOGO 反了(((

      验证xfel

      6a408930-f33d-463f-afa2-b6c283efe9a1-IMG_3282.JPG

      关于TF卡槽

      以为一模一样
      b1a5b38f-eeca-4360-8b94-b8f4292edc1d-image.png
      然后背刺

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 小麻雀板子 如何修改SDCARD分区大小

      12406aa3-cd01-44a9-ae48-6de0b3026556-image.png

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: D1s 小麻雀如何修改屏参??

      修改屏幕时钟 board.dts 里的 lcd_dclk_freq = <xx>;

      不过SDK好像有问题,修改了设备树dclk却不用

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 兄弟们,MangoPi-麻雀MQ已成功量产

      @buyadong SD卡,没贴

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 回复: 兄弟们,MangoPi-麻雀MQ已成功量产

      到货啦到货啦
      IMG_2846(20211212-105206).jpg IMG_2847(20211212-105213).jpg IMG_2848(20211212-105215).jpg

      发布在 MR Series
      YuzukiTsuru
      柚木 鉉
    • 1
    • 2
    • 8
    • 9
    • 10
    • 11
    • 12
    • 12 / 12