Jump to content

    
Sign in to follow this  
osnwt

AT90PWM3

Recommended Posts

Трехфазный мотор постоянного тока в бездатчиковом режиме (brushless sensorless DC motor).

 

Апноут по такому мотору рассмотрен на первой странице сайта - [banned] - там есть все что нужно и ПИД регулирование по разным параметрам и конкретная схема устройства, есть и бессенсорное управление в апноутах со схожими номерами.

Edited by IgorKossak

Share this post


Link to post
Share on other sites
Я же ратую именно за чистоту перевода на наш с Вами родной язык и использование родных инженерных точных терминов а не уродского сленга.

Обсуждать тему перевода терминов не буду (я BLDC, кстати, и не переводил, а описал смысл устройства). Скажу только, что компания, в которой я работаю, занимается устройствами защиты высоковольтных распредсетей, в т.ч. трехфаных. Я занимаюсь, в том числе, и алгоритмами защит в какой-то степени, и что такое трехфазный переменный ток, прекрасно знаю. Компания работает на 90% на западный рынок, а потому исходный язык всей документации - английский. И я действительно понятия не имею, как правильно перевести многие из терминов - мне это просто не надо, а многие вещи на русский вообще переводятся криво. Скажем, мне понятнее Underfrequency (UF) protection, чем АЧР (автоматическая частотная разгрузка - разгрузка чего, почему...). Но это не важно в данной теме.

 

Апноут по такому мотору рассмотрен на первой странице сайта - [banned] - там есть все что нужно и ПИД регулирование по разным параметрам и конкретная схема устройства, есть и бессенсорное управление в апноутах со схожими номерами.

Говоря про аппноуты. Естественно, прежде чем что-то писать своё, надо было посмотреть то, что есть. Конечно, я это делал (хотя вопросы-то были не о реализации управления двигателем, а о совсем других вещах). По пунктам:

 

1) есть аппноут для ATmega*48. Там использованы внешние элементы для управления. Вариант терпимый, но не идеальный. Например, таким образом невозможно использовать asynchronous rectification, а попросту говоря (комментарии насчет слэнга отправляю в /dev/null) открытие нижнего транзистора полумоста в моменты PWM off для пропускания тока обмотки через транзистор, а не его диод (конечно, с заданным dead-time), что заметно снижает потери в виде тепла. AT90PWM3 это делать умеет, причем, аппаратно. Также многие вещи в этом аппноуте упрощены, и его можно брать за начальную основу, но потом серьезно дорабатывать.

 

2) есть аппноут на PWM3 с PID регуляторами для датчикового мотора. Хорошо, но момент старта там все равно надо дописывать. Хороший источник для того, чтобы разбираться с PID регулятором, но с таким же успехом (мне) проще написать это с нуля.

 

3) есть аппноут на PWM3 для sensorless двигателя. При всей кажущейся красоте (чего изобретать велосипед) советую посмотреть на то решение. Оно ведь кривое. Там использована внешняя плата с внешними компараторами и RC фильтрами для эмуляции датчиков Холла, что не есть правильно для конкретного применения. Это при том, что PWM3 имеет встроенные компараторы, которые при этом не используются.

 

На мой вопрос о причине такого решения Atmel ответила следующее:

 

We have not done, yet, the development of the sofware using the internal comparators.

The use of the internal comparators is possible but the developmment must be done according to the motor characteristics. And this development is tricky due to differences between starting phases and running phases.

We have provided, for the moment, the quickest solution.

Поэтому все те аппноуты имеют ограниченное применение. Я хочу написать своё решение, опираясь на теорию и даташит на контроллер. Ну, а почему именно PWM3? По таким причинам:

1) Она доступна мне и достаточно недорога (в сравнении с той же мегой 48-88-168);

2) Я имею средства разработки и отладки для AVR, и не хотел бы распыляться на другие контроллеры, если на то нет особой необходимости;

3) Теоретически, PWM3 позволяет очень эффективно реализовать коммутацию, оставив ресурсы на внешнюю логику. И при этом иметь полностью C код, что удобно для развития. Ну, а варианты с внешней логикой, и при том не идеальные, есть готовые. В том числе, на AT90S2313. Тоже работают, но ведь зачем-то выпускает фирма специализированный контроллер? Так почему бы его не использовать?

 

Безусловно, есть и другие варианты, но PWM3 меня полностью устраивает, если удастся решить проблемы, поднятые в первом сообщении этой темы. Пока Атмел из 4-х заданных вопросов ответил только на два (и ответ на второй не соответствует тому, что я вижу на макете), остальные обещает в течение недели проверить и сообщить. Ждем-с.

Share this post


Link to post
Share on other sites
Если не трудно, можно опубликовать то что ответил атмел?

 

>1) How to identify the device revision (A or B )?

 

Rev A is printed 90PWM3 and Rev B is printed 90PWM3B

 

>2) PSCnRB and PSCRV fuses.

Fuse works correctly, take care that under AVR studio a box checked means

programmed (it means logical 0).

 

Последнее утверждение не соответствует тому, что я вижу, правда, через AVROSP. Продолжаю переписку.

Share this post


Link to post
Share on other sites

Если мне не изменяет склероз мегу 48 брали летом по 0,90 $. Cейчас правда не вспомню в каких партиях. Так что насчет стоимости можно еще подумать.

Насчет предварительности даташитов - это нормально. Например на SAM все даташиты такие, хотя на sam7s уже ревизия E появилась.

Share this post


Link to post
Share on other sites
мне понятнее Underfrequency (UF) protection, чем АЧР (автоматическая частотная разгрузка - разгрузка чего, почему...).

 

 

Underfrequency (UF) protection - это защита на случай снижения частоты. Как-то не вяжется с АЧР.

 

Поэтому все те аппноуты имеют ограниченное применение.

 

Конечно апноут это пример а не обязательное руководство. Но применение внешних компараторов я считаю оправданым для серьезных мощностей особенно. Ведь в таких системах силовая часть обычно разнесена с платой контроллера.

 

Я имею средства разработки и отладки для AVR, и не хотел бы распыляться на другие контроллеры, если на то нет особой необходимости;

 

дак мега48 это AVR.

Share this post


Link to post
Share on other sites
Если мне не изменяет склероз мегу 48 брали летом по 0,90 центов. Cейчас правда не вспомню в каких партиях. Так что насчет стоимости можно еще подумать.

Мелкооптовая цена за 10Mhz версию в Москве - верю (см. efind.ru). Розничные цены на 20MHz - порядка 1.2-1.6. Мега48 не устраивает по объему памяти (контроллер программируемый с системой меню) и не имеет boot loader'а. Мега88 20MHz стоит уже около $2.25. AT90PWM3 у нас (не в Москве) покупали за $4.8. А в остальном - вот тут хорошо написано. Цитата:

 

На выствке в буржуинии показывают печку с мп управлением.

Наш Человек спрашивает - На чем сделано.

Ответ - крутой арм с кучей мегов озу и флэш.

Наш Человек - Так я это бы на пике сделал.

Ответ - Вы бы 1-2 месяца писали и отлаживали оптимизируя каждый кусочек.

A у нас конструктор за 1 день набросал схему и развел плату.

После изготовления. 0,5 дня програмист написал прогу на С и отладил.

Т.е. Либо вам как инженеру заплатить 5-10 штук зелёных - и получить изделие тиражом менее сотни штук в год при стоимости 100 зеленых. Либо в нашем случае заплатить конструктору 250 баксов и програмисту 150 и получить изделие стоимостью 400 баксов.

 

Простая арифметика цены, скорости, маштабируемости и издержек.

Рост скорости выполнения - уменьшение издержек.

Другое дело бешенные тиражи тысячами - но кто в России выпускает что-то (кроме телевизоров) тысячами. Единицы.

Поскольку стоит задача сделать в качестве хобби качественное изделие, не обязательно предельно дешевое, то хочется выбрать комплектовку, оптимально подходящую функционально. При этом разница цены в 2-3 бакса не имеет принципиального значения. Проект пока что некоммерческий, а потому такой подход вполне приемлем.

 

Я, пожалуй, больше не буду обсуждать то, что не является темой этого топика. Тема была: проблемы (если таковые есть) с конкретным микроконтроллером. Выбор же элементной базы под конкретное приложение - это совсем другой вопрос, который тут не обсуждался и даже не поднимался.

 

Конечно апноут это пример а не обязательное руководство. Но применение внешних компараторов я считаю оправданым для серьезных мощностей особенно. Ведь в таких системах силовая часть обычно разнесена с платой контроллера.

Для упомянутого применения максимум разноса - это две стороны печатной платы. Потому это не критично. При этом остальные проблемы (дополнительная внешняя логика и недостаточная гибкость) остаются.

 

дак мега48 это AVR.

Я говорил о специализированных микросхемах для управления двигателями, и при этом программируемых. У Атмела таковой только один - AT90PWM3 (1 и 2 я не считаю). Также есть у других производителей. См, к примеру, пример реализации на ST7MC1 в февральском номере Elektor Electronics.

 

Еще раз - я не спрашивал советов о выборе элементной базы - я говорил о ЧИПЕ. Всего лишь. Давайте не будем подменять тему. Если бы я хотел другого, то тема бы называлась "На чём лучше собирать контроллер BLDC?".

Share this post


Link to post
Share on other sites

Эх, как сейчас помню - в прошлом году делали инвертер на 15 КВт, так программист-интерфесник постоянно капал начальнику, что надо брать эту PWM3 и выкинуть нах мою mega16 (и желательно меня заодно, гы-гы). В тот раз я отстоял mega16, и вижу что не зря. Чувствую, что на PWM3 не только 15КВт не пошло бы, а вообще не закрутился бы...

 

osnwt, может нафиг его? Когда их аппноут появился, я в нём свою программу увидел почти один в один. Т.е. всё это спокойно реализуется на других АВРках, ну разве что не так изящно, потому что аппаратного power stage controller нету.

Share this post


Link to post
Share on other sites
В тот раз я отстоял mega16, и вижу что не зря. Чувствую, что на PWM3 не только 15КВт не пошло бы, а вообще не закрутился бы...

Судя по количеству странностей в Revision A чипа - вполне вероятно.

 

osnwt, может нафиг его? Когда их аппноут появился, я в нём свою программу увидел почти один в один. Т.е. всё это спокойно реализуется на других АВРках, ну разве что не так изящно, потому что аппаратного power stage controller нету.

Вполне возможно. Макет на то и макет, чтобы на практике сравнить преимущества и недостатки разных решений. У меня есть пока неопределенные сомнения в возможности качественно реализовать некоторые вещи без аппаратного PSC. Но дело в том, что на PWM3 можно ведь писать и без использования ее фич - как просто на мегу8. То есть, можно сравнить разные решения. Что я и хочу сделать. А там посмотрим.

Share this post


Link to post
Share on other sites
Но дело в том, что на PWM3 можно ведь писать и без использования ее фич - как просто на мегу8. То есть, можно сравнить разные решения. Что я и хочу сделать. А там посмотрим.

Keep us posted!

Share this post


Link to post
Share on other sites

Уважаемый osnwt,

 

не могли бы рассказать сообществу - изменилось ли Ваше отношение к AT90PWM3?

Предстоит делать макет управления двигателем и планирую использовать именно этот кристалл.

 

Что касается Вашей полемики..

1. Ошибочная инверсия бита управления в ИКД заказного кристалла коллегу-программиста верхнего уровня (он писал интерфейс обмена с периферией системы цифрового приемника) НИ сколько НЕ

смутила: перебросил 0 на 1 и пошел дальше отлаживать. Ему всего то надо было зайти в другую комнату

чтобы нам сказать - мол проверьте, ваш баг? НЕ стал :=) Красавец..

 

2. Касательно чистоты языка - я придерживаюсь позиции SpiritDance.

Рискну предположить - это не случай когда "Сompac находил очередную ошибку в Pentiume Intel" , проблема скорее в не адекватном восприятии интерфейса в Даташите, и тогда SpiritDance как раз прав - чем удачнее текст, тем адекватнее восприятие.

 

3. Ну и потом терпимость к мнению другого, какие тут обиды...

Share this post


Link to post
Share on other sites
не могли бы рассказать сообществу - изменилось ли Ваше отношение к AT90PWM3?

Запрос на support Atmel там так и повис.

 

Dear Mr Semyonov,

 

>1) How to identify the device revision (A or B)?

 

Rev A is printed 90PWM3 and Rev B is printed 90PWM3B

 

>2) PSCnRB and PSCRV fuses.

Fuse works correctly, take care that under AVR studio a box checked means

programmed (it means logical 0).

 

for questions

3) BOD and Aref. and

4) Amplified ADC conversions.

 

I'll try to check it this week and give you a feed back.

 

Best Regards

Eric Tinlot

Atmel AVR Technical Support

Обещанного так и не было сделано, запрос был молча закрыт.

 

А я просто купил кучу готовых импортных регуляторов для своих целей и забросил это дело. В случае с хоббийными вещами этот подход вполне работает, а неплохой китайский регулятор для двигателя стоил мне меньше, чем те же детали, купленные у нас в россыпную.

 

1. Ошибочная инверсия бита управления в ИКД заказного кристалла коллегу-программиста верхнего уровня (он писал интерфейс обмена с периферией системы цифрового приемника) НИ сколько НЕ

смутила: перебросил 0 на 1 и пошел дальше отлаживать.

Я был бы счастлив, если бы точно также устранялись и другие замеченные мной проблемы в кристалле. Например, проблема сброса контроллера при определенном (нужном мне как раз) сочетании BOD Level и референса АЦП, или же неработоспособность дифференциального входа АЦП. Так что ирония тут не вполне уместна, а кто-то еще говорит о терпимости к чужому мнению, которое в высказанном виде кроме легкой досады ничего не вызывает.

 

Ошибки в даташитах возможны. Проблема в том, что обычно в таких случаях выпускается errata и/или новая ревизия даташита, а не завешивается вопрос. Про проблемы, не имеющие workaround, я уже сказал. А выступать в качестве бета-тестера кристаллов мне что-то не хочется. Так что Вы имеете полную возможность им стать :-)

Share this post


Link to post
Share on other sites

судя по содержанию данной темы, нет в нашем сообществе ни одного разработчка, сделавшего контроллер для BLDC на PWM3? Не так ли? Если такие есть, откликнитесь.

Лично я в итоге, сделал такой на TMS320LF2407 -проблем не вызвало - тут встроенный шим генератор, и вообще все настроено на упралвение двигателями.

Но это совершенно другой уровень цены процессора и отладочных средств...

Share this post


Link to post
Share on other sites

bgc Вчера, 22:00
Лично я в итоге, сделал такой на TMS320LF2407


Почему в итоге? Была проблема выбора? Не могли бы пояснить?

И ешЕ.
это совершенно другой уровень цены процессора и отладочных средств...

Можете назвать оценку этих самых средств - С-компилятор, загрузчик, эмулятор,..
Если это был первый проект на TMS320 - то сколько времени потребовалось на то чтобы вдохнуть жизнь в
опытный образец??
Какие-то особенности TMS320 могли бы выделить по отношению к другим МК?

Например, известны ИС от FREESCALE SEMICONDUCTOR для управления двигателем, в них привлекает аппаратный DMA - чего нет скажем в AVR - но зато начинать с нуля :=).

Share this post


Link to post
Share on other sites

Поясняю.

В итоге, анализа датащитов и своих возможностей в течение двух подготовительных месяцев во время занятия другим проектами.

 

Фирменный JTAG с средой в 2000 году был куплен за 3000$ с лишним.

Сейчас есть отеченственный за 600$ - где то в форумах проскакивал.

Тогда я "вдохнул жизнь в первый" за 10 дней и за 3 месяца сдела первый серьезный проект на этом кристале.

 

После получения спаянной платы (на разработку платы ушло пара дней, но тут нет особой связи с BLDC - выбор комплектующих, упаковка в нужный мне корпус и т.п.).

Первый раз удалось завращать мотор через пару дней, после исправления нескольких ошибок, тоже не связанных собственно с BLDC.

Еще в плане тестированее платы в критических режимах, точная настройка защиты по току, от перегрева и подключение к сущестсвующей системе управления.

Но эти времена при условии хорошего опыта работы с этим процессором и при наличии готовых библиотек, обеспечивающих вывод на терминал, работу с сетью и т.п.

 

К недостаткам этого кристала можно отнести два: 1- большое потребление (что не важно при управлении двигателем большой мощности) и фиговая организация UART - при работе на единую шину или в режиме DMX 512 приходится извращаться чтобы обеспечить нормальную работу. В остальном процессор идеальный, баг - не описанных в ERRATA за 6 лет не обранаружил (в версии без буквы A натыкался).

Да и среда разработки последняя очень качественно сделана.

 

Цену на кристалл можно посмотреть на einfo.ru

 

Я уже подымал тему по поводу перехода на FREESCALE SEMICONDUCTOR, анализ ответов и моих познаний - для серьезных усройств безусловно TMS лучше.

 

В наше время я считаю правильнее заплатить лишние 10$ за процессор, чем пару недель оптимизировать код. Другой подход оправдан только на сериях от 10000шт, с требуемой себестоимостью в 20$. Пусть этим занимаются китацы. Они это настолько хорошо делают, что конкурировать с ними в этой области БЕСПОЛЕЗНО.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this