Przełączanie trybów w oparciu o Brown-Out

Coś Ci się zepsuło? Nie chce działać jak powinno? Opisz dokładnie swój problem a postaramy się pomóc...
Awatar użytkownika
Gites
Posty: 47
Rejestracja: środa 11 lut 2015, 00:06
Lokalizacja: Sztokholm

Przełączanie trybów w oparciu o Brown-Out

Post autor: Gites »

Cześć,
Trochę się ostatnio bawię sterownikiem Nanjg 105C. Zaimplementowałem detekcję klików w oparciu o Brown-Out. Niby wszystko działa ale nie podoba mi się, że do poprawnego działania, przerwy w zasilaniu muszą być "super-krótkie" - takie na poziomie drżenia ręki (0.1s ?). Próbowałem zarówno dla BOD = 1.8V jak i 2.7V. Przy tym ostatnim ustawieniu jest odrobinę lepiej, tzn. udaje mi się przełączyć tryb powiedzmy raz na pięć prób. Nie jest to to czego oczekiwałbym i szczerze powiedziawszy nie wiem jak to można usprawnić bez fizycznych przeróbek, żeby było bardziej przyjazne użytkownikowi.
Pozdrawiam,
Gites

edit: "tał" dla układu złożonego z C1 i szeregowo połączonych R1 i R2 wynosi tylko 2.4 ms. Przy 2 * tał czyli ~5 ms można uznać, napięcie na ATtiny jest tak niskie że dane w sekcji .noinit przepadły. Nie jestem pewien czy standardowy użytkownik będzie w stanie zrobić "klika" o długości rzędu pojedynczych milisekund.
Ostatnio zmieniony wtorek 31 mar 2015, 17:24 przez Gites, łącznie zmieniany 2 razy.
Awatar użytkownika
Pyra
Site Admin
Posty: 8527
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post autor: Pyra »

Witam
Trudno coś doradzić bez bliższej znajomości programu. Wystarczy idea...

Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Awatar użytkownika
Gites
Posty: 47
Rejestracja: środa 11 lut 2015, 00:06
Lokalizacja: Sztokholm

Post autor: Gites »

Nie bazuję na żadnym konkretnym firmware tylko stworzyłem prosty szablon, w którym:
- zegar to 4.8 MHz (CKSEL=01) ze startem 6 CK + 14 CK (SUT=00)
- CKDIV8 = 1 (czyli jest wyłączony)
- PB1 jest wyjściem PWM,
- reszta pinów jest wejściami z pull-upem (nie używam ADC na tym etapie),
- cała konfiguracja odbywa się w sekcji .init3 (to działa, bo Watchdog działa, Timer działa, mam PWM na wyjściu)

Jedyne co mi przychodzi do głowy to kombinowanie z opóźnieniami startu (bity SUT) ale nie jestem pewien czy tędy droga. W sumie weryfikacja zajmie chwilę.
Awatar użytkownika
Pyra
Site Admin
Posty: 8527
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post autor: Pyra »

Witam
Ja robiłem próby na standardzie, czyli 9,6MHz, timer na dwa kanały. Pamięć zachowuje zawartość około 0,5s, takie wolne kliknięcia.
Oczywiście próby przeprowadzane na driverku.

Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
ODPOWIEDZ