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

Atmega8 zmiana fusebit a TWI

28aug240 17 Maj 2009 11:00 1806 8
REKLAMA
  • #1 6539942
    28aug240
    Poziom 14  
    Witam

    Siedzę nad tym już jakiś czas....

    Gdy ustawiam fuse bity na rezonator wew. od 1-8Mhz wszystko działa jak trzeba, procek startuje odczytuje TWI bez błędów, nie zawiesza się.
    Natomiast, gdy zmienię ustawienia i odpalę go na zew. Kwarcu, 8Mhz - procek startuje, ale zawiesza się po 1-2 odczytach, odczytuje bzdury.

    Kombinowałem już z TWBR TWSR aktualnie ustawione mam na 100khz
    na wewnętrznym rezonatorze 8Mhz TWI działa poprawnie.

    Czy może ktoś się już spotkał z takim przypadkiem? (Czego nie wiem?)

    Pozdrawiam Michał.
  • REKLAMA
  • #2 6539947
    dawid512
    Poziom 32  
    Pokaż jak ustawiasz fuse bity. Popróbuj także z różnymi opóźnieniami po resecie.
  • REKLAMA
  • #3 6539968
    28aug240
    Poziom 14  
    CKSEL 1111; 1110; 1101; 1100; 1011
    jeśli chodzi o opóźnienie startu to SUT ustawiałem 4 i 64ms nic nie dało
  • REKLAMA
  • #4 6540108
    _Robak_
    Poziom 33  
    Jestes pewny ze masz taki kwarc jaki myslisz ;) Dla pewnosci pomigaj dioda na delayu :) Sprobuj ustawic bit CKOPT, z 1 na 0, chociaz przy 8MHz nie jest to konieczne. Masz kondensatory przy kwarcu? Ostatnio modnie jest nie dawac, wiec moze to to ;)
  • #5 6540151
    28aug240
    Poziom 14  
    Zrobiłem tak:
    Do pętli głównej dodałem :
    		_delay_ms(1000);
    		PORTD |= _BV(7);
    		_delay_ms(1000);
    		PORTD &= ~_BV(7);

    I teraz widzę że układ raz odczyta (bzdurę) z I2C i na tym odczyt się kończy…. ALE dioda w ciąż miga co sekundę… Po każdym resecie odczytuje nową wartość (bzdurę)
  • REKLAMA
  • #6 6540166
    _Robak_
    Poziom 33  
    Ustaw jeszcze bit CKOPT (daj na 0).
  • #7 6540207
    28aug240
    Poziom 14  
    _Robak_ napisał:
    Ustaw jeszcze bit CKOPT (daj na 0).


    ustawiłem nic nie dało...

    dodałem jeszcze kondensatory przy odbiorniku i2c 1uF i 100nF i wygląda na to że odczyt się ustabilizował...
    ale nadal mam tylko jeden odczyt po resecie.

    dodałem też opóźnienie przy odczycie ale bez poprawy


    		i2c_start(LM75R);_delay_ms(1);
    		temperatura1=i2c_readAck();_delay_ms(1);
    		temperatura2=i2c_readNak();_delay_ms(1);
    		i2c_stop();
  • #8 6540680
    _Robak_
    Poziom 33  
    Pokaz schemat, byc moze jest tak ze kwarc sieje po sygnale i dlatego nie dziala.
  • #9 6540899
    28aug240
    Poziom 14  
    żeby nie było że kogoś reklamuje :!:

    ZL2AVR
    (nie zapominam o podciągach 4,7k przy I2C)

    ten sam problem na:
    ZL3AVR

    a to termometr który podłączam LM75
REKLAMA