Страница 137 из 628
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 28, 2010 18:01:23
Inquirer
Доброе время суток всем.
Решил написать в этой теме, так как вопрос, в общем-то, мелкий
С программированием у меня хорошо, но для x86 и веба, а вот под МК никогда не писал. Разобраться разберусь, но в силу того, что не электронщик, подобрать необходимую аппаратную часть для меня проблема.
Мне нужно
подобрать самый простой микроконтроллер с минимум 3 АЦП (8-10 бит) 0-5В и 1 ЦАП (аналогичной разрядности) 0-5В. Частота 16, лучше 18 и выше МГц. Возможность перепрограммирования по com-порту после добавления соответствующей обвязки (max232 или оптопары?). С температурным диапазоном от -30 до +100 . PIC или AVR - без разницы, так как писать первый раз, предпочтений не сложилось ещё. Желательно максимально дешёвый и доступный из отвечающих этим требованиям (то есть не в ущерб им. Ну разве что с температурным диапазоном можно чуть поступиться)
Заранее спасибо.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 28, 2010 18:38:16
ibiza11
в восьмибитных AVR нет ЦАПа. только АЦП. причем АЦП фактически одно, но с мультиплексированием входных каналов.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 28, 2010 18:40:49
AI_Disable
Встроеный 8-битный ШИМ можно использовать как ЦАП. Под ваше описание описание подходит почти любой AVR, например ATtiny25. Только вот насчёт 100 градусов врятле...
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 28, 2010 18:45:51
Inquirer
ibiza11 писал(а):в восьмибитных AVR нет ЦАПа. только АЦП. причем АЦП фактически одно, но с мультиплексированием входных каналов.
Ну вот я и ищу микроконтроллер с ЦАП. Если бы мог корректно задать по этому поводу вопрос яндексу - спросил бы сначала у него. Но как-то сформулировать не могу нормальный запрос. Остаётся спрашивать у людей, которые этим занимаются - им проще объяснить, что мне нужно
AI_Disable писал(а):Встроеный 8-битный ШИМ можно использовать как ЦАП. Под ваше описание описание подходит почти любой AVR, например ATtiny25. Только вот насчёт 100 градусов врятле...
А как это? Можно ссылочку с примером использования ШИМ в качестве 8-битного ЦАП, чтобы я понял, о чём речь?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 28, 2010 19:32:54
AI_Disable
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 28, 2010 19:45:54
Gudd-Head
Inquirer писал(а):минимум 3 АЦП (8-10 бит) 0-5В и 1 ЦАП (аналогичной разрядности) 0-5В. Частота 16, лучше 18 и выше МГц.
Это вы такой шустрый ЦАП-АЦП хотите??? Тогда вам не МК нужен, а DSP
Inquirer писал(а):С температурным диапазоном от -30 до +100
Обычный диапазон -40...+80°С.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 28, 2010 20:17:15
Inquirer
Gudd-Head писал(а):Inquirer писал(а):минимум 3 АЦП (8-10 бит) 0-5В и 1 ЦАП (аналогичной разрядности) 0-5В. Частота 16, лучше 18 и выше МГц.
Это вы такой шустрый ЦАП-АЦП хотите??? Тогда вам не МК нужен, а DSP
Нет, это я такой шустрый МК хочу

Извиняюсь, если ввёл в заблуждение
Gudd-Head писал(а):Inquirer писал(а):С температурным диапазоном от -30 до +100
Обычный диапазон -40...+80°С.
Вполне хватит.
Спасибо. Я пока по яндексу лазал в поисках "использования ШИМ в качестве ЦАП" наткнулся ещё на некий ЦАП R2R. Какой способ лучше?
Какой МК лучше взять с учётом предыдущих требований, если делать ЦАП через R2R?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 28, 2010 20:24:36
AI_Disable
R2R будет работать в 256 раз быстрее, но ШИМ более линеен. Я пробовал воспроизводить звук обеими способами, с ШИМ качество лучше в разы и нужна всего одна нога, вместо восьми. Если же критично не качество, а скорость, то возьмите что-то вроде ATtiny26 и повесьте R2R.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 28, 2010 20:46:07
Inquirer
AI_Disable писал(а):R2R будет работать в 256 раз быстрее, но ШИМ более линеен. Я пробовал воспроизводить звук обеими способами, с ШИМ качество лучше в разы и нужна всего одна нога, вместо восьми. Если же критично не качество, а скорость, то возьмите что-то вроде ATtiny26 и повесьте R2R.
Ага.. Учтём.. А всё-таки, по контроллеру, с учётом нужд, в первом моём вообщении, что лучше взять? Я что-то по чипдипу глянул - ATTiny25 - 270р, Atmega16 - 310р , а разница в возможностях - ого-го! Я а некотором замешательстве

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 28, 2010 20:46:25
Gudd-Head
Inquirer , посмотрите в сторону SiLabs.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 28, 2010 21:10:19
AI_Disable
Чипдип о*уели, уже не раз обсуждалось, реальная цена тини25 - до 100руб. end of offtop

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт дек 28, 2010 21:37:52
Inquirer
Gudd-Head писал(а):Inquirer , посмотрите в сторону SiLabs.
По-быстрому посмотрел - сильная штука на первый взгляд. Но так как я не сильно разбираюсь, мне по спекам показалось, что у них либо перебор, либо недобор с нужным мне количеством АЦП и ЦАП. Видимо всё-таки на AVR или PIC буду расчитывать.
Кстати, а почему за PIC никто не пишет ничего?
AI_Disable писал(а):уже не раз обсуждалось, реальная цена тини25 - до 100руб. end of offtop
ЛС
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср дек 29, 2010 01:26:38
stas00n
Inquirer писал(а):
Мне нужно подобрать самый простой микроконтроллер с минимум 3 АЦП (8-10 бит)
Вряд ли такое возможно. В "простых" МК АЦП обычно один, просто его вход мультиплексируется на несколько выводов, т.е. в заданный момент времени можно оцифровать только один пин.
Inquirer писал(а):0-5В
А меньше не пойдет? Сейчас все чаще 3,3В питание и меньше, опорное напряжение обычно меньше напряжения питания либо равно ему.
Inquirer писал(а):
ЦАП (аналогичной разрядности) 0-5В. Частота 16, лучше 18 и выше МГц.
Частота чего? ЦАП или все же ядра? Если первое - то невозможно в "простом" МК, если второе - тактовая частота не очень объективный параметр, например AVR8 примерно вчетверо быстрее PIC16 при одинаковых тактовых частотах на регистровых операциях, вычислительную мощность на разных камнях вообще сравнивать довольно трудно, нужны какие-то объективные тесты типа MIPS/Mflops. Какую задачу предстоит решать? И какая все-таки нужна скорость ЦАП? (Возможно, хватит ШИМ, коих обычно имеется в изобилии + ФНЧ?).
Inquirer писал(а):
Возможность перепрограммирования по com-порту
Тогда нужно будет писать бутлоадер, в современных МК такая возможность обычно есть (исключая, конечно младшие PIC'и, tiny AVR ну и другие ненавороченные МК, которые принципиально не могут сами себя перешивать) отсутствие аппаратного USART также противопоказано, но такое встречается очень редко).
Inquirer писал(а):С температурным диапазоном от -30 до +100
Что-то дюже широко... "Бытовой" диапазон - 0...55 С; промышленный/военный - -40...+85С.
Inquirer писал(а):PIC или AVR - без разницы, так как писать первый раз, предпочтений не сложилось ещё. Желательно максимально дешёвый и доступный из отвечающих этим требованиям
На указанных МК свет клином не сошелся, есть STM8, MSP430, наконец, 32-битные камни на ядре cortex M0/M3 (NXP LPC1xxx, STM32 и др.), которые уже стоят дешевле некоторых 8-биток, я, например покупал пригоршню LPC1111 по 25 руб/шт. Уточняйте Вашу задачу.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср дек 29, 2010 02:52:51
Inquirer
stas00n писал(а):Inquirer писал(а):
Мне нужно подобрать самый простой микроконтроллер с минимум 3 АЦП (8-10 бит)
Вряд ли такое возможно. В "простых" МК АЦП обычно один, просто его вход мультиплексируется на несколько выводов, т.е. в заданный момент времени можно оцифровать только один пин.
Ох. Я имел в виду самый простой из поддерживающих перечисленные возможности.
Но сдаётся мне, что для начала стоит попробовать на мультиплексированных выводах. Возможно скорость устроит.
stas00n писал(а):
Inquirer писал(а):0-5В
А меньше не пойдет? Сейчас все чаще 3,3В питание и меньше, опорное напряжение обычно меньше напряжения питания либо равно ему.
Скорее всего не пойдёт. Опасаюсь, что масштабирование на диапазон 0-5В снизит и без того приблизительную точность расчёта выходного напряжения.
stas00n писал(а):Inquirer писал(а):
ЦАП (аналогичной разрядности) 0-5В. Частота 16, лучше 18 и выше МГц.
Частота чего? ЦАП или все же ядра? Если первое - то невозможно в "простом" МК, если второе - тактовая частота не очень объективный параметр, например AVR8 примерно вчетверо быстрее PIC16 при одинаковых тактовых частотах на регистровых операциях, вычислительную мощность на разных камнях вообще сравнивать довольно трудно, нужны какие-то объективные тесты типа MIPS/Mflops. Какую задачу предстоит решать? И какая все-таки нужна скорость ЦАП? (Возможно, хватит ШИМ, коих обычно имеется в изобилии + ФНЧ?).
Я выше писал, что имел в виду частоту ядра. Задача - успевать готовить данные для АЦП другого контроллера - родственника Intel 8096, который работает на частоте 18MHz.
stas00n писал(а):Inquirer писал(а):
Возможность перепрограммирования по com-порту
Тогда нужно будет писать бутлоадер, в современных МК такая возможность обычно есть (исключая, конечно младшие PIC'и, tiny AVR ну и другие ненавороченные МК, которые принципиально не могут сами себя перешивать) отсутствие аппаратного USART также противопоказано, но такое встречается очень редко).
ATTiny25 или 26 имеют такую возможность? По спекам, вроде, написано, но практики у меня вообще ещё не было. На всякий случай спрошу. Или лучше всё-таки Атмегу8 или 16 брать?
stas00n писал(а):Inquirer писал(а):С температурным диапазоном от -30 до +100
Что-то дюже широко... "Бытовой" диапазон - 0...55 С; промышленный/военный - -40...+85С.
Кхм. Есть ещё т.н. Automotive диапазон, который как раз -40..+125, но они, видимо совсем редко в наличии в магазинах. Думаю промышленный тоже сойдёт.
stas00n писал(а):Inquirer писал(а):PIC или AVR - без разницы, так как писать первый раз, предпочтений не сложилось ещё. Желательно максимально дешёвый и доступный из отвечающих этим требованиям
На указанных МК свет клином не сошелся, есть STM8, MSP430, наконец, 32-битные камни на ядре cortex M0/M3 (NXP LPC1xxx, STM32 и др.), которые уже стоят дешевле некоторых 8-биток, я, например покупал пригоршню LPC1111 по 25 руб/шт. Уточняйте Вашу задачу.
[/quote] Попробую уточнить. Нужно опрашивать 3 аналоговых датчика с диапазоном напряжений 0-5В и успевать обсчитывать(в обсчёте присутствует несколько операций умножения и деления) их так, чтобы обновлять результат расчёта на выходе ЦАП (0-5В) с частотой от 20kHz .
PS Извиняюсь за возможный оверквотинг.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср дек 29, 2010 03:38:29
stas00n
Честно говоря, мне не приходилось иметь дело с МК с несколькими АЦП, возможно такие и существуют, но порекомендовать ничего не могу.
Inquirer писал(а):Опасаюсь, что масштабирование на диапазон 0-5В снизит и без того приблизительную точность расчёта выходного напряжения.
Не понял, как это? Делитель напряжения, чтобы снизить входной сигнал до уровня не более опорного ну никак не повлияет на точность преобразования.
Inquirer писал(а):ATTiny25 или 26 имеют такую возможность? По спекам, вроде, написано, но практики у меня вообще ещё не было.
Нет, в тиньках не реализована инструкция STM (запись во flash память программ), следовательно перепрошивать сами себя они не могут. В даташите обычно в фичах пишут, что возможна перешивка бутлоадером, для указанных микрух такой фичи нет. Да и вообще-то для первого проекта не стоит сразу заморачиваться с бутлоадером, (я кстати для него еще не созрел, ни в одном проекте не применял ибо не нужно было). Это все-таки усложнение как железа, так и софта, плюс нужно софт для ПК писать. Лучше сначала реализуйте несколько проектов с программированием программатором
Inquirer писал(а):Нужно опрашивать 3 аналоговых датчика с диапазоном напряжений 0-5В и успевать обсчитывать(в обсчёте присутствует несколько операций умножения и деления) их так, чтобы обновлять результат расчёта на выходе ЦАП (0-5В) с частотой от 20kHz .
Опрашивать поочередно ведь можно? Входов АЦП обычно имеется в достатке. Успеете ли посчитать тоже от многого зависит - сложность выражения, разрядность, как оптимизируете код, будете ли использовать float математику. Если планируется много и часто умножать, лучше взять атмегу или PIC18 и старше (в них умножение реализовано аппаратно, за 1-2 такта), в аттини или PIC16 и младше умножение надо будет делать программно - это довольно длинные циклы. Реализация деления программная в большинстве МК - поэтому по возможности его стараются избегать.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср дек 29, 2010 03:44:35
stas00n
Да, забыл про ЦАП - если 20 кГц - то лучше внешний, - ШИМ не потянет, R-2R даст аховую точность, да и будет сложнее чем нормальный ЦАП прикрутить.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср дек 29, 2010 04:18:19
Inquirer
stas00n писал(а):Inquirer писал(а):Опасаюсь, что масштабирование на диапазон 0-5В снизит и без того приблизительную точность расчёта выходного напряжения.
Не понял, как это? Делитель напряжения, чтобы снизить входной сигнал до уровня не более опорного ну никак не повлияет на точность преобразования.
Нет-нет. Если вЫходной сигнал будет 0-3,3В , то его надо будет масштабировать на 0-5В . Я тут боюсь точность потерять.
stas00n писал(а):Нет, в тиньках не реализована инструкция STM (запись во flash память программ), следовательно перепрошивать сами себя они не могут. В даташите обычно в фичах пишут, что возможна перешивка бутлоадером, для указанных микрух такой фичи нет. Да и вообще-то для первого проекта не стоит сразу заморачиваться с бутлоадером, (я кстати для него еще не созрел, ни в одном проекте не применял ибо не нужно было). Это все-таки усложнение как железа, так и софта, плюс нужно софт для ПК писать. Лучше сначала реализуйте несколько проектов с программированием программатором
Ну, с бутлоадером-то мне всё-равно придётся делать, потому как прошивку надо будет обновлять, а программатора собственного у меня пока что нету (( Да и для ПК мне прогу пока что проще, чем для МК написать

Но возможно Вы правы. Первый проект стоит попроще сделать.
stas00n писал(а):Опрашивать поочередно ведь можно? Входов АЦП обычно имеется в достатке. Успеете ли посчитать тоже от многого зависит - сложность выражения, разрядность, как оптимизируете код, будете ли использовать float математику. Если планируется много и часто умножать, лучше взять атмегу или PIC18 и старше (в них умножение реализовано аппаратно, за 1-2 такта), в аттини или PIC16 и младше умножение надо будет делать программно - это довольно длинные циклы. Реализация деления программная в большинстве МК - поэтому по возможности его стараются избегать.
Думаю, поочерёдно вполне возможно опрашивать. Выражение в пределах 2-3 умножений и одного деления. В знаменателе переменная, поэтому ещё предстоит подумать, как это красиво обставить. Использовать либо float математику, либо, подтягивая до целых, использовать 16-битные операнды.
stas00n писал(а):Да, забыл про ЦАП - если 20 кГц - то лучше внешний, - ШИМ не потянет, R-2R даст аховую точность, да и будет сложнее чем нормальный ЦАП прикрутить.
А до какой частоты стоит использовать ШИМ?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср дек 29, 2010 11:07:53
warrior2031
Программирую 1887ВЕ1У отечественный аналог atmega8535.
Используемая программа avreal без оболочки. Программатор - Xilinx-овский LPT кабель.
Вот это пишу
avreal32-1.28r5.exe +mega8535 -p1 -ax -o5Mhz -w -v+ -c morganie.hex >> output.txt
pause
Правильно понимаю, что должен получить запись и верификацию?
Получаю это
Код: Выделить всё
avreal/WIN32 - AVR controllers programmer by Redchuk Alexandr
v1.28r5 (Oct 11 2010 20:02:13) http://real.kiev.ua/avreal
bug-reports, suggestions and so on mail to avreal@real.kiev.ua
Command:
+mega8535 -p1 -ax -o5Mhz -w -v+ -c morganie.hex
Adapter enabled
Device connected, mega8535 detected
Chip not locked
Fuses
OSCCALs = A0 A1 9A 9C
_LOCK = 0xFF
BLB1 = 3
BLB0 = 3
_LOW = 0xE1
BODLEVEL = 1
BODEN = 1
SUT = 2
CKSEL = 1
_HIGH = 0xD9
S8535C = 1
WDTON = 1
CKOPT = 1
EESAVE = 1
BOOTSZ = 0
BOOTRST = 1
Programming CODE memory
done (21.4ms)
Verifying CODE memory
Synchronisation lost
Reset pin released
Adapter disabled
Получил я верификацию или нет?
Для проверки пишу код, согласно которому порт D настраивается на выход и устанавливается всеми выводами в лог. 1. В AVR-studio всё работает.
Но на контроллере ничего не происходит.
Ресет делаю замыкая на корпус.
Может кто-то что-то посоветовать?
Буду признателен за любые ответы.
Заранее благодарю за внимание
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср дек 29, 2010 11:08:38
stas00n
Inquirer писал(а):Нет-нет. Если вЫходной сигнал будет 0-3,3В , то его надо будет масштабировать на 0-5В . Я тут боюсь точность потерять.
Опять непонятно. Что значит "масштабировать"? Если нужно усилить выходной сигнал - ставим операционный усилитель и все. На 20 кГц любой ОУ потянет.
Inquirer писал(а):
Ну, с бутлоадером-то мне всё-равно придётся делать, потому как прошивку надо будет обновлять, а программатора собственного у меня пока что нету
Так бутлоадер как минимум надо будет сперва прошить программатором, так что без последнего никак обойтись не удастся. Предусмотрите в схеме разъем внутрисхемного программирования и обновляйте прошивку программатором сколько влезет. Простейший программатор ("5 проводков") для AVR делается за час, для PIC - за полдня.
Inquirer писал(а):
В знаменателе переменная, поэтому ещё предстоит подумать, как это красиво обставить. Использовать либо float математику, либо, подтягивая до целых, использовать 16-битные операнды.
Если в знаменателе переменная, без деления, увы, никак. А вот использовать плавающую запятую в Вашей задаче я бы не стал, хватит и целочисленной арифметики (или с фиксированной запятой, которая суть та же целочисленная, т.к. запятая "в уме"). У Вас входные данные будут максимум 10-битные, так что 16-битных операндов хватит за глаза и за уши; для произведения 16х16 понадобится 32 бита, перед следующим умножением надо будет просто урезать результат предыдущего до 16 бит.
Inquirer писал(а):А до какой частоты стоит использовать ШИМ?
Зависит от разрядности ШИМ, какой размах пульсаций допустим на выходе, от схемотехники ФНЧ. Если ШИМ 8-битный, допустимую пульсацию принять не более единицы младшего разряда (1/256 от макс. выходного сигнала), ФНЧ первого порядка, то максимальная выходная частота ЦАП будет в 250 раз меньше частоты ШИМ. Частота 8-битного ШИМ =< тактовая частота/256, так что получится при 16 МГц системной тактовой, 250 Гц ЦАП; на ФНЧ второго порядка можно выжать вдвое больше, дальше наращивать фильтры смысла нет, а до 20 кГц еще о-о-чень далеко.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср дек 29, 2010 12:46:26
avreal
warrior2031 писал(а):avreal32-1.28r5.exe +mega8535 -p1 -ax -o5Mhz -w -v+ -c morganie.hex >> output.txt
pause
Правильно понимаю, что должен получить запись и верификацию?
Да. Только ещё стирание
-e надо давать, по умолчанию стирание не делается (на случай дописывания каких-то калибровочных данных отдельным вызовом).
Шить обычно лучше с поллингом
-wp — быстрее шьёт и раньше на ошибки реагирует.
warrior2031 писал(а):Получаю это
Код: Выделить всё
...
Verifying CODE memory
Synchronisation lost
Получил я верификацию или нет?
Верификация не удалась, потеряна связь с кристаллом.
Бывает при слегка завышенной частоте, попробуйте снизить частоту в ключе
-o.