这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » anmko的进程贴:综合实验-基于DS1302的万年历LCD1602显示(最终版

共76条 2/8 1 2 3 4 5 6 ›| 跳转至
高工
2012-09-26 09:29:45     打赏
11楼
3、在焊接中的各种问题

    核心板上的两个电源芯片要注意了:1是3.3V的;2是1.2V的。
    底板上有三个器件线别焊接,2个电位器、18B20封装有点小问题,。晶振只提供了一个,焊接哪个都能使。

1、刀型烙铁头,温度一般360左右吧
2、焊接FPGA的时候注意下芯片的引脚是不是有歪的,歪的板直了。
3、焊接贴片元器件的时候最好能在引脚上沾点助焊剂,这样焊锡流动性好,焊接出来的效果饱满光滑。
4、如果在焊接的过程中芯片的两个或者多个引脚焊接到一块了,不要着急,烙铁斜举(烙铁头高一些),接触引脚,焊锡一般会从烙铁头上斜着流下的,当然这办法也不是万能的,只适应焊锡堆多的时候;焊锡少的话有时要到那种专门用来吸焊锡的铜鉔,没有的话,用那种铜丝芯的塑料线,剥掉塑料外壳,一样好使。
6、焊接的先后顺序,一般是先电源后其他的,先封装小的后大的,先主要的后次要的。在焊完电源部分之后最好上电试试,确定电源没问题之后再进行下一步。
7、通电前一定要确定芯片是否焊接正确(确保不会烧你芯片),然后测量电源部分输入是否短路(避免你烧电源)。
8、检查虚焊,用镊子在芯片的引脚上刮了一遍,但是力度要适中,轻了检查不出来,重了伤引脚,刮完之后一定要检查引脚在上电。
9、焊完板子之后,大家有没有发现遗留在板子上的助焊剂和松香很讨厌啊,有两种方法解决这问题。其一:是把板子侵泡在酒精中,用刷子清洗,然后吹干,用过的酒精可以回收,等下次再用;其二:用酒精棉球擦拭,马上用绸子(其他布料效果没这么好)把它擦干,不要等它风干,风干会在板子上留下印记,(相当于你只是稀释一下)。


1)电位器的问题

如上图所示,图1是常见的封装(1、2、3),咱们的电位器基本上是这个封装;但是底板上的封装是由AD库提供的,如图2所示,1脚在中间;所以我们就得割线、飞线,把1脚,2脚的接线交换一下就成了;舍不得割线的话,也没事,反正不会对板子的安全造成什么影响。

2)温度传感器18B20的封装问题

这个是18B20的封装

这个底板上的封装图

显然,如果不测量信号就直接对号入座的话,那就只能发热了(我的没烧坏),3.3V的电压会被慢慢的拉低。解决办法是18B20旋转180°焊接上去就行了,电压也正常了。

高工
2012-09-26 11:33:42     打赏
12楼
4、永远的流水灯




视频地址:http://union.bokecc.com/flash/player.swf?vid=54B329C3E3DBDF70&siteid=290666218ACBA694&playerid=EEA982EE6B20F4D1&playertype=1





sof文件下载:(测试板子用吧)
——回复可见内容——

高工
2012-09-26 16:29:05     打赏
13楼

5、按键防抖控制LED
(这个只是个实例,效果不是很好,改进的请进http://forum.eepw.com.cn/thread/221172/15#147

按键S1、S2、S3、S4,控制电平翻转进而控制LED1、LED2、LED3、LED4的亮灭,按键S8为复位键。


module key_debounce(rst_n,clk,keyin,ledout);

 input rst_n;
 input clk;
 input[3:0] keyin;

 output[3:0] ledout;
 
 reg[19:0] cnt;
 
 always @(posedge clk or negedge rst_n)
 begin
  if (!rst_n)
   cnt <= 20'd0;
  else
   cnt <= cnt + 1'b1;
 end
 
 wire sample_pulse = cnt == 20'hF4240;

 
 wire led0_out;
 key0 U1
 (
  .en(sample_pulse),
  .rst_n(rst_n),
  .clk(clk),
  .key(keyin[0]),
  .ledout(led0_out)
 );
 
 wire led1_out;
 key1 U2
 (
  .en(sample_pulse),
  .rst_n(rst_n),
  .clk(clk),
  .key(keyin[1]),
  .ledout(led1_out)
 );
 
 wire led2_out;

 key2 U3
 (
  .en(sample_pulse),
  .rst_n(rst_n),
  .clk(clk),
  .key(keyin[2]),
  .ledout(led2_out)
 );
 
 wire led3_out;
 key3 U4
 (
  .en(sample_pulse),
  .rst_n(rst_n),
  .clk(clk),
  .key(keyin[3]),
  .ledout(led3_out)
 );
 
 assign ledout = {led3_out,led2_out,led1_out,led0_out};

endmodule

//-----------------------key0----------------------- 
module key0(en,rst_n,clk,key,ledout);

 input clk;
 input rst_n;
 input en;
 input key;
 output ledout;

 reg low_sw;
 always @(posedge clk or negedge rst_n)
 begin
  if (!rst_n)
   low_sw <= 1'b1;
  else if(en)
   low_sw <= key;
 end
 
 reg low_sw_r;
 
 always @(posedge clk )
  low_sw_r <= low_sw;
  
 wire led_ctrl = low_sw_r & (!low_sw);
 
 reg ledout_r;
 always @(posedge clk or negedge rst_n)
 begin
  if (!rst_n)
   ledout_r <= 1'b0;
  else if(led_ctrl)
   ledout_r <= ~ledout_r;
 end 

 assign ledout = ledout_r;
 
endmodule

//-----------------------key1----------------------- 
module key1(en,rst_n,clk,key,ledout);

 input clk;
 input rst_n;
 input en;
 input key;
 output ledout;

 reg low_sw;
 always @(posedge clk )
 begin
  if (!rst_n)
   low_sw <= 1'b1;
  else if(en)
   low_sw <= key;
 end
 reg low_sw_r;
 always @(posedge clk )
  low_sw_r <= low_sw;
  
 wire led_ctrl = low_sw_r & (!low_sw);
 
 reg ledout_r;
 
 always @(posedge clk or negedge rst_n)
 begin
  if (!rst_n)
   ledout_r <= 1'b0;
  else if(led_ctrl)
   ledout_r <= ~ledout_r;

 end 

 assign ledout = ledout_r;
 
endmodule

//-----------------------key2----------------------- 
module key2(en,rst_n,clk,key,ledout);

 input clk;
 input rst_n;
 input en;
 input key;
 output ledout;

 reg low_sw;
 always @(posedge clk or negedge rst_n)
 begin
  if (!rst_n)
   low_sw <= 1'b1;
  else if(en)
   low_sw <= key;
 end
 reg low_sw_r;
 always @(posedge clk )
  low_sw_r <= low_sw;
  
 wire led_ctrl = low_sw_r & (!low_sw);
 
 reg ledout_r;
 
 always @(posedge clk or negedge rst_n)
 begin
  if (!rst_n)
   ledout_r <= 1'b0;
  else if(led_ctrl)
   ledout_r <= ~ledout_r;
 end 

 assign ledout = ledout_r;
 
endmodule

//-----------------------key3----------------------- 
module key3(en,rst_n,clk,key,ledout);

 input clk;
 input rst_n;
 input en;
 input key;
 output ledout;

 reg low_sw;
 always @(posedge clk or negedge rst_n)
 begin
  if (!rst_n)
   low_sw <= 1'b1;
  else if(en)
   low_sw <= key;
 end
 reg low_sw_r;
 always @(posedge clk )
  low_sw_r <= low_sw;
  
 wire led_ctrl = low_sw_r & (!low_sw);
 
 reg ledout_r;
 
 always @(posedge clk or negedge rst_n)
 begin
  if (!rst_n)
   ledout_r <= 1'b0;
  else if(led_ctrl)
   ledout_r <= ~ledout_r;
 end 

 assign ledout = ledout_r;
 
endmodule


高工
2012-09-26 16:33:25     打赏
14楼

我也是新手,以后大家多讨论讨论


高工
2012-09-26 20:28:58     打赏
15楼
,下回泡妞的时候下手也得快啦

高工
2012-09-26 22:21:43     打赏
16楼

刚刚看见了,我就给你传


高工
2012-09-26 22:22:56     打赏
17楼
3.3V供电,TTL电平,没问题,这个够用了,何必要用贵的呢

高工
2012-09-26 22:45:40     打赏
18楼

ARM DIY的时候我受你们的刺激了,,所以这次加快了速度


高工
2012-09-26 23:16:14     打赏
19楼
我国庆出去玩,所以得赶一点进度。。

高工
2012-09-27 08:00:23     打赏
20楼
当爹的不容易啊

共76条 2/8 1 2 3 4 5 6 ›| 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]