logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Attiny24][Bascom] Czy ADC i wszystkie PWM mogą działać razem?

karol1996 22 Paź 2018 23:16 960 10
REKLAMA
  • #1 17512040
    karol1996
    Poziom 19  
    Witam
    Mam problem z układem na Attiny24.
    Chcę wykorzystać wszystkie 4 kanały PWM, oraz 4 kanały ADC. (1 - 4) + sygnał Aref.
    I moje pytanie jest, czy jeżeli uruchomiłem ADC, to mogę korzystać wyjść PWM, które są współdzielone z niewykorzystanymi pinami ADC?
    Myślałem, że jak odpowiednio skonfiguruję kierunkowość portu A (ADC jako wejścia, PWM jako wyjścia), to nie będzie z tym problemów
    Dam jeszcze schemat. [Attiny24][Bascom] Czy ADC i wszystkie PWM mogą działać razem?

    Pod PA0 podłączone mam Aref, PA1 - PA4 są wejściami ADC, a z PA5 - PA7 oraz PB2 mają wychodzić sygnały PWM.
    Moje pytanie brzmi: czy da się to w taki sposób połączyć?
    Czy jak uruchamiam ADC, to do dyspozycji zostaje tylko jeden kanał PWM?
    KAROL
  • REKLAMA
  • #2 17512093
    excray
    Poziom 41  
    Aref - robisz to źle. Zamiast podpinać PA0 pod VCC ustaw REFS0,1 na 0,0. Tak, możesz wykorzystać nieużywane piny ADC do innych celów.
  • REKLAMA
  • #3 17512258
    Press
    Poziom 24  
    Przy okazji niech kolega rzuci okiem na ten link: Link
    Oszczędzi kolega dwa piny uP na sterowaniu mostka.
  • REKLAMA
  • #4 17514366
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #6 17514698
    BlueDraco
    Specjalista - Mikrokontrolery
    Przekroczone dopuszczalne prądy kolektora BC817. Cieplutko będzie...
  • #7 17514814
    karol1996
    Poziom 19  
    Witam
    Zacznijmy od tego, że to NIE JEST mostek H.
    Układ ma być sterownikiem świateł do samochodu.
    PWM będzie "pracował" tylko na 30% wypełnienia, nie więcej.
    Nigdy też nie będzie sytuacji, że wszystkie 4 tranzystory będą fizycznie zamontowane w układzie.
    Albo będą tranzystory "górne" albo "dolne".
    W projekcie widać 4 tranzystory, ponieważ sterownik ma być uniwersalny - w zależności od potrzeby (żarówki załączane "+" lub "-") będą montowane odpowiednie tranzystory.
    Dzisiaj wieczorem postaram się załączyć listening programu...
    A mam pytanie, czy czysto z poziomu Bascoma (bez ręcznego sterowania rejestrami) można odpowiednio skonfigurować ADC?
    Bo jedym z parametrów polecenia "Config ADC" jest "REFERENCE", które może przyjmować wartości "Aref", "Avcc", "Internal_2.54", "Internal_1.1".
    Obecnie mam wybrane "Avcc".
    A jak uzyskać priorytet konfigurowalności pinów?
    Karol
  • #8 17514904
    tronics
    Poziom 38  
    Cytat:
    W projekcie widać 4 tranzystory, ponieważ sterownik ma być uniwersalny - w zależności od potrzeby (żarówki załączane "+" lub "-") będą montowane odpowiednie tranzystory.

    Rozumiem, że w tej sytuacji będą 4x N-channel lub 4x P-channel, jeśli nie to po co 4 kanały pwm?
    Cytat:
    Zacznijmy od tego, że to NIE JEST mostek H.

    Przedstawiony na załączonym schemacie jest, nie moja wina że kolega użył topologii sugerującej sterowanie dwukierunkowe obrotów silnika i nie opisał co układ ma robić. W tym momencie spory kawałek komentarzy jest zupełnie zbędny i nie na temat.
  • #9 17516253
    karol1996
    Poziom 19  
    Witam
    Oto mój program :)
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    Idea jest taka:
    Kanał ADC1 mierzy napięcie zasilające układ (od 12 do 14.4V, po przejściu przez dzielnik 2k2 i 1k). Przy 12V na procesor idzie 3.75V, a przy 14.4 jest to 4.51V.
    Napięcie zasilające procesor ma dokładnie 4.8V. W programie jako napięcie ref. ustawione jest Avcc, czyli 4.8V.
    Gdy napięcie zasilania przekroczy 13.4V, (na procesorze 4.2V), to wartości PWM'ów z 0 zmieniają się na 72 (żarówki świecą z 30% mocą).
    Gdy zaś napięcie zasilania spadnie do 12V (3.75V), żarówki mają zgasnąć (PWM'y ponownie przybierają wartość 0).
    I już tutaj program zdaje się nie działać prawidłowo - po zwiększeniu nap. zasilania z 12V do 13.4V, żarówka podpięta do OC0A (przez mosfeta) załącza się z 30% mocą, ale po obniżeniu nap. zasilania z powrotem do 12V (a nawet mniej), żarówka niestety nie gaśnie.
    Kanał ADC2 mierzy 12V podawane ze stacyjki, (gdy nap. nie ma, lub po jego zaniku żarówki mają się wyłączyć).
    ADC3 i 4 mierzą czy nie zostały załączone św. mijania i pozycyjne - jeżeli na którymś z tych wejść pojawi się napięcie, żarówki mają się wyłączyć.
    A osobną kwestią jest prawidłowe skonfigurowanie ADC i PWM...

    tronics napisał:
    Rozumiem, że w tej sytuacji będą 4x N-channel lub 4x P-channel, jeśli nie to po co 4 kanały pwm?

    Nie. będą albo 2 N-Mosfety, albo 2 P-Mosfety.

    KArol
  • #10 17517256
    BlueDraco
    Specjalista - Mikrokontrolery
    Program działa dokładnei tak, jak go napisałeś. Jest takie magiczne słowo kluczowe - else. Obecnie jeśli Adc2 >= 799 ustawiasy PWM na 72 i zaraz potem na 0; masz klika takich błędów wynikających z braku else. Kiedy już to poprawisz, nadal będzie działało niestabilnie, bo nie filtrujesz pomiarów i nie masz histerezy. To się inaczej robi. Pomyśl najpierw o stanach układu, a następ nie o tym, kiedy układ zmienia stan - i napisz program od nowa, używając zmiennej przechowującej stan.
REKLAMA