Dopiero co tu rozmawialiśmy o podciąganiu przycisków itp. ale zakładam osobny temat, bo poniższe lepiej przeczytać i wiedzieć - jako przestroga.
Sprawa dotyczy tego samego urządzenia, no ale to mniej ważne. Ważne jest, że 2 dni straciłem na poszukiwanie perfidnego problemu.
Otóż, w poprzedniej wersji miałem takie rozwiązanie ;
klawiatura (9 przycisków) podłączonych przewodem taśmowym ok. 13cm do PCB z procesorem (atmega128). 10 żył (9+masa).
Czyli są 2 PCB; klawiatury i procesora. Na PCB klawiatury, równolegle z każdym przyciskiem był kondensator
100nF. Rezystory podciągające włączone w Atmedze.I zasadniczo wszystko działało. No, poza tym jednym przypadkiem, kiedy mi się te rezystory podciągające w MCU odłączyły, co już opisywałem parę razy.
No i teraz - postanowiłem sobie poprawić, i zrobiłem 2 zmiany;
- dałem zewnętrzne rezystory podciągające 10K
- kondensatory 100nF przeniosłem z PCB klawiatury na PCB procesora - tuż przy złączu taśmy, niedaleko procesora.
I co ? Niby wydawałoby się, że to nic nie powinno zmienić. NIEPRAWDA !
Nagle okazuje się, sterownik głupieje ; podczas naciskania klawiszy dzieją się cuda - nie zawsze, ale często program się wywala, albo sobie przeskakuje w dowolne miejsce, albo kaszani się LCD.
No masakra. 2 dni straciłem na walkę z programem, bo myślałem, że coś tam jest nie halo - chociaż poprzednio ten sam program był, i było ok.
Rozwiązanie ? Kondensatory ! Po wylutowaniu tych kondensatorów wszystko wróciło do normy !
Co ciekawe, zanim w desperacji wywaliłem te kondensatory, podglądałem oscyloskopem napięcie na liniach wejściowych klawiatury - i nic podejrzanego !
Co jeszcze ciekawsze, kondensatory blokujące, które były poprzednio na PCB były tej samej wartości - też 100nF. Co oznacza, że kiedy ten kondensator był "za" 13 centymetrowym kawałkiem przewodu - nie stwarzał problemu. A podłączony blisko MCU - robi problem.
Dlaczego ? Zapewne te 100nF to za dużo, i podczas zwierania go do masy przez "odległy" przycisk dzieją się jakieś cuda - może z prądem wpływającym lub wypływającym do pinu procesora - dlatego podgląd napięcia nic nie ujawnia.
W tej chwili nie mam czasu na dokładne rozgryzanie - bo mam parędziesiąt urządzeń do poprawki :) - czyli do wywalenia tych kondensatorów...
Ale potem wrócę do tego - bo gdybym sam tego nie przeżył, to bym nie uwierzył, że taki cyrk jest możliwy. Co opisuję ku przestrodze !
Dodam dla jasności, że MCU zasilany z 5V, zasilania do MCU doprowadzone przez dławiki (odpowiednie) + zablokowane kondensatorami itp. Czyli od strony zasilania jest ok - opisuję, bo oczywiście najpierw myślałem, że coś się dzieje od tej strony.
No i teraz pytanie się rodzi - zapewne zmniejszenie tych kondensatorów problem wyeliminuje - ale ile powinno być, i dlaczego tyle ??