module ZephRay;

今朝有鱼今朝摸

Category

  • 硬件坑
  • 玩机
  • 翻译
  • 软件坑
  • 随记
  • 摄影

Tags

  • LCD
  • 点屏
  • 单片机
  • 计算器
  • 事
  • 摄影
  • STM32
  • 古董
  • 测评
  • 笔记本
  • 树莓派
  • 移植
  • 改造
  • FPGA
  • 小动物
  • nspire
  • Linux
  • ARM
  • Verilog
  • 景
  • EPD
  • LED
  • 晒机
  • HP
  • GameBoy
  • 3DS
  • SDL
  • IBM
  • 教程
  • Minecraft
  • ThinkPad
  • Kindle
  • 82ES
  • 花
  • Chiptune
  • Assembly
  • 手办
  • 仙剑奇侠传
  • Nikon
  • NDSL
  • 演讲

Recent replies

  • knight 发表于「Kindle Paperwhite 2 强行救砖(1)」
  • knight 发表于「Kindle Paperwhite 2 强行救砖(1)」
  • knight 发表于「Kindle Paperwhite 2 强行救砖(1)」
  • knight 发表于「Kindle Paperwhite 2 强行救砖(1)」
  • TPOB 发表于「Kindle Paperwhite 2 强行救砖(1)」
  • ZephRay 发表于「古董电脑选型」
  • 思北 发表于「古董电脑选型」
  • WOW 发表于「破烂采购列表」
  • RanDom 发表于「破烂采购列表」
  • Wenting Zhang 发表于「古董电脑选型」

My

RSS

坑/Projects
关于我
简历
破烂采购计划
古董电脑选型
SM83(GB CPU)指令编码

淘宝杂货铺
Bilibili空间
GitHub

Links

cnVintage古董电子论坛
cnCalc计算器论坛

Keshuai Xu
>Lithia's Core
ntzyz's space
初春 · 姫
丘丘塔台
tonoko.moe
kasora's blog
447f.Misaka
Hikari Calyx Tech.
春上冰月的博客
一只布丁的部落格
初音没有来
Test2g
Shell Bin
LEAFER x LAB
Genius.Home
Android技术站
标签:单片机

交叉编译 OpenCV

2018 年 12 月 28 日分类:软件坑#单片机#Linux
#安装编译依赖
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

#新版本 Ubuntu 的源中没有 libjasper-dev 手动添加源
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

#创建编译目录:
mkdir opencv-build

#下载 OpenCV 源代码:
git clone https://github.com/Itseez/opencv.git

mkdir build
cd build

#创建 cmake 编译信息:
cmake -DENABLE_VFPV3=ON -DENABLE_VFPV4=ON -DENABLE_NEON=ON -DCMAKE_TOOLCHAIN_FILE=../opencv/platforms/linux/arm-gnueabi.toolchain.cmake ../opencv

#编译:
make -j4
make install

东西都在 ./install 目录下了。

编译自己的应用时注意 opencv2 头文件都是在 opencv4 文件夹下的。 编译参数:

OPENCV_INCLUDE=$(LIBPREFIX)/include/opencv4
-I$(OPENCV_INCLUDE)
-lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_flann

[WIP] 日常点屏[25]: AML-B16C15012Q

2018 年 11 月 22 日分类:硬件坑#LCD#点屏#单片机#FPGA

这个屏幕是给VerilogBoy实体机使用的屏幕,MIPI DSI接口,因为以前从来没有点过MIPI的屏幕,这里记录下过程方便以后参考。

1543943583616-photo_2018-12-04_12-13-56.jpg

基本信息

  • 型号:AML-B16C15012Q
  • 类型:RGB IPS TFT-LCD
  • 模式:Normal Black
  • 分辨率:320x320
  • 灰度:接口支持8bpc,内部显存为6bpc,实际输出可能为6bpc
  • 控制器:ST7796S
  • 尺寸:1.54"
  • 接口:MIPI 1-lane
  • 背光:3并,VF=3.2V

接口定义

  1. LEDA
  2. LEDK
  3. VCC 2.8
  4. RESET
  5. NC
  6. NC
  7. NC
  8. VCCIO 1.8
  9. GND
  10. DATA0_P
  11. TE
  12. DATA0_N
  13. NC
  14. GND
  15. GND
  16. CLK_P
  17. NC
  18. CLK_N
  19. NC
  20. GND

笔记

  • 时钟线最大频率500MHz,最低频率80MHz
  • LP模式下DS要求每个状态保持时间为35-75ns,实测100ns也可行
  • 0x2C通过LPDT无法正确写入数据(短包长包都不行),0x3C可行(仅限长包)

初始化

	Delay_ms(120); 
	 
	GP_COMMAD_PA(2);
	SPI_WriteData(0x36); // Memory data access control  
	SPI_WriteData(0x48); // Reverse X, BGR
	 
	GP_COMMAD_PA(2);
	SPI_WriteData(0x3A); // Interface pixel format
	SPI_WriteData(0x77); // 16.7M Color (not defined in DS???)
	 
	GP_COMMAD_PA(2);
	SPI_WriteData(0xF0); // Command Set Control
	SPI_WriteData(0xC3); // Enable Command 2 Part I
	 
	GP_COMMAD_PA(2);
	SPI_WriteData(0xF0); // Command Set Control
	SPI_WriteData(0x96); // Enable Command 2 Part II
	 
	GP_COMMAD_PA(3);
	SPI_WriteData(0xB1); // Frame Rate Control
	SPI_WriteData(0xA0); // FRS = 10 DIVA = 0 RTNA = 32
	SPI_WriteData(0x10); // FR = 10^7 / ((168+RTNA+32x(15-FRS))(320+VFP+VBP))
	 
	GP_COMMAD_PA(2);
	SPI_WriteData(0xB4); // Display Inversion Control
	SPI_WriteData(0x00); // 00: Column INV, 01: 1-Dot INV, 10: 2-Dot INV   
	 
	GP_COMMAD_PA(5);
	SPI_WriteData(0xB5); // Blacking Porch Control
	SPI_WriteData(0x40); // VFP = 64
	SPI_WriteData(0x40); // VBP = 64
	SPI_WriteData(0x00); // Reserved
	SPI_WriteData(0x04); // HBP = 4

	GP_COMMAD_PA(4);
	SPI_WriteData(0xB6); // Display Function Control
	SPI_WriteData(0x8A); // Bypass RAM, DE mode
	SPI_WriteData(0x07); // Non inverting
	SPI_WriteData(0x27); // 8*(0x27+1) = 320 lines
	 
	GP_COMMAD_PA(2);
	SPI_WriteData(0xB9); // There is no B9 in datasheet
	SPI_WriteData(0x02); 
	 
	GP_COMMAD_PA(2);
	SPI_WriteData(0xC5); // VCOM Control
	SPI_WriteData(0x2E); // 1.450V
	 
	GP_COMMAD_PA(9);
	SPI_WriteData(0xE8); // Display Output
	SPI_WriteData(0x40); 
	SPI_WriteData(0x8A); 
	SPI_WriteData(0x00); 
	SPI_WriteData(0x00); 
	SPI_WriteData(0x29); 
	SPI_WriteData(0x19); 
	SPI_WriteData(0xA5); 
	SPI_WriteData(0x93); 
	 
	GP_COMMAD_PA(15);
	SPI_WriteData(0xe0); // Positive Gamma Control
	SPI_WriteData(0xf0); 
	SPI_WriteData(0x07); 
	SPI_WriteData(0x0e); 
	SPI_WriteData(0x0a); 
	SPI_WriteData(0x08); 
	SPI_WriteData(0x25); 
	SPI_WriteData(0x38); 
	SPI_WriteData(0x43); 
	SPI_WriteData(0x51); 
	SPI_WriteData(0x38); 
	SPI_WriteData(0x14); 
	SPI_WriteData(0x12); 
	SPI_WriteData(0x32); 
	SPI_WriteData(0x3f); 

	GP_COMMAD_PA(15);
	SPI_WriteData(0xe1); // Negative Gamma Control
	SPI_WriteData(0xf0); 
	SPI_WriteData(0x08); 
	SPI_WriteData(0x0d); 
	SPI_WriteData(0x09); 
	SPI_WriteData(0x09); 
	SPI_WriteData(0x26); 
	SPI_WriteData(0x39); 
	SPI_WriteData(0x45); 
	SPI_WriteData(0x52); 
	SPI_WriteData(0x07); 
	SPI_WriteData(0x13); 
	SPI_WriteData(0x16); 
	SPI_WriteData(0x32); 
	SPI_WriteData(0x3f); 
	 
	GP_COMMAD_PA(2);
	SPI_WriteData(0xF0); // Command Set Control
	SPI_WriteData(0x3C); // Disable Command 2 Part I
	 
	GP_COMMAD_PA(2);
	SPI_WriteData(0xF0); // Command Set Control
	SPI_WriteData(0x69); // Disable Command 2 Part II
	 
	GP_COMMAD_PA(1),   
	SPI_WriteData(0x11); // Sleep Out
	Delay_ms(120);
	 
	GP_COMMAD_PA(1),   
	SPI_WriteData(0x29); // Display ON 
	Delay_ms(50);
	 
	GP_COMMAD_PA(1);
	SPI_WriteData(0x21); // Display Inversion ON
	
	
	GP_COMMAD_PA(5);
	SPI_WriteData(0x2A); // Column Address Set
	SPI_WriteData(0x00);   
	SPI_WriteData(0x00); 
	SPI_WriteData(0x01); 
	SPI_WriteData(0x3F); 
	 
	GP_COMMAD_PA(5);
	SPI_WriteData(0x2B); // Row Address Set
	SPI_WriteData(0x00);   
	SPI_WriteData(0x00); 
	SPI_WriteData(0x01); 
	SPI_WriteData(0x3F);

非日常点屏[3]:SCD5584

2017 年 1 月 17 日分类:硬件坑#点屏#LED#单片机

首先,感谢 @andy=Lithia 大佬赠送的屏幕!这次这个确实不是之前一直在点的液晶屏幕,这次是LED微型点阵。由于懒得写字,直接放图算了……(真好看啊)

MORE

STM32 Chrom-Art Accelerator™简介&实验

2016 年 9 月 12 日分类:硬件坑#单片机#点屏#STM32

前言

STM32是这几年来相当相当流行的单片机系列,凭借着低功耗、高性能、高性价比等优点在爱好者中聚集了很多人气。博主是从2011年开始接触STM32的。因为博主自己是个液晶屏幕控,拿STM32点各种屏幕那是少不了的,SPI、i80、68K这些51都能点的自然不在话下,Raw-STN接口则是比较能体现STM32优势的地方,其实优势说白了也就是大RAM(数十KB)+高速度(IO翻转速度>10MHz)。这个blog里面也有一些关于STM32点Raw-STN接口的记录:深圳安鑫320160两片、日常点屏:M320240-19 & LM081HB1T。然而如果要点Raw-DPI接口(大多数480*272 ~ 800*600屏幕所使用的接口)的屏幕,那STM32就无能为力了,于是以前在对付这种屏幕的时候,我请出了树莓派:树莓派驱动DPI液晶。不过其实早在2014年ST就推出了STM32F429/F439系列单片机,可以支持外扩SDRAM和Raw-DPI液晶。不过由于种种原因,我一直没有亲自去尝试。直到今年有幸得到了一块官方STM32F429I-EVAL,功能简直全面,于是就有机会玩一玩这个“新”芯片。

新芯片除了可以外扩SDRAM和DPI液晶之外,还很贴心地配套加入了一个2D加速功能,官方称为Chrom-Art Accelerator™。找了一圈国内论坛发现关于429的教程、日志一大堆,可是却没有人提及这个2D加速……今天花了半天时间把这个加速器玩了一圈,干脆写个博文记录一下,方便以后参考。

MORE

NekoCal(EPD电子万年历套件)组装说明

2016 年 6 月 18 日分类:硬件坑#单片机#STM32

项目页面见 NekoCal 电子纸台历,本文主要简单介绍如何组装套件(焊接好的主板+外壳+屏幕)

STEP 1 检查东西是否齐全

如图所示

MORE
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Copyright © 2009-2019 Wenting Zhang. All rights reserved.
Unless otherwise noted, content on this blog is licensed under CC BY-SA 4.0.