高效的8051模拟SPI接口程序

2010年1月24日   

      该程序实现了用8051的GPIO模拟SPI接口的功能。通过该程序,用户只需要添加较少的代码就可以实现完整的SPI接口程序。
      下图为模拟的SPI接口时序

     

阅读全文…

Embedded , ,

将Register约束到IOB中

2009年12月20日   

在进行FPGA的设计过程中,处于某些需求的考虑,可能会要求将寄存器限制在IOB中。

这样做会缩短从Register到PAD或从PAD到Register的的距离,减少延迟。在总线接口的设计中,将Register组都约束到IOB中可以减少输出PAD上bit与bit之间的skew,从而使得在接收端进行准确采样变得可能和容易。

考虑如下一个设计:

?View Code VERILOG
module Debug_Pin(rst,clk,data_A,dbg_pin);
input rst,clk;
input [7:0] data_A;
output [7:0] dbg_pin;
reg [7:0] dbg_pin;
 
always @(posedge clk or negedge rst)
begin
      if(!rst)
          dbg_pin <= 8'b0;
      else
          dbg_pin <= data_A;
end

如果希望将dbg_pin约束到IOB中,可以在UCF文件中添加以下约束:

?View Code VERILOG
INST "dbg_pin<*>" IOB = TRUE;

FPGA , ,

DC-DC转换电路原理

2009年11月18日   

      在电路设计中,DC-DC转换电路经常被用来对直流电源进行不同压值的高效转换。如高压到低压,低压到高压的转换。相对于LDO,DC-DC转换电路具有更高的转换效率,但在设计上也要相对复杂些。

      DC-DC转换的基本原理就是利用开关以及电感、电容的储能特性对输入电源进行压值转换。理想的DC-DC转换电路的效率为1,也就是说输入功率等于输出功率。

      Vin * Iin = Vout * Iout

      实际电路不可能把效率做到100%,通常有所损耗,也就是说Pout/Pin小于1,这个值就是转换效率。

      有很多种类型的DC-DC电路,如BUCK型,Boost型,Buck-Boost型,Cuk型以及Charge-Pump型等。这里也将着重介绍前面三种类型。

      如下图即为Buck型DC-DC电路的基本结构:

      Buck

阅读全文…

Circuits

好文推荐

2009年11月18日   

      以下文章均来自于网络,个人觉得不错,特摘录如下:

      1. 晶体振荡电路设计—frm’s blog

         该文章介绍了晶体振荡电路的设计原理,以及电路中几个重要元器件的选择,如电容,电阻等。

      2. 深入剖析电感电流—DC/DC电路中的电感选择—frm’s blog

         该文章主要介绍了DC/DC电路中电感的作用及其参数的选择

      3. 使用MOSFET防止电池反装并提高电池续航寿命—frm’s blog

         该文章介绍了几种电池防反接的电路设计,如二极管,场效应管等。并分别分析了各自对电池寿命的影响。

        

Circuits

[电路集锦]交流供电的LED灯

2009年10月14日   

      从今天起,本blog增加一个新的小专题【电路集锦】。该专题主要由电路图和相关的原理介绍构成,相信长时间累积下来会是一笔不小的财富。

AC Powered LED

阅读全文…

Circuits ,

我的阅兵式

2009年9月30日   

 eTank

      庆祝建国60周年,来自电子工程师的阅兵式。

      哈哈~~~

Life-Melody

USB设备Firmware基本流程分析

2009年9月17日   

      首先声明:这都是我这个菜鸟的一点认识,如果有不准确的地方,请大家多多包涵。
      通常来说USB设备(这里只分析USB设备,而不针对USB HOST,USB OTG和USB HUB)内部都有一片USB的芯片和一个MCU,有些当然有些厂商提供的USB芯片已经集成了MCU在里边,如Cypress的CY68013就是这样的。这里考虑MCU和USB芯片分开的情况吧,集成的也类似,大家可以自己去分析。USB芯片完成USB底层的事物,接收的时候:将接收到的USB串行数据识别出来,解包后存放在内部的缓存中,然后通过中断的方式告知MCU收到数据包了,MCU通过和USB芯片的并行或串行接口读回接收到的数据并进行相应的分析和处理;发送数据的时候,MCU将需要发送的数据通过和USB芯片的接口写入到USB芯片内部的缓存,写入完成后,一般来说USB芯片会在接收到来自HOST的IN令牌包时,将缓存中的数据送到USB总线上去。当发送完成后,通常USB芯片也可以通过中断的方式告知MCU。

阅读全文…

Protocol ,

禁止ISE运行完成后弹出webtalk窗口

2009年9月15日   

      默认设置下,ISE会在运行完成,生成bit文件的时候弹出一个webtalk窗口,一开始还还忍受,后来实在嫌它麻烦,遂关闭之,操作方法如下:

      ISE -> Edit -> Preferences -> WebTalk/ Xilinx update 全关

      这样一来,就不会再有这样的烦人事情了。

FPGA ,