Dziwne zachowanie diod LED na portG w Atmega128

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Dziwne zachowanie diod LED na portG w Atmega128

Post autor: M@ciej » 07 wrz 2014, 15:00

Witam,

Zmontowałem pewien układ, z diodami według rysunku poniżej. Diody połączone są anodami ze sobą i na tą chwilę nigdzie nie dalej nie są podłączone. Katodami podłączone są do pinów portu G mikrokontrolera Atmega128. Według mnie układ przeczy prawom fizyki, bo diody świecą i nie można ich w żaden sposób zgasić. Owszem, gasną tylko dwie pierwsze, jak przełączy się Atmegę na kompatybilność z Atmega103 we fuebitach. Naczytałem się już o nieprawidłowym działaniu portu G w Atmega 128 (czy w Atmega64 też takie hocki-klocki występują?), ale świecenie diod w układzie jak na rysunku jest dla mnie co najmniej tajemnicze.
Załączniki
3-diody.jpg
3-diody.jpg (20.38 KiB) Przejrzano 3059 razy

Awatar użytkownika
Artyliusz
Użytkownik
Posty: 306
Rejestracja: 06 sty 2013, 14:10
Lokalizacja: Z Polski
Kontakt:

Post autor: Artyliusz » 08 wrz 2014, 10:35

To znaczy, że do anody nie ma podłączonego źródła zasilania?
Jak są konfigurowane porty? Wejście/wyjście, stan niski/wysoki?

Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Post autor: M@ciej » 08 wrz 2014, 12:00

Docelowo do anod podłączony jest pin CD4094 przez rezystor 166R (330R||330R), ale został on odlutowany i diody świecą nadal. Sprawdzałem już płytkę po 10 razy na ewentualne zwarcia, ale nic takiego nie znalazłem. Te diody LED stanowią podświetlenie przycisku PB6149L-4. Nie mogłem ich w żaden sposób zgasić programowo. Wysłałem nawet na cały portG zera.

Config portg=&B1111

a potem

Portg=&B0000

Bo czytałem, że pojedynczych pinów nie obsługuje.

Na pinach portu G mam napięcia około 2,5...3V, a procka zasilam z 5V. To wygląda, jakby w diodzie LED była podłączona wstecznie druga zwykła dioda, choć odwrotne podłączenie zasilania nie zaświeca diody (wylutowanej z kładu), a miernik też pokazuje jedną diodę.

Zanim poryję ścieżki i przestawię te piny na inny port, chciałem się dowiedzieć, czy da się coś z tym zrobić?

EDIT

Pokombinowałem z tym układem i z moich pomiarów wynika, że te diody LED podświetlające przycisk muszą mieć równolegle podłączoną w odwrotnym kierunku do LED zwykłą diodę, Jeszcze raz spojrzałem do Datasheeta tego przycisku i przy symbolu diody jest namalowany niewielki trójkącik, który mógłby sugerować taką diodę. Muszę przyznać, że pierwszy raz spotkałem się z takim oznaczeniem. A po co taką dodatkową diodę do LED producent miałby dodawać, to już kompletnie nie wiem. Problem rozwiązałem dodając do każdej anody diodę BAS85, czyli szeregowo do każdej LED.
Załączniki
PB6-led.jpg
PB6-led.jpg (4.38 KiB) Przejrzano 3004 razy

Awatar użytkownika
siekierzyński
Użytkownik
Posty: 486
Rejestracja: 01 cze 2010, 23:12
Lokalizacja: Nareszcie Polska

Post autor: siekierzyński » 16 lis 2014, 23:15

Próbowałeś na próbę zrobić:

Kod: Zaznacz cały

Config PORTG=output
PORTG = 255
' potem
PORTG = 0
?

Chodzi o to, żeby zobaczyć, czy to kwestia programowa czy sprzętowa.


Zobacz w fusebitach, czy masz powyłączane wszystko czego nie używasz, w sensie JTAG, WATCHDOG itp.

ODPOWIEDZ