Thông báo

Collapse
No announcement yet.

Hỏi về AVR giao tiếp với ADC0809 ?

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Hỏi về AVR giao tiếp với ADC0809 ?

    Chào các bác !

    Em mới học về AVR , và đang tâp giao tiếp AVr với ADC0809 , em viết song 1 đoạn code bắng ASM để chạy thử , code này được debug = avrstudio rùi , không thấy báo lỗi , tuy nhiên khi dùng chương trình proteus để mô phỏng thì nó báo lỗi



    em cũng chưa rõ về lỗi này lắm ( hiện tại , em đang dùng proteus bản 7.1 service 4 )
    sơ đồ mạch em mắc như hình , đây chỉ là mạch thử thui ...







    Em dùng AVR , timer2 , chế độ CTC để tạo xung , tần số khoảng 640 Khz ( thực ra là 691 khz ) , sau đó cung cấp cho ADC0809 như hình , có được không ạ ...Hơn nữa , nếu dùng AVR để tạo xung câp cho ADC có tốt hơn so với dùng mạch tao xung rùi cấp cho ADC không ạ ?em thấy xung do AVr cấp hình như không ổn lắm , tức là xung bị biến dạng rất nhiều ...
    Xung và các tín hiệu điều chỉnh ADC0809 , em đã kiểm tra thấy đều đúng , nhưng khi mô phỏng toàn hệ thống thì vãn bị báo lỗi , đây là code của chương trình

    Code:
    .DEVICE ATmega32
    .NOLIST
    .INCLUDE "m32def.inc"
    .LIST
    .ORG 0
    
     jmp RESET ; Reset Handler
     
    
    RESET:
    ldi r16,high(RAMEND) ; Main program start
    out SPH,r16 ; Set Stack Pointer to top of RAM
    ldi r16,low(RAMEND)
    out SPL,r16
    Sei ; Enable interrupts
    ; *************************************************************
    ; *************************************************************
    
    
    
    AGAIN:
    
    RCALL TAO_XUNG_ADC			; GOI HAM TAO XUNG
    NOP
    
    ; KHONG CHO PHEP NGO RA , CHAN OE = 0
    SBI DDRD,2				; THIET LAP LAM CONG RA								
    CBI PORTD,2				; PD2 = 0
    
    ; CHON KENH DAU VAO CUA ADC0809
    ; CHON KENH 0 , INT 0
    ; A=0 , B= 0, C= 0
    ; C= 0
    SBI DDRC,2
    CBI PORTC,2
    ; B= 0
    SBI DDRC,1
    CBI PORTC,1
    ; A=0
    SBI DDRC,0
    CBI PORTC,0
    ; TAO XUNG ALE VA START
    ; XUNG NAY CO DP DAI KHOANG 100NS DEN 200NS
    SBI DDRD,0				; THIET LAP LAM DAU RA
    
    CBI PORTD,0				; PD0 = 0		
    				
    SBI PORTD,0				; PD0 = 1
    NOP					; TRE 90NS
    NOP					; TRE 90NS
    
    CBI PORTD,0				; PD0 = 0
    NOP
    ; CHO KHOANG 150 US DE CHUYEN DOI SONG
    RCALL DELAY150_US
    
    ; KET THUCH CHUYEN DOI
    ; CHO PHEP NGO RA , CHAN OE = 1 , OE NOI VOI PD2
    SBI DDRD,2
    SBI PORTD,2				; OE =1
    
    ; TAO TRE
    RCALL DELAY150_US
    
    ;DOI LED SANG
    ; BIT 1 LED TAT , BIT 0 LED SANG
    nop
    nop
    nop
    nop
    nop
    
    NOP
    NOP
    NOP
    NOP
    NOP
    
    RJMP AGAIN
    
    ; *************************************************************
    ; ham tao XUNG DIEU KHIEN ADC0809
    ; MUC DICH CUA HAM LA TAO XUNG TAN SO KHOANG 640KHZ
    ; SAU DO GUI TU AVR TOI ADC0809
    TAO_XUNG_ADC:
    ; BAT DAU CHUONG TRINH
    ; CAT THANH GHI
    PUSH R16
    ; bat dau
    
    LDI R16,0B00000111			; R16 = 7
    OUT OCR2,R16				; OCR2 = 7
    					; KHOI TAO GIA TRI SO SANH
    					; LA BANG 7
    CLR R16					; XOA R16
    OUT TCCR2,R16				; CAU HINH CHO THANH GHI 
    					; DIEU KHIEN TIMER/COUNTER2
    					; KHONG CHO PHEP HOAT DONG
    					; MUC DICH LA DE NHUNG 
    					; LAN HOAT DONG SAU
    					; TRUOC KHI SO SANH THI BO 
    					; DINH THOI LUON O TRANG THAI 
    					; BAN DAU
    LDI R16,0B00011001			; CHON CHE DO SO SANH
    					; CTC , SO SANH TUONG UNG
    					; CHON THANG CHIA 1 , N = 1
    					; CHON CHE DO DAO
    					; TUC LA BAN DAU LA 0 
    					; KET THUC CUNG  LA XUNG 0
    					; TAO XUNG F = 691,2 KHZ
    OUT TCCR2,R16				; CAU HINH CHO THANH GHI 
    					; DIEU KHIEN TIMER/COUNTER2
    					; BAT DAU HOAT DONG BO DINH THOI
    ; XUNG DUOC PHAT RA TU CHAN OC2
    ; TRUYEN TOI ADC0809
    SBI DDRD,7
    LDI R16,0B11011111			; THIET LAP CAC BIT 0 VA 1
    OUT DDRD, R16				; THIET LAP CAC CHAN CUA PORTD
    					; LAM LOI RA , RIENG CHAN
    					; PD5 LAM LOI VAO
    ; DIEU KHIEN ADC0809
    ; KHONG CHO PHEP NGO RA, OE = 0
    CBI PORTD,6				; PD6 = 0
    
    ; PHUC HOI CAC THANH GHI 
    POP R16
    ; KET THUC HAM TAO XUNG
    RET
    
    ; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    
    ; *************************************************************
    
    ; HAM TAO TRE 150 US
    ; THUC CHAT TRE 145 US
    ; MUC DICH CUA HAM NAY LA TAO TRE
    ; HAM NAY DUOC TRUY CAP DEN DE THUC HIEN 
    ; TRE TRRONG CAC HAM YEU CAU CO DO TRE
    ; LON HON NHU HAM TRE 100 MS
    ; THUC HIEN HAM NAY TA DUNG VONG LAP
    ; DUNG CAC THANH GHI R16,R17
    ; SO VONG LAP KHOANG 110
    ; DUNG LENH DON NOP
    ; CO KHOANG 11 LENH NOP , 1 LENH 1 CHU KY MAY
    ; TRE 90,42 NS 
    DELAY150_US:
    ; BAT DAU CHUONG TRINH
    ; CAT CAC THANH GHI
    PUSH R16
    PUSH R17
    
    ; BAT DAU VONG LAP
    LDI R17,7				; R17 =7
    HERE_150_US_1 :
    LDI R16,15				; R16 = 15
    HERE_150_US_2 :
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    DEC R16					; R16 = R16 -1
    CPI R16,0				; R16 = 0 ?
    BRNE HERE_150_US_2			; R16 KHAC 0 
    					; LAP LAI
    					; R16 =0 , TIEP TUC
    DEC R17					; R17 = R17 -1
    CPI R17,0				; R17 = 0 ?
    BRNE HERE_150_US_1			;
    					; R17 KHAC KHONG 
    					; LAP LAI
    					; R17 = 0 ---> TIEP TUC
    ; PHUC HOI CAC THANH GHI
    POP R17
    POP R16
    
    NOP
    NOP
    NOP
    NOP
    NOP
    ; KET THUC HAM TAO TRE 150 MS
    RET
    
    ; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    Rất mong các bác chỉ giùm em vấn đề này với
    Chấn thành cám on các bác
    Last edited by schanbkhn; 05-10-2007, 18:08.

  • #2
    bạn xem lại con U1 đi, có thể là U1 ko có chức năng simulation mà chỉ có schematic thôi,
    Đăng ký Dropbox có ngay 2GB lưu trữ online miễn phí:

    Comment


    • #3
      bạn nên chọn con 0808 mới mô phỏng được,mà tại sao ngõ ra 8 bit phải có điện trở nối lên nguồn,ngõ ra cực thu hở hay sao vậy?mình cũng đang làm con này và cũng gặp nhiều lúng túng.

      Comment


      • #4
        mình mới chỉ làm việc với con ADC0809 không thôi, mình cũng đang có ý dịnh làm việc con ADC0809 với VDK cho nó tường tận hơn. Đúng là con ADC0809 ko có thư viện mô phỏng trong Proteus thế nên bạn thay nó bằng con ADC0808, 2 con này như nhau thôi. Nó chỉ khác nhau chủ yếu ở cái độ lệch sai số thôi. Theo mình đọc trong Datasheet thì thấy con 0808 còn sai số ít hơn cả 0809. Ấy thế mà mình cũng chưa hiểu tại sao thầy giáo lại cho bọn mình làm đề môn thiết kế với con 0809.
        Khi nào bạn hoàn thành thì share cho mình xem với nha. Mail của mình là hungdv00@gmail.com.
        Cảm ơn bạn trước nha!

        Comment


        • #5
          Mấy sư huynh ơi giúp đệ Với đệ đang thiết kế Chế tạo bộ biến đổi A/D 8bit trên vi mạch ADC0809 :
          Tín hiệu vào Dao Động tần số 1KHZ biên độ la 0,2v
          +lối ra chốt trên thanh ghi 8 bit các sư huyng đi trứơc chỉ bảo Đệ với các huynh nào có tài liêu cho em xin it em bát đầu bước vào Linh vực này mong các huynh chi bảo cho em

          Comment


          • #6
            theo mình Thực ra ADC 0809 và 0804 ko có gì là khác biệt về tính năng cả, điều khác biệt lớn nhất của chúng là ADC0809 có 8 kênh đầu vào cho bạn chọn ( nghĩa là bạn có thể nối tới 8 đầu vào tương tự vào, chọn để đo 1 đâu bất kỳ trong 8 dvao đó) trong khi ở 0804 chỉ có duy nhất 1 dvao.
            Do vậy mình nghĩ nếu bạn chỉ đo 1 điểm đo thì chỉ cần dùng 0804 thui, con này dùng mạch dao dộng RC, sử dụng dễ hơn 0809,ko cẫn fair cấp xung cho như 0809. Bạn định dùng VDK gì để giao tiếp với 0804 đây, fai nói cụ thể ra thì mình mới giúp đc chứ

            Comment


            • #7
              cho em hỏi, câu "lối ra chốt trên thanh ghi 8 bit" có nghĩa là gì thế? (em cũng đang làm về 0808 nhưng đọc đến câu trên thì ko hiểu yêu cầu j) em cảm ơn nhiều

              Comment


              • #8
                Bàn riêng về ADC0809 hay 0808 có vẻ hơi sai mục đích của diễn đàn AVR nhưng nói cho rõ để a e dùng AVR điều khiển nó chắc cac MOD sẽ ko khó tính lắm

                "lối ra chốt trên thanh ghi 8 bit" có nghĩa là gì thế?
                Ngõ ra của hai con này ở dạng 3 trạng thái (1-0-high impedance)(tri-state output latch buffer), nó có một chân điều khiển cho phép xuất hay ko xuất tín hiệu kết quả ADC ra ngõ ra (chân OE) .

                Nếu ngõ ra của ADC bạn dùng chung bus với một ngoại vi khác mà ko có chân OE kiềm soát ngõ ra đó sẽ dẫn đến xung đột mức điện áp trên bus dùng chung.

                Với con ADC0809 nếu bạn chỉ dùng riêng nó một bus thì đưa OE lên Vcc, còn dùng chung bus thì phải đưa OE về một chân của VDK để VDK điều khiển khi nào thì cho phép xuất tín hiệu ở ngõ ra ADC.
                Last edited by apple; 18-10-2008, 10:15.
                Mấy ai định nghĩa được tình yêu.
                Có gì đâu một buổi chiều.
                Kề dao lên cổ yêu hay chết .
                Gật đầu cái rụp thế là yêu.

                --------
                Apple

                Comment

                Về tác giả

                Collapse

                schanbkhn Tìm hiểu thêm về schanbkhn

                Bài viết mới nhất

                Collapse

                Đang tải...
                X