Skocz do zawartości

Silnik DC 6v, piszczy ale nie startuje. DRV8838, ATtiny2313A.


deirethowy

Pomocna odpowiedź

Witam serdecznie. Otóż zmontowałem prosty układ do małego samochodzika na akumulator żelowy 6V. Wszystko opiera się o sterownik DRV8838. PWM generuje mikroprockiem Attiny2313A. Mój program wygląda tak:

#define F_CPU 1000000UL
#include <avr/io.h>


int main(void)
{
DDRB   |= (1 << PB2);                   // PWM output on PB2
TCCR0A = (1 << COM0A1) | (1 << WGM00);  // phase correct PWM mode

TCCR0B = (1 << CS01);					// clock source = CLK/8, start PWM

while(1)
{
 OCR0A  = 0xFF;
}
}+

Problem w tym, że silnik piszczy a nie startuje. Gdy przekręce raz zębatke silnik zaczyna działać tak jak powinien ale po odłączeniu zasilania i włączeniu ponownie sytuacja się powtarza. Co powinienem zrobić ? Układ z mikroprockiem wygląda tak:

ATtiny2313-PWM-OC0A.png

Z tą różnicą, że mam zastosowaną diodę prostowniczą żeby z 6v zrobić poniżej 5.5 do zasilania procka no i nie mam diody na PB2 tylko wchodzi do ENABLE przy sterowniku.

__________

Komentarz dodany przez: Sabre

Link do komentarza
Share on other sites

1. Wyłączyłeś w fusebitach CKDIV8 ? - bez tego procek chodzi na 1 Mhz. Czyli częstotliwość PWM`a to około 500 Hz i przez to najprawdopodobniej silnik piszczy. Jak wyłączysz CKDIV8 to będziesz miał 8*500 Hz = 4 kHz

2.

#define F_CPU 1000000UL 

Nie stosuje się już od lat. Ustawia się to w właściwościach projektu - Atmel Studio/Eclipse.

http://mikrokontrolery.blogspot.com/2011/04/atmel-studio-spis-tresci.html

Link do komentarza
Share on other sites

Co do 2 to już zdefiniowałem symbol w ustawieniach projektu. Rzeczywiście CKDIV8 jest domyślnie włączone. Nie mogę wyłączyć tego w programie ponieważ mam USBasp przez co w Device Programming nie wyświetla mi się to urządzenie. Pytanie jak to rozwiązać? Podać odpowiednie argumenty przy wywoływaniu avrdude? Używając tego fuse i wyłączając tylko CKDIV8 mam taki kod: -U lfuse:w:0xe4:m. Mam to wklepać w atmel studio tam gdzie ustawiałem linijkę wywołań dla avr dude?

Link do komentarza
Share on other sites

Nie pokazałeś prawdziwego schematu więc nie wiadomo czy tam nie ma jakiegoś błędu. Opisy słowne mówią zwykle jak miało być, a nie jak jest. No trudno.

Zupełnie niepotrzebnie wybrałeś tryb phase-correct-PWM, który daje dwa razy niższą częstotliwość przebiegu bo licznik pracuje w dwie strony centrując aktywny sygnał wokół zawsze tego samego punktu w ciągu okresu. To nie jest Ci potrzebne. Gdy zaczynasz nowy temat, wybieraj proste rzeczy zamiast najbardziej wydziwionych jakie znalazłeś. Ustaw najprostszy tryb fast-PWM (WGM210 = 011) a wypełnienie na 50% (czyli okolice 128), bo jeśli np. ustawiłeś odwrotny tryb pracy wyjścia (bity COM) to jest szansa, że poprzez wpisanie 0xFF Twój silnik praktycznie nie dostaje mocy. Potem zmieniaj wypełnienia i okaże się jak jest a jak miało być. Nie zakładaj, że wszystko już jest OK, a coś z tajemniczego powodu sprzysięgło się i nie działa. Próbuj różne tryby, wypełnienia itp aż odkryjesz co skopałeś.

Mogłeś sprawdzić nawet sam sterownik DRV: wystarczyło przypiąć wejście ENABLE kabelkiem do +5V lub GND i od razu byś wiedział, czy sam driver jest OK. Wtedy wiesz już jaki sygnał jest potrzebny do włączenia silnika i w którym kierunku będzie się kręcił. Potem piszesz program i gdy coś nie działa wystarczy multimetrem sprawdzić napięcie DC na linii PWM. Zobaczysz uśrednione coś, co będzie bezpośrednio odpowiadało wypełnieniu względem +5V, tj. np pomiar 1V oznacza wygenerowane 20%. Jeśli DRV potrzebuje np. +5V a ty zmierzysz 0.1V podczas gdy miało być blisko 100% to sam widzisz, że coś jest nie tak ze sterowaniem. I drążysz dalej. My tu nie jesteśmy potrzebni.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Co do zmiany fusebitów to możesz to zrobić jakimś programem typu BurnOMat, mkAVRCalculator. Nie trzeba klepać w linii poleceń.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.