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

[atmega8][pcf8583] komunikacja i2c - sda scl

angelofdarknes 24 Lut 2010 19:03 4303 7
  • #1 7744997
    angelofdarknes
    Poziom 10  
    Witam. Zbudowałem zegarek na atmega8 i pcf8583. Do komunikacji wykorzystałem portc.1 i portc.0 ale gdy pokazałem go nauczycielowi to odesłał mnie i kazał zrobić komunikacje na pinach przystosowanych do i2c czyli sda(pc.4) i scl (pc.5)tak abym nie wykorzystywał:
    
    Config Sda = Portc.0 
    Config Scl = Portc.1
    

    Jak zainicjować taką transmisje?
  • #2 7745200
    polprzewodnikowy
    Poziom 26  
    Tak samo jak na pinach PC.0 i PC.1.
  • #4 7745614
    angelofdarknes
    Poziom 10  
    Tak miałem na początku. Teraz musze zrobić tak żeby w programie nie było:
    
    Config Sda
    Config Scl
    

    Troche to bez sensu ale dostałem takie zadanie.
  • #5 7745685
    grysek
    Poziom 19  
    No wcale nie takie bez sensu, poprostu chodzi o to żeby wykorzystać sprzętowy układ do obsługi I2C (datasheet od strony 163), którego piny to właśnie PC4 i PC5 a teraz masz wykorzystaną transmisję programową.

    Możesz "pogrzebać troche w rejestrach" i napisac odbiór itd samemu a możesz tez zostawić tak jak masz program a na początku programu dodać $lib "I2C_TWI.LBX" i wtedy program bedzie korzytał ze sprzętowego interfejsu. Więcej znajdziesz w helpie do BASCOMa.
  • #6 7746659
    angelofdarknes
    Poziom 10  
    Czyli zwyczajnie dorzuce $lib "I2C_TWI.LBX", wykasuje Configi i będzie działać?
  • #7 7748838
    grysek
    Poziom 19  
    Zbigniew Gibek, MCS Electronics napisał:
    Biblioteka I2C_TWI.LIB to biblioteka kompilatora zawierająca kod dla podstawowych instrukcji skojarzonych z obsługą magistrali I2C, wprowadzająca możliwość używania w tym celu zasobów sprzętowych niektórych mikrokontrolerów z rodziny AVR.

    Domyślnie BASCOM używa procedur programowych gdy w programie znajdują się instrukcje dotyczące magistrali I2C. Było to spowodowane faktem, iż pierwsze konstrukcje procesorów nie posiadały jeszcze zaimplementowanego sprzętowego modułu TWI. Swoją drogą pozwalało to na wykorzystanie I2C we wszystkich procesorach z rodziny AVR.

    Jak już wspomniano niektóre z procesorów AVR posiadają sprzętowy układ nadajnika i odbiornika I2C. Firma Atmel nazwała to rozwiązanie TWI – Two Wire Interface, gdyż jest ono nie tylko zgodne z dyrektywami firmy Philips (pomysłodawca I2C) ale wprowadza także pewne daleko idące ulepszenia.


    By nakazać kompilatorowi używanie magistrali TWI, należy umieścić w programie następująca dyrektywę:

    $lib "I2C_TWI.LBX"

    oraz za pomocą instrukcji CONFIG SCL oraz CONFIG SDA wybrać właściwe (zgodne ze specyfikacją danego układu!) numery końcówek pełniących rolę magistrali.

    Należy także za pomocą instrukcji CONFIG TWI określić częstotliwość pracy tego układu tak by zegar na linii SCL odpowiadał przyjętym standardom lub wymogom podłączonych układów.


    Tak więc bez configów się w BASCOMie chyba nie obejdzie. Ale możesz spróbować bez :P.
    Czytać, szukać, próbować..
  • #8 7748978
    Konto nie istnieje
    Poziom 1  
REKLAMA