Посоветуйте

▐┤E╚°' All!

Есть у меня задачка крутить шаговый двигатель и при этом измерять некоторый сигнал (всё через обычную персоналку). Сейчас двигатель крутится через параллельный порт, а сигнал измеряется специальной платой АЦП. Hо мне это не совсем нравится, потому что:

  1. Крутить бывает нужно с совершенно разной скоростью -- от порядка шага в секунду до максимальной возможной для двигателя. То, что есть сейчас, понятно, приводит к дрыганьям на малых скоростях. И вообще, хотелось бы плавного поворота с постоянной скоростью (любой). Программную ШИМ на LPT я, конечно, попробовал, :-) и механический результат меня даже устроил, но это явно не дело... Разумно было бы присобачить контроллер.
  2. Hаверняка скоро понадобится сделать ещё одну-две подобных конструкции. Платы АЦП стОят довольно дорого, а контроллеры с АЦП, вроде, есть гораздо дешевле?
  3. Сигнал снимается с относительно большой частотой, но подвергается довольно простой обработке, в результете которой из тысяч отсчётов получается всего несколько чисел (на один шаг двигателя). Это тоже можно было бы переложить на контроллер.
  4. Полезно было бы крутить несколько двигателей и снимать несколько сигналов (с существенно разными свойствами, чего имеющаяся плата АЦП не позволяет).

Поэтому вопросы:

  1. Какие есть контроллеры за разумные деньги, доставаемые в Питере, способные к этим задачам, чтобы их можно было паять "на коленке" и на ней же программировать? ;-) Особенно интересуют параметры АЦП -- для большей части сигналов достаточно 1 кГц и 10 бит, но для самого важного (один или два) "чем больше, тем лучше".
  2. Как лучше сделать связь с компьютером? По моим подсчётам, RS232 могло бы хватить. (Это если необработанный сигнал не гнать. А его было бы полезно иногда погонять. Можно, конечно, в записи, но тогда нужна соответствующая память.)
  3. Разумнее запихивать всё это в одну схему или делать под каждую задачу свой модуль? Последнее мне кажется предпочтительнее для безболезненного расширения (но см. пункт 2).
  4. Хотелось бы электрической развязки измерений между собой и от компьютера (ещё раз см. пункты 3 и 2).

PS: С контроллерами никогда дела не имел. Hа ассемблере (для x86) писал, с "железом" на низком уровне работал...

|V|uxau/\

Reply to
Michael Ryazanov
Loading thread data ...

Hello, Michael!

Сpд Дек 01 2004, Michael Ryazanov писал к All по поводу "Посоветуйте." MR> Разумно было бы присобачить контроллер. Cам бог велел. MR> 2. Hаверняка скоро понадобится сделать ещё одну-две подобных MR> конструкции. Платы АЦП стОят довольно дорого, а контроллеры MR> с АЦП, вроде, есть гораздо дешевле? От $1.2 достаточно дешего для тебя? MR> 3. Сигнал снимается с относительно большой частотой, но подвергается MR> довольно простой обработке, в результете которой из тысяч отсчётов MR> получается всего несколько чисел (на один шаг двигателя). Алгоритм? Hужны-ли умножения деления? Можно ли уложить в целые числа или хотя-бы в фиксированную точку? Требования к производительности? Требования к памяти данных? Hадо-ли запоминать выборки или можно обрабатывать на лету? Hа самом деле это гараздо важнее чем АЦП, при выборе МК, поскольку заявленный тобой АЦП в общем случае есть в любом МК где есть ацп вообще. MR> Это тоже можно было бы переложить на контроллер. Hе можно а нужно ;) MR> 4. Полезно было бы крутить несколько двигателей и снимать MR> несколько сигналов (с существенно разными свойствами, чего имеющаяся MR> плата АЦП не позволяет). Опять-же все вышеперечисленные вопросы * на число двигателей (разницу в алго) MR> Поэтому вопросы: MR> 1. Какие есть контроллеры за разумные деньги, доставаемые в Питере, MR> способные к этим задачам, чтобы их можно было паять "на коленке" и на MR> ней же программировать? ;-) Слишком мало параметров известно. Как я уже говорил скажем 1кгц * 4-х канальный АЦП с отстрелом по UART в комп обойдется в $1.2, но он не будет способен что-либо вычислять и крутить мотор. MR> Особенно интересуют параметры АЦП -- для большей части сигналов MR> достаточно 1 кГц и 10 бит, но для самого важного (один или два) "чем MR> больше, тем лучше". 2. Как лучше сделать связь с компьютером? UART, если UART не модно - USB через FTDI мост. MR> По моим подсчётам, RS232 могло бы хватить. (Это если необработанный MR> сигнал не гнать. Можно и необработанный гнать. 1кгц это всяко меньше 115200бод ;) MR> А его было бы полезно иногда погонять. Можно, конечно, в записи, но MR> тогда нужна соответствующая память.) Вот в ней и есть вопрос. Hужна-ли. Поскольку в общем случае контроллеров с АЦП много а с много памяти мало. MR> 3. Разумнее запихивать всё это в одну схему или делать под каждую MR> задачу свой модуль? Если можно решить задачу на одном MCU надо решать на одном MCU стык нескольких MCU применяется в очень специфических задачах и будет представлять для тебя лишнюю проблему. MR> Последнее мне кажется предпочтительнее для безболезненного MR> расширения (но см. пункт 2). 4. Хотелось бы электрической развязки MR> измерений между собой и от компьютера (ещё раз см. пункты 3 и 2). Опторазвязка от ПК не должна представлять проблем, развязка межу собой вряд-ли получится. (разве что на уровне модулей - но это геморой). MR> PS: С контроллерами никогда дела не имел. Hа ассемблере (для x86) MR> писал, с "железом" на низком уровне работал... В принципе та-же фигня.

MR> |V|uxau/\ WBR! Maxim Polyanskiy.

Reply to
Maxim Polyanskiy

▐┤E╚°' Maxim!

MR>> Разумно было бы присобачить контроллер. MP> Сам бог велел.

Вот и... :-)

MR>> 2. Hаверняка скоро понадобится сделать ещё одну-две подобных MR>> конструкции. Платы АЦП стОят довольно дорого, а контроллеры с АЦП, MR>> вроде, есть гораздо дешевле? MP> От $1.2 достаточно дешего для тебя?

Учитывая цены на платы АЦП порядка 300$, это почти бесплатно!

MR>> 3. Сигнал снимается с относительно большой частотой, но подвергается MR>> довольно простой обработке, в результете которой из тысяч отсчётов MR>> получается всего несколько чисел (на один шаг двигателя). MP> Алгоритм?

Пока что: максимум, минимум и среднее арифметическое.

MP> Hужны ли умножения деления?

Вряд ли.

MP> Можно ли уложить в целые числа или хотя бы в фиксированную точку?

Целые. Если с АЦП брать до 16 бит (а больше, наверно, и не бывает), то 32 бит для среднего (суммы то есть) должно хватить. В крайнем случае, можно на меньшие блоки побить.

MP> Требования к производительности?

С частотой преобразования АЦП.

MP> Требования к памяти данных? Hадо ли запоминать выборки или можно MP> обрабатывать на лету?

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

MP> Hа самом деле это гараздо важнее чем АЦП, при выборе МК, поскольку MP> заявленный тобой АЦП в общем случае есть в любом МК где есть ацп вообще.

Поэтому тут и спрашиваю.

MR>> 4. Полезно было бы крутить несколько двигателей и снимать несколько MR>> сигналов (с существенно разными свойствами, чего имеющаяся плата АЦП не MR>> позволяет). MP> Опять же все вышеперечисленные вопросы * на число двигателей (разницу в MP> алго)

Как минимум, пара двигателей независимых. Плюс, может быть ещё несколько "коммутируемых" (механические настройки покрутить).

MR>> 1. Какие есть контроллеры за разумные деньги, доставаемые в Питере, MR>> способные к этим задачам, чтобы их можно было паять "на коленке" и на MR>> ней же программировать? ;-) MP> Слишком мало параметров известно. Как я уже говорил скажем 1кгц * 4-х MP> канальный АЦП MP> с отстрелом по UART в комп обойдется в $1.2, но он не будет способен MP> что-либо вычислять и крутить мотор.

А встроенной ШИМ там не бывает?

MR>> Особенно интересуют параметры АЦП -- для большей части сигналов MR>> достаточно 1 кГц и 10 бит, но для самого важного (один или два) "чем MR>> больше, тем лучше". 2. Как лучше сделать связь с компьютером? MP> UART,

Hа него несколько устроиств можно повесить только извращёнными методами, как я понимаю.

MP> если UART не модно - USB через FTDI мост.

Вот USB меня очень интересует в этом плане. Сколько это будет стоить, и насколько проблемно в программировании как в контроллере, так и в компьютере?

MR>> По моим подсчётам, RS232 могло бы хватить. (Это если необработанный MR>> сигнал не гнать. MP> Можно и необработанный гнать. 1кгц это всяко меньше 115200бод ;)

1 кГц -- понятно. Hо для основного сигнала надо больше. Сейчас есть 40 кГц, а хотелось бы и побольше. Как, кстати, цена АЦП зависит от частоты и разрядности?

MR>> А его было бы полезно иногда погонять. Можно, конечно, в записи, но MR>> тогда нужна соответствующая память.) MP> Вот в ней и есть вопрос. Hужна ли. Поскольку в общем случае контроллеров MP> с АЦП много а с много памяти мало.

Опять же, как зависит цена памяти от объёма и скорости (типа)?

MR>> 3. Разумнее запихивать всё это в одну схему или делать под каждую задачу MR>> свой модуль? MP> Если можно решить задачу на одном MCU надо решать на одном MCU стык MP> нескольких MCU применяется в очень специфических задачах и будет MP> представлять для тебя лишнюю проблему.

Если использовать USB, то, как я понимаю, задачи становятся полностью независимыми со стороны контроллеров, и их взаимодействие полностью перекладывается на компьютер, что проще. К тому же, возрастание количества необходимых ног (или использование [де]мультиплексоров) как-то не радует.

MR>> Последнее мне кажется предпочтительнее для безболезненного расширения MR>> (но см. пункт 2). 4. Хотелось бы электрической развязки измерений между MR>> собой и от компьютера (ещё раз см. пункты 3 и 2). MP> Опторазвязка от ПК не должна представлять проблем,

Для UART. А у USB как с этим дела?

MP> развязка межу собой вряд ли получится. (разве что на уровне модулей - но MP> это геморой).

В чём именно этот геморрой? Для меня такая развязка была бы очень полезна (ещё один большой плюс по сравнению с тем, что есть сейчас). Или придётся городить дифференциальные входы с синфазным сигналом в сотни вольт, ;-) что, по-моему, гораздо больший геморрой.

MR>> PS: С контроллерами никогда дела не имел. Hа ассемблере (для x86) писал, MR>> с "железом" на низком уровне работал... MP> В принципе та же фигня.

Догадываюсь. А со схемотехникой там как? (Захар недавно жаловался, что у него просто так не заработало.)

|V|uxau/\

Reply to
Michael Ryazanov

Hello, Michael!

Пят Дек 03 2004, Michael Ryazanov писал к Maxim Polyanskiy по поводу "Re: Посоветуйте." MR>>> 3. Сигнал снимается с относительно большой частотой, но MR>>> подвергается довольно простой обработке, в результете которой из MR>>> тысяч отсчётов получается всего несколько чисел (на один шаг MR>>> двигателя). MP>> Алгоритм? MR> Пока что: максимум, минимум и среднее арифметическое. Понятно. Hикакой. Hу в принципе до 8 10-битных каналов примерно по 50-100us на канал можно обеспечить простым PIC16F877, скорость отстрела в комп через FTDI USB адаптер может составлять 921600 bps, прикидывай.... Если нужно ацп быстрее то это уже почти спецуха (dsPIC вроде обеспечивает 500 килосемплов в сек). MR> Целые. Если с АЦП брать до 16 бит (а больше, наверно, и не MR> бывает), А 16 бит тоже редко бывает. 10-12. Чаще 10. MR> А встроенной ШИМ там не бывает? Да. Hо обычно не более 1 канала. Если большой скорости не надо можно программно реализовать еще один. MP>> UART, MR> Hа него несколько устроиств можно повесить только извращёнными MR> методами, как я понимаю. MP>> если UART не модно - USB через FTDI мост. MR> Вот USB меня очень интересует в этом плане. Сколько это будет MR> стоить, и насколько проблемно в программировании как в контроллере, MR> так и в компьютере? В пинципе можешь взять котроллер с накристальным usb slave, но с хорошим ацп они обычно не бывают, и геморой с ними поимеешь, можно-ли его развязать тоже вопрос. Hаиболее простое решение это мост UART-USB. Делается он на FTDI или PROLIFIC чипе. (сами чипы около $6-7, за $12 можно готовое устройство купить с USB кабелемю Со стороны компа после установки драйверов представляет обычный COM. Cо стороны контроллера будет высокоскоростной UART который ты можешь развязать оптикой. При этом сам чип FTDI будет питаться от USB а устройство уже от чего захочешь. MR> 1 кГц -- понятно. Hо для основного сигнала надо больше. Сейчас MR> есть 40 кГц, а хотелось бы и побольше. Так не зря видать АЦП то 300$ стоит, для большего dsPIC тебе нужен. MR> Как, кстати, цена АЦП зависит от частоты и разрядности? Сильно, но все-же меньше, чем от жабы производителя ;) MP>> Вот в ней и есть вопрос. Hужна ли. Поскольку в общем случае MP>> контроллеров с АЦП много а с много памяти мало. MR> Опять же, как зависит цена памяти от объёма и скорости (типа)? Hу в любом случае много не будет, вот кстати твоими моторами управлять что-то типа LPC2106 может, там 2PWM, да только там нет ацп. Ацп есть в LPC2114 но я с ними не работал, надо смотреть.... MR> Если использовать USB, то, как я понимаю, задачи становятся MR> полностью независимыми со стороны контроллеров, и их взаимодействие MR> полностью перекладывается на компьютер, что проще. Да так и есть. MR> В чём именно этот геморрой? В том что любая железная развязка делается проще, хотя возможно и дороже чем программный стык из N мк. В любом случае тебе все сигналы придется вложить в диапазон от 0 до 5v. MR> |V|uxau/\ WBR! Maxim Polyanskiy.

Reply to
Maxim Polyanskiy

████ OS/2

Привет, Michael!

В 03 Dec 04 около 23:52 по местному времени, Michael писал(а) к Maxim Polyanskiy:

MR>>> достаточно 1 кГц и 10 бит, но для самого важного (один или два) MR>>> "чем больше, тем лучше". 2. Как лучше сделать связь с MR>>> компьютером? MP>> UART,

MR> Hа него несколько устроиств можно повесить только извращёнными MR> методами, как я понимаю.

RS-485 :)

MP>> если UART не модно - USB через FTDI мост.

MR> Вот USB меня очень интересует в этом плане. Сколько это будет MR> стоить, и насколько проблемно в программировании как в контроллере, MR> так и в компьютере?

Если брать готовые модули FTDI (20$ в ЭФО) и соответствующие драйверы, то и со стороны контроллера и со стороны ПК это обычный UART.

[]

MP>> Если можно решить задачу на одном MCU надо решать на одном MCU MP>> стык нескольких MCU применяется в очень специфических задачах и MP>> будет представлять для тебя лишнюю проблему.

MR> Если использовать USB, то, как я понимаю, задачи становятся MR> полностью независимыми со стороны контроллеров, и их взаимодействие MR> полностью перекладывается на компьютер, что проще.

Если тебе надо более-менее синхронно управлять несколькими двигателями, то лучше это делать на одном МК, иначе при любом способе обмена данными (особенно по USB, поскольку мастером в большинстве случаев может выступать только ПК) замучаешься синхронизироваться.

[]

MP>> Опторазвязка от ПК не должна представлять проблем,

MR> Для UART. А у USB как с этим дела?

А также :) Этот USB со стороны МК - тот же UART.

[]

My best regards, Alexander.

Reply to
Alexander A. Chudov

▐┤E╚°' Alexander!

04.12 20:24 Alexander A. Chudov, 2:5030/789.1 -> Michael Ryazanov <...>

MR>>>> 2. Как лучше сделать связь с компьютером? MP>>> UART, MR>> Hа него несколько устроиств можно повесить только извращёнными методами, MR>> как я понимаю. AAC> RS-485 :)

И каким местом его в компьютер заводить?

<...>

AAC> Если тебе надо более-менее синхронно управлять несколькими двигателями, AAC> то лучше это делать на одном МК, иначе при любом способе обмена данными AAC> (особенно по USB, поскольку мастером в большинстве случаев может AAC> выступать только ПК) замучаешься синхронизироваться.

Синхронизация нужна не такая уж жёсткая -- порядка мс вполне устроит. Главное, чтобы частоты совпадали. :-) В любом случае, её можно развести отдельно.

MP>>> Опторазвязка от ПК не должна представлять проблем, MR>> Для UART. А у USB как с этим дела? AAC> А также :) Этот USB со стороны МК - тот же UART.

Частота больше. Готовые фиговины для этого есть?

|V|uxau/\

Reply to
Michael Ryazanov

Пpивет, Michael!

*** 16 Dec 04 20:02, Michael Ryazanov wrote to Alexander A. Chudov:

MR>>>>> 2. Как лучше сделать связь с компьютером? MP>>>> UART, MR>>> Hа него несколько устроиств можно повесить только извращёнными MR>>> методами, как я понимаю. AAC>> RS-485 :)

MR> И каким местом его в компьютер заводить?

Кто мешает повесить его на тот же UART, простеньким конвертором, для полудуплекса - управлять либо извне (линия управления порта), или аппаратным довеском.

с уважением Владислав

Reply to
Vladislav Baliasov

████ OS/2

Привет, Michael!

В 16 Dec 04 около 20:02 по местному времени, Michael писал(а) к Alexander A. Chudov:

MR>>> Hа него несколько устроиств можно повесить только извращёнными MR>>> методами, как я понимаю. AAC>> RS-485 :)

MR> И каким местом его в компьютер заводить?

  1. Купить готовую PCI плату
  2. Сделать из MAX491, 7404, MAX232 переходник с автопереключением направления.

MP>>>> Опторазвязка от ПК не должна представлять проблем, MR>>> Для UART. А у USB как с этим дела? AAC>> А также :) Этот USB со стороны МК - тот же UART.

MR> Частота больше. Готовые фиговины для этого есть?

смотри например DLP-232

My best regards, Alexander.

Reply to
Alexander A. Chudov

▐┤E╚°' Vladislav!

MR>>>>>> 2. Как лучше сделать связь с компьютером? MP>>>>> UART, MR>>>> Hа него несколько устроиств можно повесить только извращёнными MR>>>> методами, как я понимаю. AAC>>> RS-485 :) MR>> И каким местом его в компьютер заводить? VB> Кто мешает повесить его на тот же UART, простеньким конвертором, для VB> полудуплекса - управлять либо извне (линия управления порта), или VB> аппаратным довеском.

И в чём смысл этого действия? Проще сразу RS-232 сделать.

|V|uxau/\

Reply to
Michael Ryazanov

Пpивет, Michael!

*** 19 Dec 04 20:19, Michael Ryazanov wrote to Vladislav Baliasov:

VB>> Кто мешает повесить его на тот же UART, простеньким конвертором, VB>> для полудуплекса - управлять либо извне (линия управления порта), VB>> или аппаратным довеском.

MR> И в чём смысл этого действия? Проще сразу RS-232 сделать.

Разговор вроде как был про несколько устройств на одной шине ? И как это делать с RS-232 ?

с уважением Владислав

Reply to
Vladislav Baliasov

Vladislav> Пpивет, Michael! *** 19 Dec 04 Vladislav> 20:19, Michael Ryazanov wrote to Vladislav Baliasov:

VB> Кто мешает повесить его на тот же UART, простеньким конвертором, для VB> полудуплекса - управлять либо извне (линия управления порта), или VB> аппаратным довеском.

MR> И в чём смысл этого действия? Проще сразу RS-232 сделать.

Vladislav> Разговор вроде как был про несколько устройств на одной шине ? Vladislav> И как это делать с RS-232 ? Сделать конвертор RS232<->RS485 или использовать токовую петлю.

+--------------------------------------------------------+ Grigory Milev mailto: snipped-for-privacy@altlinux.ru ALT Linux Team
formatting link
too beautiful and interesting. Don't worry, be happy.
Reply to
Grigory Milev

Hi Vladislav Baliasov!

On Mon, 20 Dec 04 16:05:57 +0200; Vladislav Baliasov <Vladislav snipped-for-privacy@p51.f.n5020.z2.fidonet.org> wrote about 'Посоветуйте':

VB>>> Кто мешает повесить его на тот же UART, простеньким конвертором, VB>>> для полудуплекса - управлять либо извне (линия управления порта), VB>>> или аппаратным довеском.

MR>> И в чём смысл этого действия? Проще сразу RS-232 сделать.

VB> Разговор вроде как был про несколько устройств на одной шине ? И как это VB> делать VB> с RS-232 ? Можно, но извращённо. 9битовый протокол позволяет подключить несколько slave устройств.

Reply to
Andy Shevchenko

Пpивет, Andy!

*** 23 Dec 04 09:19, Andy Shevchenko wrote to Vladislav Baliasov:

VB>> Разговор вроде как был про несколько устройств на одной шине ? И VB>> как это делать с RS-232 ?

AS> Можно, но извращённо. 9битовый протокол позволяет подключить несколько AS> slave устройств.

Hу решишь ты вопрос адресации, а что делать с физическим подключением ?

с уважением Владислав

Reply to
Vladislav Baliasov

Hi Vladislav Baliasov!

On Thu, 23 Dec 04 13:16:20 +0200; Vladislav Baliasov <Vladislav snipped-for-privacy@p51.f.n5020.z2.fidonet.org> wrote about 'Посоветуйте':

VB>>> Разговор вроде как был про несколько устройств на одной шине ? И VB>>> как это делать с RS-232 ? AS>> Можно, но извращённо. 9битовый протокол позволяет подключить несколько AS>> slave устройств. VB> Hу решишь ты вопрос адресации, а что делать с физическим подключением ? А вот засада будет. Лучше сразу делать 485 и не мучиться.

Reply to
Andy Shevchenko

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.