Артём__ 0 12 июня, 2013 Опубликовано 12 июня, 2013 · Жалоба В хидерое среди определений PWM_PIN не нашла. Это константа? Да - константа. На плате у меня там шим должен быть. Или место выдачи PWM в порту фиксировано? Место выдачи шима фиксировано следующим образом: Таймер типа 0 может выводить шим с канала А на пин 0 порта, с канала Б на пин 1 порта ... с канала D на пин 3. Таймер типа 1 может выводить шим с канала А на пин 4 порта, с канала Б на пин 5. Скажем, если мне нужен PWM на другой ножке, то какие измения в коде я должна провести Нужно разрешить соответствующий канал таймера, ну и пин на выход. Так это, значит, ваши собственные определения? Естественно. А если я перепределю PWM_PIN на другое число, скажем на 2 вместо 1, то PWM начет выводиться на соседнюю ножку? Нужно ещё канал разрешить и соответствующий регистр сравнения инициализировать (для пина 2 - канал С и set new compare value for compare channel C): TC0_EnableCCChannels( &TCF0, TC0_CCCEN_bm ); TC_SetCompareC( &TCF0, PWM_PERIOD>>1); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 12 июня, 2013 Опубликовано 12 июня, 2013 · Жалоба Дошло до меня - номер порта и пина нигде не задается, поскольку он намертво привязан к имени таймера. Т.е. таймер может выдать PWM только на одноименный с ним порт, и только на пин, определяемый буквой после CC. Например, выдать PWM на PORTF0 можно ТОЛЬКО через TCF0.CCA и никак не иначе. А если нужна соседняя нога PORTF1, то надо переходить на TCF0.CCB, и т.д. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Артём__ 0 12 июня, 2013 Опубликовано 12 июня, 2013 · Жалоба Т.е. таймер может выдать PWM только на одноименный с ним порт, и только на пин, определяемый буквой после CC. Например, выдать PWM на PORTF0 можно ТОЛЬКО через TCF0.CCA и никак не иначе. А если нужна соседняя нога PORTF1, то надо переходить на TCF0.CCB, и т.д. Всё так. Дошло. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Duhas 0 14 августа, 2013 Опубликовано 14 августа, 2013 · Жалоба Дабы не плодить тем спрошу здесь. Понадобилось мне переделать DFU bootloader для XMEGAxxA4 на свою ножку. это стало для меня трудной задачей ) для студии в ASF я готовых примеров не нашел, что делать с исходниками из архива http://www.atmel.com/Images/AVR1916.zip мне не понятно( т.к. я вижу там только хидеры, ни файла проекта ни сишного файла с main я не ощущаю, ЧЯДНТ учитывая что я пишу обычно в студии и на АСМе? ) ПС если есть добрые люди готовые пересобрать бутлоадеры под: ATxmega16A4U - PD4 ATxmega128A4U - PB1 - буду оч благодарен ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 14 августа, 2013 Опубликовано 14 августа, 2013 · Жалоба я вижу там только хидеры, ни файла проекта ни сишного файла с main я не ощущаю, ЧЯДНТ учитывая что я пишу обычно в студии и на АСМе? Во всех бутлоадерах есть main() и находится он в файле: \common\services\usb\class\dfu_flip\device\bootloader\xmega\main.c ПС если есть добрые люди готовые пересобрать бутлоадеры под: ATxmega16A4U - PD4 ATxmega128A4U - PB1 - буду оч благодарен ) Линии USB фиксированы, это PD6 (D-) и PD7 (D+). Переставить эти функции на другое место нельзя. Но если вам нужен загрузчик не по USB, а по USART, то пины PD4 и PB1 для этого тоже не годятся, т.к. RXD/TXD тоже выводятся на 6-й и 7-й пины портов C и D. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Duhas 0 16 августа, 2013 Опубликовано 16 августа, 2013 (изменено) · Жалоба спасибо за указание на мэйн. пины я писал те, что должны запускать бутлоадер при старте, чтоб управление не передалось приложению, то что ЮСБ линии фиксированы - понятное дело ) еще раз спасибо. пересобрал под нужные пины. может заодно подскажете в чем идея прятать так глубоко основные файлы проекта? Изменено 16 августа, 2013 пользователем Duhas Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 15 сентября, 2013 Опубликовано 15 сентября, 2013 · Жалоба У меня возник новый вопрос: а можно ли наоброт? Т.е. существует ли возможность превратить событие с "Event Channel" в дрыгание какой-либо ножки? Про то, как превратить ножку в сенсор, вызывающий переключение "Event Channel", я поняла, и это у меня заработало. Но гложет вопрос про обратную возможность - превратить возникшее у "Event Channel" переключение состояния в подергивание какой-то ножки, но только другой. Т.е. интересует возможность использования "Event Channel", как средства сообщения между двумя ножками МК, чтобы одна его ножка повторяла (в той же фазе или противофазе) изменения уровня на другой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tiro 0 15 сентября, 2013 Опубликовано 15 сентября, 2013 · Жалоба У меня возник новый вопрос: а можно ли наоброт? Т.е. существует ли возможность превратить событие с "Event Channel" в дрыгание какой-либо ножки? Про то, как превратить ножку в сенсор, вызывающий переключение "Event Channel", я поняла, и это у меня заработало. Но гложет вопрос про обратную возможность - превратить возникшее у "Event Channel" переключение состояния в подергивание какой-то ножки, но только другой. Т.е. интересует возможность использования "Event Channel", как средства сообщения между двумя ножками МК, чтобы одна его ножка повторяла (в той же фазе или противофазе) изменения уровня на другой. Ксения, микроконтроллер это аппаратно-программное устройство, содержащее несколько конфигурируемых аппаратных узлов, которые могут сигнализировать о своем состоянии флагами или прерываниями программы. Прямая связь аппаратных узлов в нем не предусмотрена, только через программу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 15 сентября, 2013 Опубликовано 15 сентября, 2013 · Жалоба Ксения, микроконтроллер это аппаратно-программное устройство, содержащее несколько конфигурируемых аппаратных узлов, которые могут сигнализировать о своем состоянии флагами или прерываниями программы. Прямая связь аппаратных узлов в нем не предусмотрена, только через программу. Я тоже всегда так считала. Но вот увидела, как сделан у XMaga "Event System", и возбудилась :). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tiro 0 15 сентября, 2013 Опубликовано 15 сентября, 2013 · Жалоба Я тоже всегда так считала. Но вот увидела, как сделан у XMaga "Event System", и возбудилась :). Равнодушнее, мадам, это всего лишь кусок кремния ))) Я ничего не знаю про "Event System", но есть какой-нибудь практический вопрос по конкретной хмеге и ножкам? Готов посмотреть дейташит на аппаратуру. Заодно новенькое узнаю )) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 15 сентября, 2013 Опубликовано 15 сентября, 2013 · Жалоба Я ничего не знаю про "Event System", но есть какой-нибудь практический вопрос по конкретной хмеге и ножкам? Готов посмотреть дейташит на аппаратуру. Заодно новенькое узнаю )) Вы зря беретесь отвечать на вопросы, связанные с тем, о чем вы ничего не знаете. Речь идет о возможностях "Event System Controller", упоминаемого в даташите. Там сказано: Events can be generated by Timer/Counters (TCxn) Real Time Counter (RTC) Analog to Digital Converters (ADCx) Analog Comparators (ACx) Ports (PORTx) System Clock (ClkSYS) Software (CPU) Events can be used by Timer/Counters (TCxn) Analog to Digital Converters (ADCx) Digital to Analog Converters (DACx) Ports (PORTx) DMA Controller (DMAC) IR Communication Module (IRCOM) Меня интересует вторая часть этих возможностей - не генерация событий (с ней все ясно), а их использование. И в частности для управления пинами порта (соответствующий пункт в цитате я выделила и подчеркнула). В русском варианте есть такая информация: К линии порта также можно программно подключить канал 7 системы событий (Event Channel 7). Если в этом канале генерируется событие, то соответствующий этому событию сигнал будет отображаться на выводе микроконтроллера в течение одного периода периферийного тактового сигнала. (цитировано из http://kit-e.ru/articles/micro/2008_4_95.php ) И вот это интересует меня в самом буквальном смысле: "отобразить событие на выводе микроконтроллера". На рисунке, приведенном в даташите, стрелочки от "Port pins" идут в обе стороны! И меня интересует та возможность, которая соответствует стрелке вниз. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tiro 0 15 сентября, 2013 Опубликовано 15 сентября, 2013 · Жалоба Вы зря беретесь отвечать на вопросы, связанные с тем, о чем вы ничего не знаете. Речь идет о возможностях "Event System Controler", упоминаемой в даташите. Там сказано: Меня интересует вторая часть этих возможностей - не генерация событий (с ней все ясно), а их использование. И в частсности для упралением пинамм порта (соотвествующий пункт в цитате я выделила и подчеркнула). В русском варианте есть такая информация: И вот это интересует меня в самом буквальном смысле: "отобразить событие на выводе микроконтроллера". Ну не зря, мне интересное все новое. А вот наименования контроллера нет, поэтому я не могу прочесть дейташит, который есть у Вас. И в ссылке правая скобка мешает переходить на статью. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 15 сентября, 2013 Опубликовано 15 сентября, 2013 · Жалоба Ну не зря, мне интересное все новое. А вот наименования контроллера нет, поэтому я не могу прочесть дейташит, который есть у Вас. И в ссылке правая скобка мешает переходить на статью. Данные возможности относятся ко всему семейству XMega, т.к. контроллер "Event System" представляет особенность новой архитектуры. Да и журнальная статья, ссылку на которую я привела, относится к рекламе возможностей всей линейки XMega, а не какого-то отдельного экземпляра. Но лично у меня флагман :) этой серии - ATxmega128A1. P.S. Более конкретно меня интересует всё, что связано с флагами: PORTCFG_EVOUT_PC7_gc, ///< Event Channel 7 Output on Port C pin 7 PORTCFG_EVOUT_PD7_gc, ///< Event Channel 7 Output on Port D pin 7 PORTCFG_EVOUT_PE7_gc, ///< Event Channel 7 Output on Port E pin 7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tiro 0 15 сентября, 2013 Опубликовано 15 сентября, 2013 · Жалоба Данные возможности относятся ко всему семейству XMega, т.к. контроллер "Event System" представляет особенность новой архитектуры. Да и журнальная статья, ссылку на которую я привела, относится к рекламе возможностей всей линейки XMega, а не какого-то отдельного экземпляра. Но лично у меня флагман :) этой серии - ATxmega128A1. Глянул дейташит на 256А3. Там обещают в качестве Ивент Систем некий 8-канальный мультиплексор, который в обход контроллера прерываний передает сигналы из одного аппаратного блока в другой, но с задержкой до 2 МЦ. То есть мне смотреть возможность передачи сигналов между двумя ножками разных портов? Или есть другая, конкретная задача? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 15 сентября, 2013 Опубликовано 15 сентября, 2013 · Жалоба Глянул дейташит на 256А3. Там обещают в качестве Ивент Систем некий 8-канальный мультиплексор, который в обход контроллера прерываний передает сигналы из одного аппаратного блока в другой, но с задержкой до 2 МЦ. То есть мне смотреть возможность передачи сигналов между двумя ножками разных портов? Или есть другая, конкретная задача? Задача интересует в самом общем виде. Но, видя вашу склонность к конкретизации :), предложу задачу моргания светодидом 1 раз в секунду (сигнализируя о работоспособности устройства) не прибегая к прерываниям! Очевидно, что "задержка до 2 МЦ" в этом деле несущественна. Например, при тактовой частоте 32 МГц запускаем таймер : TCC0.PER = 15625; // 32000000 Hz / 1024 / 2 = 15625 (без остатка!) = 1 Гц ровно TCC0.CTRLA = TC_CLKSEL_DIV1024_gc; Теперь отправим признак переполнения в 7-ой канал "Event System Controller": EVSYS.CH7MUX = EVSYS_CHMUX_TCC0_OVF_gc; // channel 7 <- Overflow от таймера ТСС0 Ну, а дальше-то что? Как мне теперь событие 7-го канала превратить во что-то реальное? Есть у меня флаг PORTCFG_EVOUT_PE7_gc, ///< Event Channel 7 Output on Port E pin 7 якобы способный вывести событие на пин PE7, но что для этого надо сделать? Куда этот флаг пихать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться