Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 26 gru 2024, o 18:29


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 27 lis 2014, o 18:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

Witam
Dostałem jakiegoś zaćmienia i wyłożyłem się na prostej rzeczy.
Na poniższym obrazku uc za pomocą pwm ma sterować mosfetem.
Niestety przy OCR0 = 0 czy OCR0 = 255 mosfet jest stale wyzwolony mimo że sprawdzając miernikiem na wyjściu mam napięcie 5V lub 0V
Jeżeli odpinam zworkę to mosfet przestaje przewodzić. Tylko wtedy.
masa układu połączona z masą uc.

Obrazek

_________________
"Nie programuj w święta - bug się rodzi"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lis 2014, o 18:29 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Na pierwszy rzut oka wygląda ok. Ja jednak usunął bym całkowicie rezystor R3. Teraz do bazy npn wpływa prąd (2,5V-0,6V)/10000=190uA.

Mnożąc to razy wzmocnienie = 100 otrzymujemy 19mA. Żeby nasycić tranzystor NPN w tej konfiguracji prąd kolektora musi wynieśc jakieś 1.17mA więc wygląda ok, ale dla mnie rezystor przeładowywujący mosfeta do plus12V jest za duży. Daj tam 1k. Jeżeli to układ przetwornicy step-down zapomniałeś o diodzie zaporowo do drenu mosfeta.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lis 2014, o 18:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

Tranzystor npn ma wzmocnienie 335. Napięcie Ube=0,71V
Rezystor R4 był wcześniej 47K i według mojej wiedzy powinien taki wystarczyć.
Zastanawia mnie dlaczego po odpięciu zworki mosfet przestaje przewodzić.
Wygląda że układ jest poprawny a wina po stronie uc.
Tak jakby uc go jednak sterował mimo że woltomierz wskazuje mi na wyjściu PB3 0V
Po podłączeniu leda pod PB3 mogę go sterować zmieniając wartość OCR0.
Diody nie ma na razie bo to jest tylko prototyp alfa.


EDIT:
Wgrałem prosty program z miganiem na PB3 i wygląda że układ działa.
Coś chyba mam w programie nie tak skoro w ten sposób działa.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Przy powyższym kodzie nie działa.

_________________
"Nie programuj w święta - bug się rodzi"



Ostatnio edytowano 27 lis 2014, o 19:30 przez tomson5, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lis 2014, o 19:29 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

tomson5 napisał(a):
Tranzystor npn ma wzmocnienie 335. Napięcie Ube=0,71V


Zawsze liczy się na "najgorszy przypadek"

tomson5 napisał(a):
Rezystor R4 był wcześniej 47K i według mojej wiedzy powinien taki wystarczyć.


Jak chcesz przeładowywać bramke w ślimaczym tempie to tak. Wystarczy sięgnąć do noty tranzystora, znaleźć pojemność bramki i policzyć stałą czasową RC to się przekonasz.
tomson5 napisał(a):

Zastanawia mnie dlaczego po odpięciu zworki mosfet przestaje przewodzić.


Bo wtedy tranzystor NPN przestaje przewodzić, na jego kolektorze pojawia się napięcie +12V a wtedy napięcie Vs-Vg = 0 a powinno być ujemne. Będzie on przewodził gdy Vs-Vg > Vth czyli napięcia załaczenia które dla P-mosfetów jest ujemne.

------------------------ [ Dodano po: 1 minucie ]

Mówiąc krótko. Jak dasz stan wysoki na NPN to mosfet bedzie przewodził a jak niski to nie będzie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lis 2014, o 20:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

Ja to wszystko rozumiem doskonale co do mnie mówisz.
Układ jest prosty i nie pozbawiony wad. Do szybkiego kluczowania się nie nadaje.
Na jego przykładzie chciałem tylko sprawdzić pewne założenie i przy okazji program generujący pwm.
Dajmy mu spokój bo widzę że działa ale z programem to już nie bardzo.

Niech mi ktoś tylko wytłumaczy.

Z tym kodem układ działa
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


..a z tym kodem już nie działa. Mimo że pwm jest generowane i przy OCR0 = 0 mam wypełnienie 100% a przy OCR0=255 mam 0% wypełnienia.
Może to kwestia definicji portu????
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Sprawdzam tylko przy wypełnieniu 100% i 0%

_________________
"Nie programuj w święta - bug się rodzi"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lis 2014, o 20:53 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Ale na pinie generowany jest PWM?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lis 2014, o 20:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

Tak. Jest. Mogę wpisać dowolną wartość do OCR0 i zmianę widać gdy podepnę diodę led do wyjścia.
Mogę ją rozjaśniać i ściemniać.

Edit:
Czy w tym układzie wystarczającym obciążeniem jest led+rezystor 2k2? Z drugiej strony to nie działała by wersja programu z miganiem

_________________
"Nie programuj w święta - bug się rodzi"



Ostatnio edytowano 27 lis 2014, o 21:02 przez tomson5, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lis 2014, o 21:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

Ja rozpatruję tylko skrajne wartości OCR0=0 i OCR0=255 przy tych wartościach chyba powinno być 5V i 0V bez żadnych oscylacji?

_________________
"Nie programuj w święta - bug się rodzi"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lis 2014, o 21:17 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Właśnie, przydała by się chociaż funkcja PWM_init()



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lis 2014, o 21:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

Proszę bardzo.

pwm.c
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



pwm.h
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


w pliku pwm.c ten wpis DDRB |= (1<<PB3); dodałem w przypływie desperacji bez niego pwm działał również


EDIT:
Zrobiłem nowy rozbudowany układ, z którym działa tak jak chciałem.
Obrazek

_________________
"Nie programuj w święta - bug się rodzi"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO