CMOS三角波生成器

原理

要生成三角波,可以考虑用电流源给电容器充电/放电。因为电容的伏安关系式为 \[i = C{{\rm d}u\over{\rm d}t},\] 所以只要通过的电流恒定,电容两端的电压就会线性地变化。

如图所示的原理电路中,左边是两个方向相反的电流源(通常,从电源抽取电流的称为电流源,将电流流入地的称为电流阱),经过一个单刀双掷开关,轮流地给电容充放电。

但是这个开关要能实现自动地切换,才能实现给电容轮流充放电的功能。所以希望这个开关是受电压控制的开关,当控制电压为高电平时开关拨向上面,而低电平时拨向下面。

这个控制信号可以由施密特触发器产生。如图所示,电容上端电平送入一个反相的施密特触发器,当输入电平上升至上门限电压时,施密特触发器输出突变为低电平,当输入电平下降至下门限电压时,输出突变为高电平。这样就实现了控制信号的生成。

继续阅读 →

运算法求解动态电路

如图所示的电路,在\(t=0\)时刻,有\(i_{L_r}(0)=I_0\), \(u_{C_r}(0)=0\)。试求\(t>0\)时的\(i_{L_r}(t)\)和\(u_{C_r}(t)\)。

这电路含有动态元件,可以使用运算法来求解。

继续阅读 →

DS1302计时芯片和串行通信

我的FPGA开发板上有一个DS1302芯片,这是Dallas公司生产的计时芯片。它可以记录年、月、日、星期、时、分、秒信息,并且可以在断电时通过后备电源(电池)保持时钟的运行。

所以我打算利用这个芯片的功能做设计一个数字钟电路。首先需要解决的问题是和该芯片的通信。DS1302采用串行端口进行通信,因此我需要研究进行串口通信的方法。

研究DS1302的通信时序图,

看似简单的时序图其实包含了大量的信息,值得仔细地研究。

继续阅读 →

构建Nios II系统

我最近找了一块载有EP4CE6F17C8的FPGA开发板,并试图在上面构建Nios II系统,做着玩玩。

因为没有经验,所以走了很多弯路,记录在这里,供以后查阅。

继续阅读 →

QC2.0协议和9V直充

我的手机使用QC2.0快速充电协议,能以9V 1.67A (15W)的速度充电。有意思的是,手机内部有一块电压为3.85V、电量为2550mAh的锂离子电池。这样一来,充电电流将达到将近4A (1.5C),很大。

QC2.0协议使得充电器在先输出5V电压——以免损坏普通设备——的情况下,与被充电的设备通信,识别成功以后充电器将输出更高的电压,如我的手机使用的9V。

网络上有人问到,如果直接接入9V电压,将会是什么情况。我做了一个试验,我的手机可以充电,电流约为1.2A。当电压超过9V以后,输入被切断,充电停止。我用另一个不支持快速充电的手机试验,电流为零。

对于支持9V电压输入的手机而言,可以想象它的元件耐压必然是达到9V的,所以能够充电,并不特别出乎意料。有些意外的是,两个手机都对输入电压过高做了保护。输入电压异常,这看起来是充电器的责任。有些手机充着充着电就爆炸了,除了充电器和电池的质量可疑以外,不知道是不是保护电路也做得不完善。

这个试验给我的另一个启发是,其实我并不需要QC2.0升压板,就可以用调压电源直接给我的手机充电,只不过在连接其他USB设备之前,务必将电压调回标准的5V。升压板在没有调压电源,例如使用电池供电时,才有用处。

继续阅读 →

诚实人和说谎者

今天我收到这样一则问题:n人中有诚实人和说谎者。诚实人永远说真话,而说谎者既可能说真话也可能说假话。有一种提问方式可以在不知道对方身份的情况下获得一些信息,那就是找两个人提问,问的内容是“对方是诚实人还是说谎者?”如果双方的回答都是“对方是诚实人”,那么真实的情况或者是双方都是诚实人,或者都是说谎者。如果得到其他的回答,那么只能确定至少有一人是说谎者。

为了进一步确定被调查者的身份,引入“高尚组”的定义:如果超过半数的人是诚实人,则称这一组人为“高尚组”。现在希望利用上述提问方式,做⌊n/2⌋次提问,并根据所获得的信息,找出一个新的“高尚组”,且人数不超过⌈n/2⌉。

继续阅读 →

Windows Script Host技巧二则

Windows Script Host (WSH)是Windows 98推出的脚本工具,至今已有18年历史,应该属于被淘汰的技术之一。尽管如此,微软的MSDNTechNet上仍维护者相关的文档。

相对于批处理这个更加古老的技术,WSH的优点是它使用VBScript或者JScript语言,语法更加接近通用的程序设计语言,因此更适合处理复杂问题。(参考perl和sh脚本之间的区别。)另一个优点是它可以直接利用所有现成的COM对象,操纵各种应用程序;不过COM也是一个有着20多年历史的老古董技术了。

本文介绍WSH的两个使用功能。其中的代码均为JScript,将代码保存为.js文件,则运行脚本和运行一般的程序没有区别。

继续阅读 →

自制直流电源(续)

最近备齐了一些组件,开始尝试把他们组装起来,做成一个可调的直流电源。

首先,供电部分暂时采用笔记本附带的电源适配器,参数为20V 3.25A。输出接口是联想专用的方口,其格式为外负内正中信号,母座如下图所示。

使用方口母座引出直流电源的正负极,将它接到直流调压板上,其结构如下图所示。

直流调压版使用LTC 3780芯片进行自动升降压,相关参数为

  • 输入电压Vi:5-32V.
  • 输出电压Vo:1-30V.
  • 输出电流:8A (10A MAX).
  • 输出功率:80W (130W MAX).
  • 纹波:50mV (12V - 12V 5A).
继续阅读 →

点亮铅笔芯

铅笔芯中含有导电物质石墨,在两端加电压则有电流通过,电流足够大时,铅笔芯将发热发光。

继续阅读 →