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

Atmega88 - Minimalna praca zegara dla 100khz I2C? Oraz redukcja prądu.

modrih 25 Lip 2016 08:11 1167 2
  • #1 25 Lip 2016 08:11
    modrih
    Poziom 20  

    Dzień dobry.

    Używam środowiska Bascom. Chciałbym dowiedzieć się przy jakim najmniejszym taktowaniu zegara systemowego scalaka mogę uzyskać komunikację 100khz dla I2C?

    Ustawiałem atmegę na 1MHz (8MHz wewnętrzny i dzielnik na 8), ale to było za mało by I2C działało mi na częstotliwości 100khz. Były błędy w komunikacji, albo tez Bascom się buntował. Przy 8 MHz wszystko mi działa. Ale chciałbym pobawić się z redukcją pobieranego prądu (zasilanie bateryjne).

    Więc z tej okazji pytanie bonus. Posiadam Atmegę 88PU-PA, Pico Power, która dla trybu aktywności dla 1MHz powinna pobierać 0,2mA, a u mnie pobiera ok. 9-11mA w spoczynku - nic nie po podłączane (prócz oczywiście zasilania prawidłowo używając kondensatorów filtrujących). Zasilanie około 3V, użyłem komendy "stop Ac" oczywiście, ADC mi nie potrzebne. W trybie powerdown pobiera wzorowo baardzo mało 1 - 2 µA i ładnie mi się wybudza.

    Jakieś podpowiedzi odnośnie redukcji prądu?

    0 2
  • Arrow Multisolution Day
  • #2 25 Lip 2016 09:03
    tronics
    Poziom 36  

    Z tego co pamiętam zegar taktujący MCU musi być minimum 16x sygnału zegarowego I2C - jest tak z pewnością dla trybu Slave, ale podejrzewam, że Master będzie podobnie.

    0
  • Arrow Multisolution Day
  • #3 25 Lip 2016 12:31
    Andrzej__S
    Poziom 28  

    modrih napisał:
    Ustawiałem atmegę na 1MHz (8MHz wewnętrzny i dzielnik na 8), ale to było za mało by I2C działało mi na częstotliwości 100khz.

    Pytanie, czy potrzebujesz takiej szybkości. 100kHz to prędkość graniczna. Jeśli to typowy interfejs I2C (a nie np. pokrewny SMBus), to nie ma ograniczenia w dół. Powinno działać też prawidłowo np. przy 1kHz. Chyba że to wymagająca aplikacja i musisz odczytywać często lub duże ilości danych.
    Maksymalna szybkość I2C dla taktowania 1MHz wynosi 62,5kHz.

    modrih napisał:
    Więc z tej okazji pytanie bonus. Posiadam Atmegę 88PU-PA, Pico Power, która dla trybu aktywności dla 1MHz powinna pobierać 0,2mA, a u mnie pobiera ok. 9-11mA
    Te 0,2mA to jest raczej przy zasilaniu napięciem 1,8V.

    modrih napisał:
    Jakieś podpowiedzi odnośnie redukcji prądu?

    Zainteresuj się rejestrem PRR i w miarę możliwości powyłączaj wszystkie nieużywane peryferia (takie jak timery, SPI, USART). Sporadycznie używane też ewentualnie można wyłączyć i włączać tylko w razie potrzeby. Tytan prędkości to nie będzie, ale konsumpcja prądu powinna spaść.

    0