module ZephRay;

今朝有鱼今朝摸

Category

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

Tags

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

Recent replies

  • 朱寅翚 发表于「Kindle Paperwhite 2 强行救砖(1)」
  • 朱寅翚 发表于「Kindle Paperwhite 2 强行救砖(1)」
  • jcyfkimi 发表于「日常点屏[27]: LAEL320.256-6C」
  • hzy 发表于「IBM ThinkPad 560E (Type 2640) 简单展示」
  • 城市猎人 发表于「IBM ThinkPad 560E (Type 2640) 简单展示」
  • imbushuo 发表于「About Me」
  • 070 发表于「古董电脑选型」
  • Thermit 发表于「About Me」
  • 盛崖鱼 发表于「About Me」
  • Wenting Zhang 发表于「About Me」

My

RSS (中文优先)
RSS (English preferred)

坑 / Projects
关于我 / About
简历 / CV
破烂采购计划 / Craplist
古董电脑选型
SM83(GB CPU)指令编码
Linux PI 1M位跑分
Coremark跑分
音质参考

淘宝杂货铺
Bilibili空间
GitHub

Links

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

Keshuai Xu
>Lithia's Core
ntzyz's space
丘丘塔台
tonoko.moe
kasora's blog
447f.Misaka
paizhang.info
spinmry实验室
电子考古学
Hikari Calyx Tech.
春上冰月的博客
业余无线电台 BD4SUR
FindHao
Test2g
Shell Bin
LEAFER x LAB

2019年终流水账

2020 年 1 月 5 日分类:随记#事

首先复读去年的话:

大致都是一些无聊的日常?因为确实算不上是个年终总结,所以也没有必要在标题中冒充是篇总结。

至于为什么要写,因为去年写了所以今年也写一写好了。

但是关于2019年,首先放四个大字:摸得透彻。

2019年1月

去年一月的话,已经是在波士顿了,当时因为时差的原因晚上睡不着,就坐在床上用X201s写去年的流水账。起床之后,因为刚刚搬到波士顿住,家里还什么都没有,就赶紧出门办了张地铁卡,然后去超市买了些吃的。随后就是开始了全新的工作日常。

本月博文

  • 2018年终流水账

嗯……去掉教程这个月只写了个流水账,毕竟啥都还没开始嘛(大概)

本月照片

去年的时候还在纠结选哪张照片才能代表一月,然而今年……其实根本没有拍多少照片所以没有什么好找的(尴尬)。以及今年所有的照片都是从手机拍摄的照片里面选的,iPhone SE弱弱摄像头也就只有这样了。照片是公司下班之后在公司门口拍的,所以其实画面下方是停着的车子。初入公司,感觉其实工作意外的顺利呢。

MORE

日常点屏[26]: GameBoy Pocket LCD

2019 年 9 月 22 日分类:硬件坑#点屏#LCD

因为最近新坑(RP)的原因终于是有机会来点了点这个屏幕。讲一讲这个屏幕和其它之前遇到过的屏幕不一样的地方。首先屏幕是FSTN但是却是负高压。这两者本身并不冲突,只是通常而言FSTN的屏幕出现晚于STN,倾向于使用正高压而非负高压。其次是这个屏幕的扫描和行锁存分别有两个信号控制,一个为S,另外一个为CPL,目前并不清楚区别。再次是这个屏幕有一个叫CPG的信号,每一行会脉冲四次,第二次脉冲紧接着第一次,而第三次和第四次则是相隔较远。经测试该信号与PWM灰度有关,如调节第三次脉冲的位置即可调节较浅一级灰度的深度。向前会变淡,而向后会变浓。第四次脉冲则是控制较深灰度的深度。如果两个脉冲的位置不变而行长度增长,同样也会使两个灰度变淡。

刷新方法的话,这里采用MCU软件刷新。软件刷新目前的代码可以达到约153Hz的刷新率,那么为了节约电力大约有以下三种方案:

  • 基准:MCU持续刷新
  • 场待机:MCU刷完每一场后WFI待机,保持垂直刷新率85Hz。这种做法的问题在于MCU刷完待机期间屏幕也不显示内容,相当于占空比增加,为了达到同样亮度需要提高驱动电压,可能会带来额外的功耗开销。
  • 行待机:MCU刷完每一行后WFI待机,保持水平刷新率13.6kHz,垂直刷新率85Hz。

在当前的硬件下测试结果如下:

  • 基准:125mW
  • 场待机:117mW
  • 行待机:106mW

基本信息

  • 类型:单色点阵STN
  • 模式:FSTN Reflective
  • 分辨率:320x320
  • 灰度:2bpp
  • 驱动器:不详
  • 尺寸:2.6"
  • 背光:无

1569201522584-DSC_5023_s.jpg

MORE

猫(2)

2019 年 8 月 11 日分类:摄影#小动物

啊 CCD味(玄学现场?

1565557091083-DSC_1822.jpg

HP Prime G2 Reverse Engineering

2019 年 7 月 13 日分类:硬件坑#计算器#改造
Hint: this post is also available in Chinese.

Specifications

  • CPU:MCIMX6Y2DVM05AB(528MHz,Cortex A7)
  • RAM:H5TQ2G63GFR(256MB,DDR3)
  • Flash:H27U4G8F2D(512MB,3.3V)
  • PMIC:PF1550
  • LCD:GPM1006(320xRGBx240,Serial-RGB,ILI9322B)
  • TSC:GT9288

Boot Mode

The following test points are present on the PCB:

  • BT0L - Boot Mode 0 Low
  • BT0H - Boot Mode 0 High
  • BT1L - Boot Mode 1 Low
  • BT1H - Boot Mode 1 High

Circuits nearby: (front side)

GND  T1H  T1H  GND
10K  10K   0R   NC
TMOD 3V3  T1L  T1L

GND  T0H  T0H  GND
4K7   NC   NC   NC
TCK  3V3  T0L  T1L

To enter USB DFU mode:

  • Remove the 10K resistor between T1H and 3V3
  • Solder a 10K resistor between T0H and 3V3
  • Solder a 0R resistor between T0H and T0L (not sure if necessary)

There should be (lot of) other possible ways to change the bootmode or force it to fallback to the DFU mode.

Note: It is technically not a USB DFU (Device Firmware Upgrade) mode as it does not utilize the standard DFU protocol. It uses the i.MX Serial Download Protocol. I call it DFU as this is a more common term for such things.

MORE

Pano Logic G1 (4) - USB

2019 年 6 月 9 日分类:硬件坑#FPGA#单片机
Hint: this post is also available in Chinese.

I promised that there would be an update about the USB, here it is. This update would only talk about the USB 2.0 Host on the Pano Logic G1 devices with ISP1760 USB host controller, so it is probably not applicapable to other platforms. The goal here is to write a set of RTL and software stack, so it is possible to use USB HID joystick/ gamepad and USB mass storage devices on the Pano G1. Speed would not be the concern here.

Hardware Connections

On the Pano G1, an USB 2.0 high-speed host controller (Phillips ISP1760) is connected to the FPGA via 16-bit parallel memory bus. To mitigate one of the controller’s errata, an USB high speed hub (SMSC USB2513) is connected to one of the downstream port of the controller, and all user accessible ports are connected to the USB hub.

Overall Architecture

Though it might be possible to write a FSM to implement some basics of the USB host protocol stack, it is just not very practical. (Device side might be more practical, though). The solution I have here is to continue use the PicoRV32 soft-core processor on the FPGA. The host controller would be mapped to PicoRV32’s memory space as MMIO, then software driver and protocol stack can run on the PicoRV32. When needed, certain outputs can be achieved by using MMIO GPIO (for example, output the currently pressed keys). Hopefully, debugging software would be much easier than debugging hardware.

Generally, there would be several layers. The bottom part is called as the HCD (Host Controller Driver), which is specific to particular hardware, like the controller chip being used. Then it comes the HD (Host Driver), this is the part handles device enumeration and USB Hub communication, this layer is no longer specific to the platform. Higher than that is the class driver, as name suggests this is specific to a device class, for example, HID class or audio class. The driver might be generic to the whole class, or it might just support one of few specific USB devices. Higher than that, usually it is operating system, or in our case, user application.

In conclusion, there are 5 things I need to do:

  1. Write the RTL to interface ISP1760 with PicoRV32
  2. Port or write the HCD for ISP1760
  3. Port some appropriate host driver over
  4. Port or write the class driver for HID gamepad and mass storage devices
  5. Write some application code to use the driver

Let’s discuss all these parts.

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