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

[atmega32][c] jak uzyskać więcej wyjść PWM

mitny 18 Mar 2010 22:09 1709 5
REKLAMA
  • #1 7849726
    mitny
    Poziom 13  
    Witam,
    Planuję sobie pewną konstrukcję gdzie będę sterować pięcioma wentylatorami. Niestety Atmega32 ma tylko 4 wyjścia z czego wg. mojego planu mogę wykorzystać max 3. Wymyśliłem sobie, że mógłbym je pogrupować tzn. jedno wyjście PWM mogło by jednocześnie sterować kilkoma wentylatorami. Np. PWM1 sterowało by FAN1, FAN2, FAN3 natomiast PWM2 - FAN4 i PWM3 - FAN5. Problem w tym, że chciałbym móc sterować tym które PWM obsługuje dany wentylator albo nawet całkowicie odłączyć jeden z wentylatorów. W efekcie potrzebuję czegoś dzięki czemu mógłbym sterować z poziomu uC połączeniami PWM - FAN tak aby móc uzyskać kombinację każdy z każdym. I tu pojawia się moje pytanie jak to zrealizować?
  • REKLAMA
  • #2 7849794
    mirekk36
    Poziom 42  
    mitny napisał:
    ... I tu pojawia się moje pytanie jak to zrealizować?


    Bardzo prosto, zrób sobie programowy PWM, wtedy będziesz miał tyle wyjść (kanałów PWM) ile tylko zapragniesz.
  • REKLAMA
  • #3 7849905
    mitny
    Poziom 13  
    O programowym już myślałem ale trochę szkoda mi taktów procesora które chciałbym wykorzystać w innym celu. Poza tym np. przy odczycie temperatury z DSa wyłączam przerwania aby mieć precyzyjne czasy.
  • REKLAMA
  • #4 7850167
    mirekk36
    Poziom 42  
    To na ileż ty czasu te przerwania wyłączasz przy odczycie DS'a ???

    Poza tym nawet z tym wyłączaniem przerwań, co i tak powinno trwać bardzo krótko, rzędu wykonania kilku rozkazów odczytu, to co za problem dla PWM'a który ma sterować czymś takim jak wentylatory?

    Gdybyś sterował diodę LED to może byś zobaczył czasem z powodu wyłączenia przerwań dla DS'a jakieś ledwo zauważalne mignięcia, ale wentylator??? on się nie zdąży zatrzymać ;) nawet tego nie odczuje
  • REKLAMA
  • Pomocny post
    #5 7850316
    tmf
    VIP Zasłużony dla elektroda
    To steruj DSa z UARTA mikroprocesora, timingi bedziesz mial sprzetowe, wiec i blokowanie przerwan odpadnie. A jesli juz musisz miec kazdy z kazdym to tylko stworzenie matrycy polaczen pozostaje (cos w stylu FPGA). Troche to bez sensu.
  • #6 7850551
    mitny
    Poziom 13  
    Przemyślałem sprawę i faktycznie stosowanie takiej matrycy jest mi niepotrzebne i lepiej będzie zrobić to na programowym PWM.
    Dzięki za rady.
REKLAMA