well_done 0 5 марта, 2006 Опубликовано 5 марта, 2006 · Жалоба PSC в at90pwm3 удобная вещь.Представляет собой ШИМ по типу: один счётчик-два регистра сравнения-два выхода.Т.е.записав в оба регистра одну величину по идее должны получить на выходах идентичные импульсы. Собственно вопрос:в документации at90pwm2_3.pdf указано ,что при работе PSC в Center Aligned Mode импульсы на выходах в вышеуказанном случае должны быть в противофазе.В реальности же они абсолютно идентичны. Вопрос конечно специфичный.В других темах по этому МК всё замерло на вопросах приобретения и программирования.Но хотелось бы знать ляп ли это Atmel и неизбежно ли внешнее инвертирование. Если кто-то может прояснить буду очень признателен и возможно не только я. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EWAVR 0 5 марта, 2006 Опубликовано 5 марта, 2006 · Жалоба А erratа Пушкин читать будет? 5. PSC: Output Polarity in Centered Mode In centered mode, PSCOUTn1 outputs are not inverted, so they are active at the same time as PSCOUTn0. Workaround: Use an external inverter (or a driver with inverting output) to drive the load on PSCOUTn1. А errata там знатная, из 18 пунктов.... В tiny45 всего 5, зато какие... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
well_done 0 7 марта, 2006 Опубликовано 7 марта, 2006 · Жалоба Выходит более-менее правильные чипы маркируются at90pwm2B,at90pwm3B.Может для кого-то,как и для меня это будет новостью. Обещаю читать самые свежие errata. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Дмитрий МВ 0 4 января, 2020 Опубликовано 4 января, 2020 · Жалоба не могу запустить шим, что я делаю не так? void PWM_ini(void) { Start_pll_64_mega(); Wait_pll_ready(); //PSOC2 имеет возможность управлять мостом (четыре выхода) PSOC2|=(1<<POEN2D)//PSCOUT23 подключен к PSC2 |(1<<POEN2B)//PSCOUT21 подключен к PSC2 |(1<<POEN2C)//PSCOUT22 подключен к PSC2 |(1<<POEN2A);//PSCOUT20 подключен к PSC2 PSOC2&=~(1<<POS23)//PSCOUT23 подключен к генератору В |(1<<POS22);//PSCOUT22 подключен к генератору A //PSOC2&=~(1<<PSYNC2_0);PSOC2|=(1<<PSYNC2_1);//no synchronization signal PCNF2|=PSC_FOUR_RAMP//Four Ramp Mode |(1<<PCLKSEL2)//выбираем CLK PLL дш. стр.162 таб.16-9 |OUTPUT_ACTIVE_LOW;//выходы закрыты PCTL2|=(1<<PBFM2)//ширина импульса будет меняться на On-Time 0 и On-Time 1. |(1<< PAOC2B)//сигнал неисправности для генератора B действует на PSCOUT21 и PSCOUT23 |(1<<PAOC2A);//сигнал неисправности для генератора A действует на PSCOUT20 и PSCOUT22 PCTL2|=(1<<PPRE20);PCTL2&=~(1<<PPRE21);//делитель CLK PLL на 4 дш. стр.162 таб.16-9 PCTL2|=(1<<PRUN2);//запускаем PSC //генератор А //режим аварии 7 (остановка PSC и ожидание действия програмного обеспечения) PFRC2A|=(1<<PRFM2A0)|(1<<PRFM2A1)|(1<<PRFM2A2);PFRC2A&=~(1<<PRFM2A3); PFRC2A|=(1<<PFLTE2A)//шумоподавление в 4 цикла |(1<<PELEV2A);//аварией будет появление 1 на выбраном канале //генератор В //режим аварии 7 (остановка PSC и ожидание действия програмного обеспечения) PFRC2B|=(1<<PRFM2B0)|(1<<PRFM2B1)|(1<<PRFM2B2);PFRC2B&=~(1<<PRFM2B3); PFRC2B|=(1<<PFLTE2B)//шумоподавление в 4 цикла |(1<<PELEV2B);//аварией будет появление 1 на выбраном канале //PIM2|=(1<<PEOPE2);//когда этот бит установлен прерывание генерируется когда PSC //достигает конца цикла (один цикл по сути это период) On_time=OCR2RA=OCR2RB=200;//ширина импульса OCR2SA=OCR2SB=50;//dead-time } преобразователь мостовой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Дмитрий МВ 0 26 января, 2020 Опубликовано 26 января, 2020 · Жалоба убрал режим аварии и все заработало PFRC2A=0 и PFRC2B=0 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться