Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Коллеги посоветуйте контроллер.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
MALLOY2
Задача. 2 канала ШИМ для управления 2 DC двигателями. 4 канала ШИМ для генерации синусоиды частотой 20-100 Гц. 8 каналов АЦП 10-12 разрядов 10 кГц дискретизация. Под эти требования попадают многие МК, но мне не приходилось работать с ШИМ на АРМах и нехотелось бы на грабли наступить.
DASM
Если ничего не изменилось в новых, то старые LPC не пойдут - там все каналы ШИМ на одной частоте (заданной юзером) работают. (All PWM outputs will
occur at the same repetition rate) . В новых как - не знаю, но обратите внимание на этот пунктик. А вот SAM - пойдут. Может я конечно и запамятовал уже чего, не сильно надо было.
sensor_ua
Бродил намедни по сайту Luminary Micro - есть у них звери, проточенные под управление движками. Не смотрел. Взгляните - авось лучше dsPIC
MALLOY2
Цитата(sensor_ua @ Oct 14 2007, 20:46) *
Бродил намедни по сайту Luminary Micro - есть у них звери, проточенные под управление движками. Не смотрел. Взгляните - авось лучше dsPIC


dsPIC - идет лесом smile.gif
aaarrr
А TMS320F28xx как вариант не рассматривали? ШИМ, АЦП хороший на борту.
Muxa
сейчас работаю с F2808. проц замечательный. много исправлений улучшений даже по сравнению с А2810/11/12, хотя те позиционируются как более мощные.
достоинства:
- 100МГц не более 600мВт. реально ~300. -40..+105С стандарт, -40..+125С промышленная версия.
- оч. хороший PWM. есть модуль HPWM. вкратце,- там устроен кольцевой генератор, который запускается с каждым клоком и позволяет тюнить фронт ШИМа с точностью этого генератора, кажется 150 пикосекунд.
- заточен на управление обмотками двигателя. есть библиотеки управления. генерация высококачественного звука (HPWM)
- быстрый и точный 12р АЦП со сдвоенной схемой выборки/хранения. вы можете фиксировать 2 аналоговых входа одновременно (важно в контуре тока обмоток двигателя). без особых трудностей можно получить точность в 10бит. легко организовать синхронную работу АЦП и ШИМ. 12бит тоже реально когда остальные устройства в суспенде. имеется аналоговый мультиплексер 2х8, пул регистров результатов, секвенсер последовательности преобразований...
- хорошая, продвинутая архитектура другой переферии.
- много халявного софта, но не факт что нужный вам будет достаточно зрелым. море документации по программированию (хотя это же и недостак, т. к. трудно разобраться что к чему относится)
недостатки:
- раза в 4 дороже чем можно было бы представить, хотя сопоставить просто не с чем. очень "жадные" дистрибюторы. т. е. если TI говорит, что проц. стОит скажем $15, то вам его продадут за 30 и евро. только в этом году заработала техподдержка пользователей в России.
- оч. плохая документация по аппаратной части. т. е. плохая, это слабо сказано. её просто нет, а то что есть может разработчика ввести в заблуждение. док. писали программисты. нельзя верить ни одной функциональной схеме. они выдуманы программистами, а некоторые нарисованы для отмазки. мне понадобилось связываться с техподдержкой чтобы узнать длину регистра JTAG, чтобы использовать один разъём для проца и Alter-ы. в русской службе работают не технари. они задолбают всякими анкетами и опросами, потом ещё 5 раз позвонят,- помогло ли решение. при передаче вопроса специалисту обязательно его переврут. занимает сия процедура неделю или 2. так что пользователи AVR будут просто в шоке после док-ии от Атмела.
- своя уникальная архитектура и система команд. безальтернативность среды разработки. огромная (иногда не подъёмная) стоимость ПО, если Вам важна лиц. чистота. кроме того, вам придётся изучить ассемблер, хотя бы по диоганали, поскольку нет другого способы правильно инициализировать устройства, как изучить техасовский софт (см. недостаток выше). без реверс инженеринга при токой док-ии не обойтись.
- слишком много ног. плоский корпус на 100 ног или микроБГА. недостаточно возможностей переназначения выводам функционала. любая ошибка в назначении выводов повлечёт переразводку платы. если LPC и SAM легко развести на 2х сторонах, то F280X потребует 4х слоёв однозначно. иначе неминуем перекос кристалла по питанию и как следствие, неустойчивая работа и плохая работа АЦП.
- оч. дорогие прототипы, которые не позволят вам прошить целевую плату. для этого специально предприняты меры. монопольная, экстремально высокая цена JTEG эмулятора/программатора. как альтернатива, наши устаревшие устройства, например, от СКАН, которые к тому же без гарантии и не поддерживают текущие среды разработки. тех поддержки нет. (хороший но) глючный отладчик. надо быть готовым перегружать Windows каждые пол часа. хотя, как повезёт )))
alexander55
Цитата(DASM @ Oct 14 2007, 19:58) *
Если ничего не изменилось в новых, то старые LPC не пойдут - там все каналы ШИМ на одной частоте (заданной юзером) работают. (All PWM outputs will

Для ШИМ нужна как раз одна входная частота. В LPC ШИМы сделаны безукоризненно.
PS. Если надо 12 разрядов АЦП обратите внимание на TI.
AlexandrY
По моему самое время переходить на мультипроцессорность.
Ставите вместе STM32 и STR91x и где-то за 14$ практически в розницу получаете
16-и канальный 12-и битный АЦП с одновременным сэмплированием 2-х каналов на частоте не менее 1 МГц.
8-и канальный 10-и битный АЦП 1 МГц
В сумме не менее 8-и независимых ШИМ-ов, 2-а специальных модуля управления 3-х фазными движками.
И это не говоря уже о 6-и USART, 4 SPI, 2 CAN, 2 USB, 2 RTC, 1 Ethernet и суммарной производительности около 170 MIPS.
Связать 2-а чипа очень легко по SPI на скрости до 18 Mbit/s.
Используя DMA процесс взаимодействия можно превратить просто в запись-чтение взаимно отраженных областей памяти.
Программируются через один и тотже JTAG адаптер. Один и тотже компилер.
Короче, дальше рекламировать не буду, а то давка начнется biggrin.gif

Цитата(MALLOY2 @ Oct 14 2007, 18:14) *
Задача. 2 канала ШИМ для управления 2 DC двигателями. 4 канала ШИМ для генерации синусоиды частотой 20-100 Гц. 8 каналов АЦП 10-12 разрядов 10 кГц дискретизация. Под эти требования попадают многие МК, но мне не приходилось работать с ШИМ на АРМах и нехотелось бы на грабли наступить.
DASM
Цитата(alexander55 @ Oct 15 2007, 09:21) *
Для ШИМ нужна как раз одна входная частота. В LPC ШИМы сделаны безукоризненно.

В данном случае - как он описан - пойдут. Для других применений (не моторных) - могут и не пойти. Если мне надо пара ШИМ для подобия DDS как и у автора и пара ШИМ для двутонального генератора для пищалка - такая "гибкость и безукоризненность" ну никак не катит. Впрочем я только обратил внимание автора на этот момент.


Цитата(AlexandrY @ Oct 15 2007, 09:37) *
По моему самое время переходить на мультипроцессорность.

Зачем плодить сущности без надобности?
alexander55
Цитата(AlexandrY @ Oct 15 2007, 09:37) *
По моему самое время переходить на мультипроцессорность.
Ставите вместе STM32 и STR91x и где-то за 14$ практически в розницу получаете
16-и канальный 12-и битный АЦП с одновременным сэмплированием 2-х каналов на частоте не менее 1 МГц.

Я бы сказал по другому. Самое время применять связки FPGA-uC. Это гибче и нет тормозов.
AlexandrY
Насчет FPGA типичное заблуждение.
FPGA гибкие только на бумаге.
Разработка на FPGA требует отдельных тулсов, отдельных навыков, большую трудоемкость.
Также почти уверен, что разработка на FPGA тех же модулей универсальных таймеров которые применены в ARM-ах обойдется в очень приличную сумму, а доступ к ним в любом случае будет медленнее.
Лучшие процессорные ядра реализованные в FPGA чуть ли не в 2-а раза медленнее обычных, а стоимость выше чуть ли не на порядок.
Так что FPGA никаким боком для достаточно универсальных, законченных, бюджетных дивайсов не подходят.



Цитата(alexander55 @ Oct 15 2007, 10:28) *
Я бы сказал по другому. Самое время применять связки FPGA-uC. Это гибче и нет тормозов.
alexander55
Цитата(AlexandrY @ Oct 15 2007, 11:45) *
Так что FPGA никаким боком для достаточно универсальных, законченных, бюджетных дивайсов не подходят.

Для бюджетных девайсов согласен.

Вариант с FPGA-uC универсальнее по следующим причинам:
1. содержит все функции от uC
2. переконфигурация выводов за счет FPGA
3. расширение количества выводов по отношению к uC
3. быстрые алгоритмы, требующие большой загрузки uC, реализуются аппаратно в FPGA
4. универсальность разработанных плат из-за п.2.
и т.д. и т.п.
PS. Насчет гибкости: в FPGA встраивают процессорные ядра без больших проблем. Пусть работать с uC удобнее, чем с доморощенным ядром. Но это дело времени. Раньше это было фантастикой, а сейчас реальность. Толи еще будет. biggrin.gif
AlexandrY
Боюсь, что ничего не будет.

После того как FPGA поставлен на PCB пространства для маневра остаеться очень мало. Не сделаете же вы входные линии на которые уже разведены цепи вдруг выходами. Или линии сидящие на шине процессора вдруг линиями последовательного интерфейса.
Максимум что сможете это исправить внутренние ошибки IPcore или перекомпоновать внутреннюю архитектуру IPcore при этом будете уже жестко сдавлены внешним обрамлением FPGA.
Опять же перед вами встает задача изобретения велосипеда, а именно эффективного коммуникационного канала к многочисленным IPcore в FPGA. Что-то типа AHB, и тут уже можно быть увереным FPGA будет в пролете, точнее девелопер взявшийся на голом месте такое сваять на дешевом FPGA.
Решение с дополнительным uC переплюнет по универсальности решения на FPGA в действительно универсальных и законченных дивайсах.
Бестолковые KIT-ы c частоколом голых пинов в расчет не берутся
Уже с десяток лет слушаю как FPGA заменят процы. Это достаточный срок чтобы перестать верить в эту байку. sad.gif

Цитата(alexander55 @ Oct 15 2007, 13:06) *
Для бюджетных девайсов согласен.

Вариант с FPGA-uC универсальнее по следующим причинам:
1. содержит все функции от uC
2. переконфигурация выводов за счет FPGA
3. расширение количества выводов по отношению к uC
3. быстрые алгоритмы, требующие большой загрузки uC, реализуются аппаратно в FPGA
4. универсальность разработанных плат из-за п.2.
и т.д. и т.п.
PS. Насчет гибкости: в FPGA встраивают процессорные ядра без больших проблем. Пусть работать с uC удобнее, чем с доморощенным ядром. Но это дело времени. Раньше это было фантастикой, а сейчас реальность. Толи еще будет. biggrin.gif
asen
А кто смотрел на ситемы на кристале там не большая плисс и проц на одном чипе там мона скрутить что угодно
alexander55
Цитата(AlexandrY @ Oct 15 2007, 17:01) *
Боюсь, что ничего не будет.

После того как FPGA поставлен на PCB пространства для маневра остаеться очень мало.
...
Решение с дополнительным uC переплюнет по универсальности решения на FPGA в действительно универсальных и законченных дивайсах.
Бестолковые KIT-ы c частоколом голых пинов в расчет не берутся
Уже с десяток лет слушаю как FPGA заменят процы. Это достаточный срок чтобы перестать верить в эту байку. sad.gif

Вы не правы. Раскажу на примере проекта, который я сдал заказчикам 2 месяца назад.
Предистория такова. НИИ, не буду его называть, несколько лет разрабатывал систему управления (но ничего путного не сделал), затем каким-то странным способом они все подписали smile.gif (одна установка как-то работала через пень-колоду). Заказчикам скинули какой-то левак по документации. Механика, гидравлика, датчики и исполнительные механизмы - это реально было. Все остальное туман. Заказчик захотел повторить - в НИИ сказали платите деньги, мы вам разработаем. sad.gif Сказка про белого бычка.
Кидалово обычное.

Заказчики знали моего шефа (он спец по механике, гидравлике) и он предложил мне разработать систему управления. У нас есть классный разводчик ПП и конструктор. Шеф взял на себя согласования, комплектацию, изготовление и общее руководство. Это было предложение от которого трудно было отказаться по финансовым соображениям.

Когда я его начинал, не было ТЗ и ясности (ни по количеству входов-выходов, ни по алгоритмам управления, ни поразрядностям АЦП и т.д.). Чтобы не сорвать сроки всю документацию требовалось сделать быстро (схемы, разводка печатных плат, стенд для проверки и согласование ТЗ с заказчиком, чтобы он потом не наезжал). Наработки у меня по развязанным адаптерам связи, по PLC, по выносным пультам дистанционного управления, по программному обеспечению были.

Вот такая ситуация вкратце. Я сделал тупо каналы связи с uC, ADC c uC, а все сигналы дискретного типа в ПЛИС. К ПЛИС подключил внешние входы, выходы, силовые выходы, 12-разрядные ADC (внешний 8-канальный), конфигураторы и т.д. и т.п

В результате 5 установок сдали на ура в августе комиссии военных из Москвы. На платах ни одной перемычки. Заказчик заказал еще 5 штук. На новых контроллерах избыточные элементы уже не устанавливали.
Делать на нескольких uC контроллеры тоже можно было, но надо иметь четкое ТЗ (иначе возможны перемычки на платах).
AlexandrY
Типичный сценарий, но вы остановились на полпути.

Я сам в основном такими же проектами занимаюсь. И тоже никогда еще не получал полного ТЗ.
Однако я в плане масштабируемости системы закладываю гороздо больше возможностей.

Я резервирую коммуникационные каналы и не ограничен в количестве добавляемых входов-выходов.
Вы же ограничены количеством ног своей ПЛИС (речь наверно идет о CPLD) причем на ней вы не сделаете ни CAN ни Ethernet ни АЦП.
Покупаете вы свою ПЛИС за несколько баксов.
Я за такие же деньги ставлю STM32, получаю дополнительно CAN, I2C, USB, ADC, PWM, могу легко гальваноизолировать процессоры друг от друга, повышаю общую пролизводительность системы.
Сопроцессор может делать сложную предобработку сигнала, скажем считать RMS, гармоники, детектировать огибающие. Т.е. реально распределяю нагрузку между процессорами и повышаю общую производительность системы.
Вы же с вариантом с CPLD все по прежнему нагружаете на один проц и по сути возможностей масштабирования не получаете.
Т.е. есть, если ваш заказчик скажет завтра что ему надо в 10-ть раз больше разных входов-выходов и более быстрых, то у вас видимо будет очень большая проблема, практически новый проект.

Вашу проблему с перемычками не понял. Если речь идет о тюнинге после обнаружения схемных ошибок, то не вижу как тут могут помочь CPLD? Ошибки то возникают по всей схеме, а не только возле ног CPLD.






Цитата(alexander55 @ Oct 16 2007, 09:25) *
Когда я его начинал, не было ТЗ и ясности (ни по количеству входов-выходов, ни по алгоритмам управления, ни поразрядностям АЦП и т.д.). Чтобы не сорвать сроки всю документацию требовалось сделать быстро (схемы, разводка печатных плат, стенд для проверки и согласование ТЗ с заказчиком, чтобы он потом не наезжал). Наработки у меня по развязанным адаптерам связи, по PLC, по выносным пультам дистанционного управления, по программному обеспечению были.[/size]
Вот такая ситуация вкратце. Я сделал тупо каналы связи с uC, ADC c uC, а все сигналы дискретного типа в ПЛИС. К ПЛИС подключил внешние входы, выходы, силовые выходы, 12-разрядные ADC (внешний 8-канальный), конфигураторы и т.д. и т.п

Делать на нескольких uC контроллеры тоже можно было, но надо иметь четкое ТЗ (иначе возможны перемычки на платах).
zltigo
Цитата(AlexandrY @ Oct 15 2007, 10:45) *
Насчет FPGA типичное заблуждение.

Да другие навыки, да не похоже... Но с другой стороны дабы не отстать (вспомните свое недавний пост по выбору ARM7 smile.gif )надо идти именно таким путем.
Наращивание числа разнотипных контроллеров для получения удачной комбинации периферии смотрится более искусственно sad.gif
Цитата
Так что FPGA никаким боком для достаточно универсальных, законченных, бюджетных дивайсов не подходят.

С универсальностью проблем нет, по цене - моща растет цена падает. На уровне единиц баксов уже для привычной (но заточенной под себя любимого и с дополнительными наворотами) контроллерной периферии делается все.




Цитата(AlexandrY @ Oct 15 2007, 16:01) *
Уже с десяток лет слушаю как FPGA заменят процы. Это достаточный срок чтобы перестать верить в эту байку. sad.gif

Не заменят в ближайшем будующем, но речь идет о комбинации uC+FPGA, а это уже сегодняшний день.
alexander55
Цитата(asen @ Oct 16 2007, 06:34) *
А кто смотрел на ситемы на кристале там не большая плисс и проц на одном чипе там мона скрутить что угодно

Поддерживаю, за одним добавлением : очень заморочно только. smile.gif

Цитата(AlexandrY @ Oct 16 2007, 11:05) *
Вашу проблему с перемычками не понял. Если речь идет о тюнинге после обнаружения схемных ошибок, то не вижу как тут могут помочь CPLD? Ошибки то возникают по всей схеме, а не только возле ног CPLD.

Вот тут Вы и увидели суть.
Перекоммутация делается не перемычками, а assign пинов на ПЛИС. smile.gif
PS. zltigo, с запозданием правда, с днем рождения. Мои наилучшие пожелания.
shahr
Цитата(MALLOY2 @ Oct 14 2007, 18:44) *
Задача. 2 канала ШИМ для управления 2 DC двигателями. 4 канала ШИМ для генерации синусоиды частотой 20-100 Гц. 8 каналов АЦП 10-12 разрядов 10 кГц дискретизация. Под эти требования попадают многие МК, но мне не приходилось работать с ШИМ на АРМах и нехотелось бы на грабли наступить.


вот к этим присмотритесь, если сроки не поджимают:
http://www.standardics.nxp.com/literature/...917.lpc2919.pdf
через пару недель выложим AN по управлению двигателями.
koyodza
Цитата(MALLOY2 @ Oct 14 2007, 16:44) *
Задача. 2 канала ШИМ для управления 2 DC двигателями. 4 канала ШИМ для генерации синусоиды частотой 20-100 Гц. 8 каналов АЦП 10-12 разрядов 10 кГц дискретизация. Под эти требования попадают многие МК, но мне не приходилось работать с ШИМ на АРМах и нехотелось бы на грабли наступить.

Это вполне реализуемо на одном STR91
2 канала ШИМ спокойно делаются на модуле МС (у них будет общая частота, но скважность меняется отдельно), остальные 4 ШИМ - на 4 таймерах. Для системного тика можно использовать один из таймеров (если подойдет частота), либо МС
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.