Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 4419|回復: 5
打印 上一主題 下一主題

[問題求助] ADC0804VHDL程式問題..

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-1-26 19:23:48 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位大大好~
. j. P2 z* F  `. U# ^1 {我要用ADC0804抓一個0~5V 電壓~
' [) s. Y* M$ D; q0 Y% t3 {+ F. V. b下面是唐佩忠那本書裡面的ADC0804的VHDL程式碼~; g& s; C& p! r9 w' m7 E
他只有對0804的WR跟RD做控制~~! q( w" p' D( z! ~) s0 t+ e' c: d+ t
那CS 跟INTR都不用做控制嗎?/ t' @+ D, ~4 u7 @

7 z" r! j  C) o8 A不知道有沒有大大~有用過FPGA來控過ADC0804的嗎?; k; c3 v) s' j3 A" w# N: A
希望可以向你請叫問題~6 m1 m6 x6 b4 d9 [& z1 |
非常感謝~~) F% Y4 [  D9 V- `& y! z/ P4 C

# m) p8 l% @$ y
: @" V5 O4 N7 |9 f0 d8 @Library IEEE;
* X3 }; S  ]0 s1 Y; g+ qUSE IEEE.std_logic_1164.ALL;
" a# M) y+ B, dUSE IEEE.std_logic_arith.ALL;
/ _# y/ U" m+ X  O/ SUSE IEEE.std_logic_unsigned.ALL;) t+ u5 n7 e; e  ]2 I. H. J
ENTITY ADC0804 IS( l; z& g) h6 Q4 b6 N. h
PORT/ a  a- s2 b% r2 |2 ]! K
(
9 F7 E, \& h5 x3 q  AOP    : OUT     STD_LOGIC_VECTOR(7 DOWNTO 0);. U; }8 p: w8 ~6 ?
  AIN    : IN     STD_LOGIC_VECTOR(7 DOWNTO 0);5 z1 O$ }5 Y+ g
  WR    : OUT     STD_LOGIC;
" O6 ?5 P/ l% a" y$ B# T  RD        : OUT     STD_LOGIC;
  C4 _6 p9 T( Y2 ]* p  CLK       : IN      STD_LOGIC;8 }$ X/ `+ Y9 i8 U  Q6 C5 a% j; T  j
  FERQ      : IN      STD_LOGIC
$ W! ^$ k% Q2 u) Q8 ~: w5 ? );* _9 U" I0 ~* Z1 w, K
END ADC0804;) V1 s# G8 ]+ w+ P) U4 y" q
ARCHITECTURE a OF ADC0804 IS
/ D0 f: o$ u# NSIGNAL D0,D1,D2,D3 : STD_LOGIC;2 p0 U) E( \1 Q1 v3 [* Y
BEGIN: a& S8 b/ g4 y1 V5 |5 v1 E# d
--*********************************************************************# U: B5 s7 _4 z( S
time_sequence : block
1 k* A8 o8 z0 B  K0 c: _4 ABEGIN
( s  `1 s3 }- E: g     process(CLK)2 W3 W$ B3 J/ K- z4 n' F* Z
     begin3 l4 V# u2 _6 J" Y2 {
          if CLK'event and CLK='1' then
( v' U5 k* a; Y6 _9 ~. z; M# K             D3<=D2;
( Z6 R  q/ P2 N9 N8 e8 u2 u             D2<=D1;3 g& v5 ?* B* T6 }) \
             D1<=D0;
3 b7 b: _1 }7 _+ J; u; g& E. f             D0<=FERQ;: b" U! Y4 ?0 o$ y
          END if;
. I5 j/ E! v3 v# J+ h! d2 u" z  M     end process;
- e0 ^/ h; f& B$ y3 F7 x/ l          RD <= not (FERQ or D0 or D1);
# w& F6 @5 z7 F  S) l          WR <= not D3;
8 C+ B5 Q0 Z1 g# k2 L/ Dend block time_sequence;/ Q4 z4 T- ^, ?* o; b: O
--*********************************************************************5 A0 L( j5 G" e: I
ADC_FETCH : block( J! V5 b. W+ M8 ~* a* R1 {7 ~
     SIGNAL EC : STD_LOGIC;
) w8 G7 k( z+ _% o& Qbegin/ R) E9 g& X5 P9 E- i  `
     process(CLK)* o, U  U% q; {3 g; Z) s
     begin0 h3 i# n: q9 j3 L
          if CLK'event and CLK='1' then7 ~  K, h9 C2 [
               if EC='1' then) P; c+ M6 `" w8 |" }1 p" C
                   AOP <= AIN;% f% O7 j2 W+ S" m% Q$ z1 d$ g
               end if;
# c& j3 ^3 Y. ?  |( w6 o          end if;
: I$ ^. J% o7 t# X" P4 Q     end process;
- H. r4 ?8 _( D1 D  s     EC <= D1;2 {$ [3 L) j8 K' {- m! c
end block ADC_FETCH;
, i3 C% v1 M+ v, q: L3 O3 x! cEND a;
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-1-26 22:06:17 | 只看該作者
CS可以直接接地,
) b; z9 o5 N: Z) rINTR是判斷a->d是否轉換完成,
$ K& `+ ^" h! a4 U: A# \如果只是偶爾讀一下0804的值,
! k: R9 @1 g1 ]0 ~' ?; f0 I你也不用去判斷INTR.
$ g% y# ]# o  r0 G* S$ [; s1 @) \
, Y$ }  t9 W0 ^/ z" Q9 Z) p) C不過還是建議按照0804的spec來read or write吧
3#
發表於 2008-1-27 10:40:01 | 只看該作者
您好# j- K, b, `1 d; V2 d' ]  {2 e9 g
ADC0804的操作,也可以不用判斷INTR的方式
% ^* X! o( e6 ~7 h7 ]3 h基本上ADC0804的轉換需要一段時間5 r1 J) y" M. y" G7 d: d
只要讀取時大於這段轉換時間即可1 t' _: a: b$ `& H+ v: ~/ I
而你書本上的範例就是用這方式
4#
發表於 2008-1-28 10:40:48 | 只看該作者

read ADC0804

基本上ADC0804之,讀取分兩方式
/ ~* X7 f7 g, _# x1, Polling 方式 如addn & kolong 所言, but  hw or sw need handle timer 來判斷 conversion time 完成否,
0 P# t, _' P. ?3 P% {3 g1 ^2. interrupt 方式, ADC0804 用INTR自己來告知 data valid, conversion time已完成 !
5#
發表於 2008-1-28 13:31:53 | 只看該作者
拍拍手...' f, C  M' b- T
. f9 K# n- S; `/ e, P
以上的都是標準答案4 n$ k# ^4 i) `5 l1 f

) w5 i7 P: L/ pTWIN給個感謝吧
( ^7 b; S( c6 ~( w: C  D( `; G3 r& J+ m, Z, N
另外有大大願意整理更詳細的資料嗎? 我想可以的話收到精華區去, 賞10RDB如何?
6#
發表於 2008-8-8 13:01:52 | 只看該作者
大大你好~小弟我想請問一下
. |6 P$ V* l  e1 k% Z$ t- Y: WFERQ      : IN      STD_LOGIC
- N- u  `$ a) Y, w. A* c; b它設定輸入是什麼??
2 h% d; e) n* T0 D. B我不太懂~謝謝
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2024-9-28 07:22 AM , Processed in 0.169010 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表