roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 10:22

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Шим >8 bit
СообщениеДобавлено: 13 фев 2006, 17:33 
Не в сети

Зарегистрирован: 11 фев 2006, 19:05
Сообщения: 3
Откуда: Владивосток
Ищу контролер с 6 Шимами 10 - 12 bit.
Очень нравятся то что в At90PWM 3 называется PSC  только их там 3, а мне хотя бы 4 в одном корпусе.
Может кто видел?
Заранее благодарен.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 фев 2006, 18:11 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
Как вариант можно взять МК с нужным количеством ног и на них сделать программный ШИМ.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 фев 2006, 20:10 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
6 шим по 10 бит в ATmega48    (b должно быть  в -88   -168)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 фев 2006, 17:00 
Не в сети

Зарегистрирован: 11 фев 2006, 19:05
Сообщения: 3
Откуда: Владивосток
Прошу прощения, некорректно вопрос задал.
Шим должен быть достаточно быстрым ( 10 ? 20 КГц) с 10 битами это возможно, а с 12 частота счетных импульсов >40 МГц. Тут только PLL с 64 МГц спасет,  а его я нашел только в tiny 26 и at90PWM2_3.

К шимам подключаются моторы направление вращения которых задается включением одного из дух электромагнитов. На каждый PSC приходится по два выхода, при этом отпадает надобность в ноге на которой формируется знак и внешней логике (если я все правильно понял с драйверами для двигателей). Кстати может кто видел драйвер который управляет двумя  транзисторами верхнего плеча, на входе у которого отдельно знак и отдельно ШИМ. Моторы по 650 ватт 200 вольт.

Программный ШИМ штука наверно хорошая, но аппаратные кажутся куда более надежными. Да и стоимость моторов такая что цена контролера порядка на два три меньше.

У Atmega 48/88/168 три таймера, на каждом по 2 ШИМа. При этом только один таймер 16ти битный. Как на 8ми битных таймерах строятся 10 бит ШИМы?

Спасибо AVR123 за его курс, у меня увлечение контролерами началось с него.

Еще вопрос не в тему. В ICC v7.04A в project\options\device configuration At90PWM3 есть, а в application builder его нет.  Это значит что ICC сможет в него только готовый hex зашить, или все же скомпилять сможет. В каком из компиляторов поддержка новых микросхем появляется раньше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 фев 2006, 17:33 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Николай писал(а):
В ICC v7.04A в project\options\device configuration At90PWM3 есть, а в application builder его нет.  Это значит что ICC сможет в него только готовый hex зашить, или все же скомпилять сможет.

.


может компилировать но не может генерить начальный код Си.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: ШЫМ
СообщениеДобавлено: 04 мар 2006, 22:48 
Не в сети

Зарегистрирован: 05 окт 2005, 14:43
Сообщения: 24
Откуда: Петрокрепость
Начинающий. Делаю ШЫМ по примеру из WinAVR demo.c, но в Кодевижне (1.24.7а Eval.)
Вот кусок проги с наиболее полезными (по моему) строками, сгенерированной Кодевиженовским CodeWizard'ом с моими строками
(тело прерывания и переменные перед ним):
Код:
Chip type           : ATmega8
Program type        : Application
Clock frequency     : 1,000000 MHz
Memory model        : Small
External SRAM size  : 0
Data Stack size     : 256
*****************************************************/

#include <mega8.h>
static enum {UP, DOWN}dir=UP;
static unsigned int pwm=0;
const unsigned int TOP=1023;
// Timer 1 overflow interrupt service routine
interrupt [TIM1_OVF] void timer1_ovf_isr(void)
{
// Place your code here
switch (dir)
   {
    case UP:
            if (++pwm == TOP)
                dir=DOWN;
    break;
    case DOWN:
            if (--pwm == 0)
                dir=UP;
    break;
   };
OCR1A=pwm;
}
//== а это - из ф-ии main():
PORTB=0x00;
DDRB=0x02;
...
// Clock source: System Clock/64
// Clock value: 1000,000 kHz/64
// Mode: Ph. correct PWM top=00FFh
// OC1A output: Non-Inv.
// Timer 1 Overflow Interrupt: On
TCCR1A=0x81;
TCCR1B=0x03;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
TIMSK=0x04;
...

остальная периферия инициализирована в нули (как нерабочая)
потом идет бесконечный цикл

Мои ожидания: подключенный между OC1A (portB.1) и землей светодиод должен плавно загораться и гаснуть тоже плавно, т.е. график яркости такой:
.../\/\/\...
вместо этого получается пила, состоящая из циклов вида:
.../|/|/\|\|\...
т.е. четыре нарастающих яркости, потом 4 спадающих, все это повторяется.
1. В чем косяк программы?
2. В AVR Studio 3.56 ни одна из моих переменных не видна. Интересно узнать причины.
Спасибо.

Заключайте листинги в тег CODE <V>


Вложения:
1.JPG
1.JPG [ 6.03 КиБ | Просмотров: 4198 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 мар 2006, 06:01 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
попробуй VMLAB и отладку как в задаче 6 курса МК


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ШЫМ
СообщениеДобавлено: 09 мар 2006, 21:18 
Не в сети

Зарегистрирован: 23 июл 2005, 00:39
Сообщения: 63
Откуда: Казань
Nihilant писал(а):
const unsigned int TOP=1023;
...
// Mode: Ph. correct PWM top=00FFh
1. В чем косяк программы?

Нестыковка. Топ меняете от 0 до 1023, а шим считает от 0 до 255. Приведите в соответствие.
Nihilant писал(а):
2. В AVR Studio 3.56 ни одна из моих переменных не видна. Интересно узнать причины.
Спасибо.

Обновите, сейчас актуален 4.12-ый.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 10 мар 2006, 10:42 
Не в сети

Зарегистрирован: 05 окт 2005, 14:43
Сообщения: 24
Откуда: Петрокрепость
avr123.nm.ru писал(а):
попробуй VMLAB и отладку как в задаче 6 курса МК

Кстати, ВМЛаб не помог мне выловить баг, когда я при пересылке
const char* c="Hello, world!" по UART побайтно в цикле

for(i=0; c[i]!='\n'; i++) {...}

как конец массива рассматривал '\n' вместо '\0'. Но все равно, ВМЛаб хороший.
Спасибо за ответы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Шим >8 bit
СообщениеДобавлено: 27 мар 2006, 16:26 
Не в сети

Зарегистрирован: 16 апр 2005, 19:49
Сообщения: 39
Откуда: Санкт-Петербург
Николай писал(а):
Ищу контролер с 6 Шимами 10 - 12 bit.
Очень нравятся то что в At90PWM 3 называется PSC  только их там 3, а мне хотя бы 4 в одном корпусе.
Может кто видел?
Заранее благодарен.

Хм.. Здесь вот кстати PSOC от Cypress поможет. Например CY8C29466.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 28 май 2007, 21:24 
с шестью независмыми каналами ШИМ si8250.
но эту игрушку нахрапом не взять. не AVRка


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 июн 2007, 17:01 
Не в сети

Зарегистрирован: 06 июн 2007, 16:50
Сообщения: 2
Откуда: Ukraine
Можно под это дело использовать какю-нибудь простенькую ПЛИС, например ALTERA EPM3128 должно хватить на 4 12-битных ШИМ-а + МК любой AVR.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 13


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO