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

ATMEGA168 - Przeniesienie portu AIN0 na AIN1 w sterowniku silnika BLDC

arek1234321 22 Lut 2017 01:49 1551 6
REKLAMA
  • #1 16297730
    arek1234321
    Poziom 12  
    Witam. Przerobiłem program do sterownika silnika bldc z atmegi 8 na atmege 168 ze strony:
    http://mikrokontrolery.blogspot.com/2011/03/silnik-bldc-sterownik-back-emf.html
    ponieważ chciałbym wykorzystać sterowanie pwm na 6 kanałach. Problem w tym że po zdeklarowaniu wszystkich timerów nie bd mógł użyć portu ain0 do wykrycia punktu przejścia przez zero bo jest w tym miejscu kanał pwm. Pytanie moje jest takie: Jak przepisać ten port ain0 powiedzmy do ain1 tak aby działało to bez kolidowania się tego wszystkiego?
    Załączam program tymczasowy i dokumentacje atmegi168. Bardzo prosiłbym o pomoc oraz sprawdzenie poprawności kodu. Z góry dziękuję.
  • REKLAMA
  • #2 16297990
    dondu
    Moderator na urlopie...
    Nie jest to możliwe ze względu na budowę multipleksera ADC i komparatora, co pokazane jest na rysunku:

    ATMEGA168 - Przeniesienie portu AIN0 na AIN1 w sterowniku silnika BLDC

    Można spróbować zamienić komparator na ADC i wykrywać programowo, ale to może nie pozwolić pracować z dużą prędkością obrotową silnika - trzeba by policzyć.
  • REKLAMA
  • #3 16298165
    kamyczek
    Poziom 38  
    Na atmega8 budują bardzo dużo regulatorów modelarskich 3F . i choć metod realizacji tego zagadnienia jest bardzo dużo ja w tej sytuacji widzę dwie pierwsza to zmiana mikrokontrolera na taki który ma taki rozkład jaki potrzebujesz , możesz też użyć np. lm339 który ma 4 komparatory i wykorzystać np. int0 . Ten 4-ty komparator można użyć do detekcji niskiego napięcia zasilania lub po odpowiednim podłączeniu do detekcji zbyt dużego poboru prądu .
  • #4 16298224
    arek1234321
    Poziom 12  
    A gdyby tak programowo pod PD4 skonfigurować go? Z tym że faktycznie dużych obrotów mogę nie uzyskać... ehh w każdym bądź razie dziękuje za odpowiedź
    Dodano po 7 [minuty]:
    Aaa jeszczw zapomniałem dodać. Jeśli ten procek by się nie nadawał to prosiłbym aby napisać jaki ma 6 kanałów pwm tak żeby się nadał. ATMEGA324A lub ATMEGA64 byłaby dobra?
  • REKLAMA
  • #5 16298318
    BlueDraco
    Specjalista - Mikrokontrolery
    A gdyby tak najpierw spisać wymagania projektowe, a następnie na ich podstawie wybrać mikrokontroler, który je spełnia?... 6 kanałów PWM znajdziesz np. w KE04 za 2 złote albo w STM32F030 za < 5 zł.
  • REKLAMA
  • #6 16298406
    arek1234321
    Poziom 12  
    No tak tylko że nie posiadam do tych procków programatora a chciałbym zrobić to na avr'ce. Przerobiłem znowu program tym razem na atmege 164 ale nie wiem czemu wykrzacza mi program. Moje wymagania to tylko tyle aby sterowanie odbywało się na 6 kanałach PWM ponieważ bd używać mosfet driverów zamiast level shifterów. Proszę o pomoc z góry dziękuję. Załączam również pliki.
  • #7 16300306
    arek1234321
    Poziom 12  
    Dobra jakoś się z tym uporałem na razie. Na ATMEDZE164 wszystko się skompilowało 0 errors 0 warnings tylko jedno pytanie jeszcze. Jak mogę wysymulować sobie ten program z elementami elektronicznymi i prockiem? Mam ISIS 7 Professional ale nie zbyt to dobrze idzie... Cały czas jakiś slow time... 1 minuta symulacji w programie to na żywo jakieś 15minut.... Załączam pliki i prosiłbym o sprawdzenie kodu czy wszystko jest w porządku.
REKLAMA