Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Atmega8+USBASP - Młodzież programuje I2C

wolek14 30 Lip 2014 19:33 1278 8
  • #1 30 Lip 2014 19:33
    wolek14
    Poziom 31  

    Nosz....
    Po serii nieszczęść przy pierwszym uruchomieniu zestawu, po długotrwałej batalii pokonałem to draństwo, i ruszyłem do nauki wraz z książką p. Piotra Góreckiego. Wszystko szło mi nadzwyczaj dobrze, do momentu pierwszego starcia z ta nieszczęsną (na razie) magistralą. No za nic nie ruszę żadnego układu.
    Od początku próbowałem zgodnie z ćwiczeniem uruchomić wyjście D/A w kostce PCF8591. Wszystko podpięte wg schematu, wejścia adresowe zwarte do masy, wejście EXT zwarte do masy, na Vref 2,56V, SCK (PORTC.5) na pin 10, SDA (PORTC.4) na pin 9, obie masy do masy a na Vdd +5V. Program:

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    Nie rusza. Ćma. Nie pójdzie. Na początku było ok 1,8V na wyjściu, po dołożeniu komendy I2CINIT zupełne 0V. Myślę, no ok, może padnięty układ....

    ... zamontowałem PCF8574A. Wejścia adresowe do masy, zasilanie i całe reszta pinów zgodne z nota katalogową. Program:
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    (tak wiem, ta pierwsza część jest bez sensu, nie chciało mi się tego pisać za każdym razem, a raczej nie przeszkadza).
    Układ nie działa. Wszystkie wyjścia mają po 5V.

    Podpiąłem wyjście SCK z uC do diody LED - miga dość szybko. Czyli coś tam się dzieje. Nie mam aktualnie oscyloskopu żeby sprawdzić dokładnie, ale 100kHz to raczej nie jest.

    Może mi ktoś podpowiedzieć jak dojść do porozumienia z tym zestawem? Gdzie robię błąd?

    Poprawiłem "wulgaryzmy".

    0 8
  • Pomocny post
    #2 30 Lip 2014 22:04
    tzok
    Moderator Samochody

    Jesteś pewien prawidłowego ustawienia fusebitów i częstotliwości pracy mikrokontrolera? Czy jest zgodna z zadeklarowaną w kompilatorze?

    0
  • #3 31 Lip 2014 04:29
    wolek14
    Poziom 31  

    Cytat:
    częstotliwości pracy mikrokontrolera

    Nie. Procek pracuje na wewnętrznym oscylatorze, ale odmierzanie czasu poleceniami wait i waitms szło mu całkiem przyzwoicie, więc raczej 8MHz jest. Każda próba przestawienia na zewnętrzny oscylator blokowała procesor, i musiałem ratować się generatorem na NE555. Odpuściłem zabawę żeby nie zablokować go na amen.
    Cytat:
    Czy jest zgodna z zadeklarowaną w kompilatorze

    Nie wiem gdzie jest zadeklarowana, używam BascomAVR.
    Cytat:
    ustawienia fusebitów

    Jak wyżej. Nie znam jeszcze dokładnie tego zagadnienia, więc nic nie ustawiałem.

    0
  • Pomocny post
    #4 31 Lip 2014 08:06
    M. S.
    Poziom 34  

    Cytat:
    Nie wiem gdzie jest zadeklarowana, używam BascomAVR.


    W opcjach Bascoma lub w programie przez $crystal = XXXXXXX

    Cytat:
    Jak wyżej. Nie znam jeszcze dokładnie tego zagadnienia, więc nic nie ustawiałem.


    ... a wcześniej napisał, że

    Cytat:
    Każda próba przestawienia na zewnętrzny oscylator blokowała procesor, i musiałem ratować się generatorem na NE555.


    no to w czym grzebał jak nie w fusach?

    Na koniec; rezystory podciągające na liniach SCL i SDA ?

    0
  • Pomocny post
    #5 31 Lip 2014 11:13
    tzok
    Moderator Samochody

    wolek14 napisał:
    Procek pracuje na wewnętrznym oscylatorze, ale odmierzanie czasu poleceniami wait i waitms szło mu całkiem przyzwoicie, więc raczej 8MHz jest.
    ...czy aby ATMega8 nie ma domyślnie ustawionego1MHz???

    wolek14 napisał:
    Nie wiem gdzie jest zadeklarowana, używam BascomAVR.
    Tu:
    Atmega8+USBASP - Młodzież programuje I2C
    ...i tu:
    Atmega8+USBASP - Młodzież programuje I2C

    0
  • #6 31 Lip 2014 13:07
    wolek14
    Poziom 31  

    Cytat:
    no to w czym grzebał jak nie w fusach?

    Odpowiedź dotyczyła reszty ustawień (Brown-Out itp).
    Cytat:
    Na koniec; rezystory podciągające na liniach SCL i SDA są?

    Nie, w oryginalnym projekcie (ZL11AVR, ZL2AVR) również ich nie ma.
    Cytat:
    ...czy aby ATMega8 nie ma domyślnie ustawionego1MHz???

    Pewnie ma, bo pierwszy program nie odliczał czasu tak jak powinien. Wtedy chciałem zmienić ustawienia zegara, i zablokowałem 2 sztuki. Po odblokowaniu ustawiłem dosłownie metodą prób i błędów taką wartość, że odmierzanie czasu działa w miarę ok. Ale pewności co do konkretnej wartości nie mam. Wrócę z pracy to wrzucę screeny jak to wygląda.

    Mi BASCOM ustawił bibliotekę "m8adef" tak nawiasem mówiąc.

    0
  • Pomocny post
    #7 31 Lip 2014 14:29
    M. S.
    Poziom 34  

    Cytat:
    Nie, w oryginalnym projekcie (ZL11AVR, ZL2AVR) również ich nie ma.


    Nie wiem co jest w oryginalnym projekcie ale wiem, że rezystory podciągające są niezbędne.
    W nocie katalogowej też są narysowane na schemacie.

    0
  • Pomocny post
    #8 31 Lip 2014 15:19
    tzok
    Moderator Samochody

    Masz kalkulatory on-line do liczenia fusebitów, masz program mkavrcalculator...

    0
  • #9 31 Lip 2014 18:25
    wolek14
    Poziom 31  

    Panowie, jesteście wielcy, niechaj pieśni o Was śpiewają i legenda się niesie.

    Cytat:
    Masz kalkulatory on-line do liczenia fusebitów, masz program mkavrcalculator...

    Ja dopiero raczkuję w tym temacie, i trochę mnie przeraziły te kalkulatory. Jednak prześledziłem jeszcze raz sprawę taktowania z punktu widzenia BascomAVR, i udało się uruchomić układ na Int 8MHz.
    Cytat:
    Nie wiem co jest w oryginalnym projekcie ale wiem, że rezystory podciągające są niezbędne.
    W nocie katalogowej też są narysowane na schemacie.

    Ciekawe zatem czemu AVT zrobiło taki błąd na dwóch zestawach. W nocie faktycznie są. Zamontowałem 2x10k.

    Po obu poradach układ ruszył od razu. Jeszcze raz bardzo dziękuje za pomoc. Miłego wieczoru życzę :)

    0