logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Problem z atmega8 lub 16 i AD5301 w bascomie

raven363 08 Maj 2009 17:47 2508 9
REKLAMA
  • #1 6506405
    raven363
    Poziom 14  
    Witam. Mam problem ze sterowaniem przetwornika cyfrowo analogowego(AD5301) pracujacym na magistrali i2c procesora atmega8 (atmega 16 także bo i na nim próbowałem). Posługuje się językiem bascom. Układ przetwornika komunikuje się z procesorem bo można odczytać jego adres (&H18). Problem polega na tym, że przetwornik nie reaguje na polecenia programu, (próbowałem i2csend a także i2cwbyte w odpowiedniej składni). Moze ktoś miał do czynienia z tym problemem i będzie w stanie mi pomóc; dzięki z góry.
  • REKLAMA
  • Pomocny post
    #2 6506678
    aleexander
    Poziom 15  
    Witam,
    przedstaw kod jakim się posługujesz do komunikacji z przetwornikiem oraz schemat układu, będzie łatwiej zlokalizować problem.

    Pozdrawiam, aleexander
  • #3 6507368
    raven363
    Poziom 14  
    urywek kodu

    config scl = portc.5
    config sda = portc.4
    i2cinit
    i2cstart
    i2cwbyte &H18
    i2cwbyte 128 'wysyłana wartośc na przetwornik powinna

    'spowodować że Uwy będzie ok 2,5V przy Ucc = 5V
    i2cstop


    i schemacik ( oczywiście do szyn scl i sda są podzłączone rezystory 3kOhm podciągające do Vcc, na schemaci ich nie ma bo zapomniałem dorzucić)

    Problem z atmega8 lub 16 i AD5301 w bascomie
  • REKLAMA
  • #4 6508678
    gothye
    Poziom 33  
    Linie SDA i SCL podciagnij rezystorami 4,7k do +5V i zadziała ;)
  • REKLAMA
  • #5 6508856
    janbernat
    Poziom 38  
    Str. 14 i 17 datasheet.
    Musisz wysyłać zmienną word odpowiednio obrobioną do przetwornika.

    Dodano po 6 [minuty]:

    Adres rejestru w AD5301?
    Może 0.Wtedy po:
    i2cwbyte &H18
    i2cwbyte 0
    i2cwbyte "zmienna word"
    i2cstop.
    Można spróbować.
    Ne mam AD5301-nie mogę sprawdzić.

    Dodano po 2 [minuty]:

    Dlaczego zamieniasz końcówki i2c?
    Można tak:
    $lib "i2c_twi.lib"
    'configure the scl and sda pins
    Config Sda = Portc.5
    Config Scl = Portc.4
  • REKLAMA
  • #6 7112759
    romantv
    Poziom 17  
    Witam
    Gdzie kolega nabył ten przetwornik AD5301, jak działa są problemy z nim.

    Ja potrzebuję jakiś przetwornik c/A sterowany po I2C wyj. max 5V a za nim bedzie wzmacniacz operacyjny, który podniesi napiecia liniowo do 10V

    Pozdrawiam.
  • #8 7115195
    jaceq
    Poziom 11  
    witam
    z analog devices można dostać bezpłatne sample i ten przetwornik jest dostępny
  • #9 8794258
    czupryk
    Poziom 1  
    Witam,

    Mam ten sam problem. Czy udało Ci się go rozwiązać ?
    Według mnie 5 pin AD5301 powinien być podłączony do 5v przynajmniej tak wychodzi z Datasheeta.

    Pozdrawiam.
  • #10 8962567
    raven363
    Poziom 14  
    Tak problem rozwiązany już jest dość dawno. Chodziło o to aby do przetwornika za pomocą bascoma wysyła bity danych odpowiednio.
    Najpierw trzeba wysłać adres czyli u mnie:
    i2cwbyte &H18
    A teraz wartość jaką chcemy podać do przetwornika dzielimy na dwie części po 4 bity i przesuwamy je; pierwszą część w prawo o 4 pozycje drugą w lewo o 4; przykład w postaci kodu bascom:


    dilm licz as byte ' zmienna która będzie wyprowadzana magistralą I2C
    Bg = Licz 'bity górne
    Shift Bg , Right , 4 'przesunięcie w prawo
    Bd = Licz 'bity dolne
    Shift Bd , Left , 4 'przesunięcie w lewo

    I2cstart
    I2cwbyte 24 'adres przetwornika
    I2cwbyte Bg
    I2cwbyte Bd
    I2cstop
    Loop


    Program działa na 100%
    Trzeba było po prostu wczytać się w notę katalogową - tam wszystko jest dokładnie opisane.

    Pozdrawiam i mam nadzieje że pomoże...
REKLAMA