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技术站

写给玩家的FPGA入门指南(1)——逻辑门,FPGA,开发板,游戏机

2018 年 9 月 10 日分类:硬件坑#FPGA#Verilog#教程

相信通过上一期的文章,大家已经对逻辑电路和单片机的区别有了一些了解,也看到了一些其它爱好者使用逻辑电路(FPGA)做的一些制作。今天要讲的则是一些更加实际的东西,关于相关芯片、开发板的购买,以及本系列实现教程的目标——游戏机——的过程概览。

74 or PLD?

也是按照之前的顺序,我们先讲74再讲CPLD/FPGA。74系列芯片虽然是很早以前就有的东西,功能也可以被可编程器件取代,但是它并没有被完全淘汰。74系列芯片仍然经常被应用在各种电路当中,也容易被买到。值得注意的是,74系列芯片也经常被称为TTL芯片,这是不准确的,74系列也有不少使用CMOS技术制造的芯片,且CMOS是最常使用的,而非TTL。另外提一点,虽然74系列芯片可以被认为是基础,但是完成本系列的教程并不一定需要购买使用74系列芯片,当然作为增加趣味是可以的。

74系列之所以被称为系列,是因为它里面有许多不同功能的芯片,组成了一个系列。基础的比如与或非门,稍微复杂一些的如触发器,再复杂一些如计数器、加法器,都有对应的芯片可以选择。玩过单片机的朋友可能比较熟悉595、245,这些也是74系列芯片的成员,这两者分别常用于扩展IO口和驱动总线。通常来说,74系列芯片使用14脚的DIP或SOP封装,实现一个制作通常也需要多片74芯片。因为根据不同制作和设计的不同,需要的芯片种类和个数也有可能非常不一样,这里可能很难做一个具体的推荐。但是为了完成一些基础的实验,通常来说会用到74HC04(非门)、74HC08(与门)、74HC32(或门)、74HC74(D触发器)和74HC47(LED译码器)。考虑到这些芯片的价格通常比较便宜(几毛钱到1块多人民币不等),可以在买元件的时候顺便带上几片。值得注意的是,由于74芯片确实可以实现和FPGA等价的逻辑功能(但是设计的时序问题可能就较难处理,通常只能实现较为低速的电路设计),为此有不少人热衷于使用74芯片来实现大型的电路,而不是FPGA。毕竟最初的目的只是为了好玩,用74来设计确实可以增加不少乐趣。以下是一个完全用74芯片制作的CPU——TD4: 感兴趣的朋友可以自己搜索来了解一下,也可以尝试把它做出来。

1540158703162-fac22940d9e151e423c33c001dbc899249d24e91.jpg@1320w_990h.jpg

(使用74系列芯片制作的CPU——TD4)

接下来,来讲讲CPLD和FPGA。74虽然能做逻辑电路,但是,设计起来费力,制作起来费力,调试起来也费力。可编程逻辑器件就相对友好的多。可编程逻辑器件,最常见的也就是CPLD和FPGA。

MORE

日常点屏[24]: SX21V001

2018 年 9 月 1 日分类:硬件坑#LCD#点屏#FPGA#Verilog

纵观之前的23期日常点屏加上4期非日常点屏,点过的屏幕类型已经涵盖了正负性STN、正负性FSTN、彩色TFT、Eink、彩色CRT、双色LED点阵和微型LED字符屏。不过显然也有更多其它的屏幕类型是没有涉猎过的,比如等离子、EL、PNLC等等。今天这次点的就是一种十分常见,但是之前却从来没有尝试过的屏幕类型:CSTN。

CSTN屏幕简单来说,无非就是单色STN加上彩色滤色片。那直接用之前单色屏的方案就好了咯?并不是那么简单。目前主流的处理器早已没有了对STN/CSTN接口的原生支持,想要直接接上LCDC玩不太现实,除非找一个古董MPU,比如2410一类的,确实是一个方案。我之前一直都是采用STM32 + bitbang来驱动STN液晶。这个方法对付STN还行,对付CSTN就麻烦了,最大的问题就是各方面速度都不够快。如果从USB输入图像数据,最高也就1-2fps的速度,就算是从SD卡,也就大约10fps的速度(无压缩)。而输出就更惨了,刷新率可能只有30Hz不到,别说抖动灰度,估计连稳定显示都做不到了。

所以解决方案也很直接,上FPGA。于是就有了这个项目了咯。VGA输入,DDR2缓冲,FRC抖动到32级灰度(32K色),最后输出到CSTN。

具体效果可以参考演示视频:https://www.bilibili.com/video/av30767980/

MORE

树莓派x2

2018 年 7 月 29 日分类:摄影#摄影#树莓派

https://www.zephray.me/api/media/1532795141699-DSC_0022.jpg

https://www.zephray.me/api/media/1532795131313-IMG_8135_S.jpg

写给玩家的FPGA入门指南(0)——什么是FPGA

2018 年 7 月 24 日分类:硬件坑#FPGA#Verilog#教程

想必各位读者中有不少是玩过Arduino、单片机或者是做过一些模拟电路制作的吧? 在玩过这些东西之后,经常会有的一个疑问就是,下一步玩什么?一部分人选择更加复杂的东西,比如32位单片机(如STM32)或者研究嵌入式Linux(如以“树莓派”为代表的超小型计算机),而另一部分人则是选择尽可能利用已经会的东西,做出一些有意思的制作。如果是前者,那么相信,这个所谓的“更复杂的东西”的列表里,一定会有FPGA。这个系列的文章,就是希望帮助那些已经有一定电子制作的基础,想要了解或者学习FPGA,却无从下手的人,当然可能对于正在学校学习FPGA的学生也会有一定的启发作用。本文作为这个系列文章的第一篇,先对FPGA以及相关的内容做一个概述。

如果从来接触过FPGA,那么可能直觉上会认为FPGA是一种很厉害的单片机(MCU),毕竟它看起来也就是一个体积比较大的芯片,开发板看起来也就和单片机开发板一样,甚至开发板自带的教程也像单片机的教程一样,把开发板上面自带的外设全部玩一遍。然而,实际上根本不是这样,FPGA并不是单片机,而且这两者甚至很难具有可比性。通常而言,玩单片机是玩软件编程,而玩FPGA是玩硬件编程。要了解FPGA的含义和用途,还要先从它的功能开始。

FPGA有什么功能?

首先我们来考虑一个问题。现在有一个LED,有一个按键,要实现按下按键点亮LED,应该怎么做呢?答案很简单,把电源、LED和按键全部串联在一起就行了。按下按键,电路接通,LED就会点亮。要用单片机来实现这个效果,基本的思路就是使用一个死循环,不停读取按键输入,然后把结果输出到LED。听起来用单片机完全就是多此一举嘛。那么现在来修改一下需求,有两个按键,要实现现在正好两个按键都按下或者都松开的情况时候点亮LED。用单片机来做并不需要做太多的修改,只需要在循环当中加入一些判断语句即可。如果这种情况下,还需要不使用任何芯片来控制LED,就不是连几条线的事情了。那么是不是说明单片机非常适合做这类的事情呢?其实并不是。考虑一下,如果这只是单片机需要做的事情的一部分,假如单片机还需要进行其他的处理,比如需要控制数码管刷新,也需要不断循坏。当很多这种需要不断循环的东西放到一起时,程序就不那么容易实现了,而且受限于单片机的性能,各个任务的响应速度也会受到影响。

那么有没有除了单片机以外的,更加直接一些的方法,用来实现以上的简单任务呢?比如有没有什么东西,正好有两个输入和一个输出,当且仅当两个输入全部为高或者全部为低的时候,输出高电平呢?答案是肯定的。有一种芯片,叫做74LS86,正好可以实现这个功能。功能类似的芯片还有很多,这类芯片就叫做逻辑们芯片,或者我们常说的74系列芯片(74是主要的逻辑芯片系列,但是也有很多其它系列的逻辑芯片)。他们的内部通常并不复杂,只有数量较少的三极管或者场效应管而已。有了这种芯片,电路设计就十分容易了,把按键接上74LS86的输入,把LED接上74LS86的输出,就能得到需要的效果。当然,如果有更多事情要做,就得加入更多的芯片了,因为单片74芯片通常只能实现非常有限的功能。而且,可想而知,不可能针对每一种特定的应用都会有特定的芯片,这样成本也太高了。也正是这个原因,才会有单片机这类的可编程器件,可以随时修改其实现的功能以满足不同的需要。似乎绕了一圈又回到了原点,并没有解决之前提到的问题,反而是带来了更多的问题。也确实不奇怪,发明单片机的一个目的就是代替一部分用74芯片实现的电路。

MORE

如何自制一张GameBoy烧录卡

2018 年 7 月 17 日分类:硬件坑#GameBoy#FPGA#Verilog

前言

Game Boy这个词,相信一定能勾起不少80后和90后的童年回忆。从简单的打砖块到精灵宝可梦、塞尔达传说,这个平台上出现过太多经典的作品。而Game Boy本身也是从1989年开始一直生产到了2009年,总销量超过一亿台,成为了历史上第二畅销的掌上游戏机。值得指出的是,虽然Game Boy一直生产到了2009年,但是其主要的结构更接近于80年代流行的如FC(红白机)一类的8位游戏机。巨大的销量使它成为了最容易得到的8位复古游戏机之一。这一特点吸引了不少热爱8位游戏独特视听感受的玩家购买游玩Game Boy,也吸引了不少独立游戏开发者。时至今日,依然有爱好者在为Game Boy平台开发新的游戏。而Game Boy这一特点不仅仅吸引了游戏玩家。作为一台8位机, Game Boy内置的四声部PSG(可编程音频发生器)可以产生8位机独有的芯片音乐Chiptune。因此Game Boy受到了不少芯片音乐爱好者的追捧,包括也出现了如LSDJ一类的Game Boy专用的编曲软件,专门用于进行Chiptune音乐的编曲制作。8位机本身结构简单易于理解的特点也使Game Boy成为了一部分高校课堂中使用的例子。如佐治亚理工大学开设了Game Boy游戏设计课程帮助学生学习理解计算机体系架构,而卡内基梅隆大学也把设计一台Game Boy作为其高级数字系统设计课程的课程设计选题之一。这一切,发生在其停产近10年后的今天,也证明了这个经典平台强大的生命力。

要游玩Game Boy的游戏,当然是需要一台Game Boy和一张游戏卡带。如果想要玩的游戏是曾经的商业游戏,那只需要购买一张二手的卡带即可。但是如果是爱好者自制的游戏(或者程序),或者想要在Game Boy上运行自己编写的游戏,那就没有那么轻松了。通常而言,商业游戏的卡带是只可读取不可写入的,而为了写入自己的游戏,则需要一张可以写入的Game Boy烧录卡。

目前市场上可以购买到一些现成的烧录卡,然而价格都比较高昂,通常超过Game Boy本身的好几倍。然而好在,Game Boy的技术资料很容易在网上找到,只要能了解其原理,自己设计并制作一张烧录卡是可以做到的。

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