Witam
Od jakiegoś czasu używam bootloadera AVR231. Po pierwszych uruchomieniach zakończonych sukcesem programowałem układ klasycznie programatorem aby przyspieszyć fazę pisania programu. Niestety okazało się niedawno, że zaszyfrowany kod aplikacji po wgraniu przez bootloader nie obsługuje termometru DS18b20, który jest podłączony na tej samej linii IO, którą bootloader sprawdza w celu ewentualnego uruchomienia procesu uaktualnienia aplikacji. Co może być tego przyczyną? Aplikację z poziomu bootloadera uruchamiam chyba klasycznie:
Wszystko inne działa poprawnie tylko ta jedna linia PINB4 ma ciągle stan wysoki (tak jak od podciągniętego do zasilania wejścia). Na oscyloskopie widać w zasadzie stałą wartość z bardzo delikatnymi zakłóceniami. Zapewne zakłócenia, które widzę to transmisja 1-wire od czujników na sąsiednich liniach (4 czujniki ds18b20 - każdy na osobnej linii IO).
Myślałem nad jakimś dodatkowym sposobem zerowania procesora jednak niezależnie czy coś dołożę do programu, pytanie brzmi dlaczego moja właściwa aplikacja sama nie panuje już nad tą jedną linią IO?
Od jakiegoś czasu używam bootloadera AVR231. Po pierwszych uruchomieniach zakończonych sukcesem programowałem układ klasycznie programatorem aby przyspieszyć fazę pisania programu. Niestety okazało się niedawno, że zaszyfrowany kod aplikacji po wgraniu przez bootloader nie obsługuje termometru DS18b20, który jest podłączony na tej samej linii IO, którą bootloader sprawdza w celu ewentualnego uruchomienia procesu uaktualnienia aplikacji. Co może być tego przyczyną? Aplikację z poziomu bootloadera uruchamiam chyba klasycznie:
Kod: C / C++
Wszystko inne działa poprawnie tylko ta jedna linia PINB4 ma ciągle stan wysoki (tak jak od podciągniętego do zasilania wejścia). Na oscyloskopie widać w zasadzie stałą wartość z bardzo delikatnymi zakłóceniami. Zapewne zakłócenia, które widzę to transmisja 1-wire od czujników na sąsiednich liniach (4 czujniki ds18b20 - każdy na osobnej linii IO).
Myślałem nad jakimś dodatkowym sposobem zerowania procesora jednak niezależnie czy coś dołożę do programu, pytanie brzmi dlaczego moja właściwa aplikacja sama nie panuje już nad tą jedną linią IO?