|
|
  |
помогите выбрать МК AVR+программатор+отладочную плату, хочу изучить МК |
|
|
|
Aug 27 2010, 19:51
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (rx3apf @ Aug 27 2010, 21:16)  реальной жизни _мне_ вот необходимо работать в весьма ограниченных условиях Это со всеми случается иногда. Но если Вы постоянно "с ограниченным объемом памяти и команд", то скорее всего надо что-то "в консерватории менять", ибо больше всего похоже, что Вы загнали себя у угол. QUOTE вот только по энергопотреблению (конкретно для моих задач) пролетают со свистом. Полагаю, что Вам надо более внимательно осмотреться кругом - потребление у чипов сделанных по более мелким технологиям уже поменьше уже в силу одного этого факта. Причем не только ядра, но и периферии. Механизмы быстрого просыпания/засыпания тоже уже совершенствуются. О периферии уже и говорить не приходится - гибкие системы тактирования периферии (например, у AVR тактирование PWM той-же частотй, что и ядра посылает лесом возможность экономии на потреблении ядра ), DMA работающие при спящем ядре, наличие более функциональной периферии (например, наличие банального DAC позволяет не извращаться с PWM работающем на высокой частоте). Так-что, если применение AVR не является тоже вопросом религии, то присмотритесь. QUOTE А иногда каждая команда на счету - по тому же потреблению, Знакомо. Недавно выжимая потребление из Atmega48PA вылизывал кусок обработчика обработчика прерывания АККУРАТНО, со знанием дела написанного на 'C'. Обработчик похудел с 98 тактов, до 94. Возможно, виртуоз AVR ASM-щик сэкономил-бы еще пару тактов. Да, 94 против 98 тактов на пару процентов сэкономило общее потребление, но не радикально. Пререписывание остальных пары килобайт кода принесло-бы вообще мало уловимую экономию на переходных режимах. Радикально проблему потребления в этом случае решал-бы, например STM8L  . Это я к тому, что "реальная жизнь" тоже не застыла на AVR или на ASM.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 27 2010, 20:01
|
Участник

Группа: Участник
Сообщений: 51
Регистрация: 11-02-10
Пользователь №: 55 414

|
Цитата(Xenia @ Aug 27 2010, 21:47)  Постоянное напряжение с аудиовыхода вам все равно не снять - там на выходе кондёр стоит на 47 мкф. Т.е. выходной каскад усилителя мощности выполнен почти по классической схеме УНЧ с емкостной развязкой в нагрузку, лишь с той разницей, что там не транзистор использован, а ОУ. Принципиальная схема приведена в описании, на которое я уже ссылалась. я это понял,но вы же сказали что можно брать конкретно с штырька? скажите,при программировании микроконтроллеров на С хватит знания архитектуры контроллера и знание элементарных операций,или все таки необходимо ооп?а то у меня как то с ним не сложилось((было всего семестр и как то не очень(
|
|
|
|
|
Aug 27 2010, 20:13
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(zltigo @ Aug 27 2010, 23:51)  DMA работающие при спящем ядре Покоробило недавно, что у LPC1768 DMA при спящем ядре может работать только с половинкой SRAM - так называемой периферийной областью. Тогда как HEAP и размещение всех статических объектов находятся в другой половине. Очень не удобно сделано. Что это, стремление сэкономить потребление в спящем режиме, отключив половину ОЗУ?
|
|
|
|
|
Aug 27 2010, 20:26
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (sonycman @ Aug 27 2010, 23:13)  Покоробило недавно, что у LPC1768 DMA .. Нет в жизни полного счастья  . QUOTE Тогда как HEAP и размещение всех статических объектов находятся в другой половине. Ну так, что и где размещать это в Ваших руках - можете соответственно концепции подогнуть.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 27 2010, 20:51
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(xxxdarksxx @ Aug 27 2010, 23:01)  я это понял,но вы же сказали что можно брать конкретно с штырька? Ага, можно брать прямо со штырька, если УНЧ вам не нужен. Цитата(xxxdarksxx @ Aug 27 2010, 23:01)  скажите,при программировании микроконтроллеров на С хватит знания архитектуры контроллера и знание элементарных операций,или все таки необходимо ооп?а то у меня как то с ним не сложилось((было всего семестр и как то не очень( Хватит, если вы не намерены загружать на свой МК операционку типа Линукс  . В принципе нет ничего такого, чего нельзя было бы написать без ООПа. Но бывают такие случаи, когда с помощью ООПа получается исключительно изящно и удобно. Например, программирование GUI под Windows. Но на таких слабеньких МК, как тот, что стоит на той плате, вряд ли можно воспользоваться всеми преимуществами ООПа.
|
|
|
|
|
Aug 27 2010, 22:02
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(zltigo @ Aug 28 2010, 00:04)  Видите ли, здесь тема для начинающих, а на мой взгляд, начинать надо не с этого. Сейчас выше крыши развелось программистов, которые только и умеют, что вызывать библиотечные функции  . А если нужной функции найти не могут, то ищут библиотеки, в которых бы кто-то за них написал нужные им функции. И это при наличии отрицательной любознательности к тому, как эти функции написаны. Да что уж греха таить, я и сама когда-то была такой. И было так со мной до тех пор, пока я не заинтересовалась ...ассемблером  . Да-да, тем самым, от изучения которого вы так страстно отговариваете. И вот только тогда я совершенно иными глазами увидела внутреннюю кухню, в которой варится процессор. Этого показалось мало - заинтересовалась системами команд других процессоров. А дальше полезла еще глубже - в цифровую схемотехнику. И тот уровень, где программа переходит в электронику, меня полностью очаровал. Хотя и до сих пор в электронике волоку гораздо меньше, чем в программировании. Ну так что вы предложите начинающему? Загрузить какую-нибудь scmRTOS, а потом на весь форум писать вопросы типа "Вызываю IdleProcessUserHook(), а она не работает! Помогите!"  А потом через это развивается комплекс неполноценности, когда сама сидишь дура дурой, а "взрослые дяденьки" дают тебе советы. Не надо этого! В начале надо пощупать всё своими руками! Почувствовать, как изменение каждого бита в служебных регистрах отзывается. Достигнуть, можно сказать, некоего "единения" с (микро)процессором. И только потом лезть во все эти RTOSы.
|
|
|
|
|
Aug 28 2010, 07:36
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (Xenia @ Aug 28 2010, 01:02)  А если нужной функции найти не могут, то ищут библиотеки, в которых бы кто-то за них написал нужные им функции. Да полно  , причем половина ищет их на "ASM" а вторая на 'C'  . И 95% из вместе взятых для AVR  . QUOTE Ну так что вы предложите начинающему? Загрузить какую-нибудь scmRTOS, а потом на весь форум писать вопросы типа "Вызываю IdleProcessUserHook(), а она не работает! Помогите!"  Ссылка на scmRTOS была дана, как противовес размышлениям про "ООП" в микроконтроллеростоении. А начинать писать первые строчки по нынешними временам надо с 'C'. ASM хоть на пару дней, но позже  . 'C', это не по тому, что идеальный путь, а потому, что из двух зол меньшее. Ничего печальнее, чем "настоящий ассемлерщик способный написать программу на ASM на любом языке" я видел. При этом, то дерьмо, которое у него получается в результате такого "подхода к делу" еще больше "убеждает" его самого, в "правильности". Замкнутый круг. QUOTE Почувствовать, как изменение каждого бита в служебных регистрах отзывается. Достигнуть, можно сказать, некоего "единения" с (микро)процессором Дергание битами и единение достигается и на 'C' ровно так-же и с ровно такими-же затратами, как и на ASM. Только могут быть скрыты некоторые интимные подробности и аппаратные ограничения простых микроконтроллеров ( типа а чего это чего это у меня именно эта команда именно в этот регистр ничего не пишет?). QUOTE И только потом лезть во все эти RTOSы. А вот это, действительно, потом. Так сказать следующий уровень понимания. До понимания и ПРАВИЛЬНОГО использования которого тоже надо дорасти. Иначе история в стиле "а нафига этот 'C'" просто будет повторяться один к одному в "а нафига эта RTOS".
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 28 2010, 10:30
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(zltigo @ Aug 28 2010, 10:36)  Дергание битами и единение достигается и на 'C' ровно так-же и с ровно такими-же затратами, как и на ASM. Только могут быть скрыты некоторые интимные подробности и аппаратные ограничения простых микроконтроллеров ( типа а чего это чего это у меня именно эта команда именно в этот регистр ничего не пишет?). Про C худых слов я не говорила. Но нынче почти все языки высокого уровня позволяют оперировать битами, а потому чтобы дергать битами, любой из них годится. И тем не менее, только ассемблер позволяет осознать "что сколько стоит". Т.е. рекомендация пописАть на чистом ассемблере сродни той, когда будущему архитектору предлагают поработать простым рабочим, будущему врачу - медсестрой, а будущему генералу - солдатом  . Закон тут такой: каждый управляющий должен на свой шкуре знать, каково быть уравляемым! И нужно это для того, чтобы управляющий понимал цену своего командного слова! Вот и здесь, когда командуешь микропроцессором, эту цену тоже нужно чувствовать. А ассемблер - хорошее средство побыть в шкуре МК, чтобы осознать, во что ему обходятся наши команды  .
|
|
|
|
|
Aug 28 2010, 11:56
|

Пользователь забанен
    
Группа: Свой
Сообщений: 1 138
Регистрация: 9-08-05
Пользователь №: 7 492

|
..Действительно, к чему, спрашивается, в первом классе, начинать с арифметики, когда можно сразу с «некоторых особенностей циркуляции вектора по замкнутому контуру». Зачем учиться считать столбиком, или, боже упаси, « в уме», если есть калькулятор? «..Географию знать вовсе не надобно, извозчики довезут..» - это очень старое мнение..
--------------------
It's me
|
|
|
|
|
Aug 28 2010, 15:43
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (Xenia @ Aug 28 2010, 13:30)  А ассемблер - хорошее средство побыть в шкуре МК, чтобы осознать, во что ему обходятся наши команды  . Оптимальное средство для этого называется листинг. Отличное сочетание: - детализации; - возможности широкого обзора; - анализа того самого "во что обходятся" ( для того, что-бы учится грамотно выражать свои мысли на более высоком уровне); - и при необходимости возможность посоревноваться в результате, хоть и с машинным, но интеллектом. А интеллект компиляторов уже не тот, каким был в 90x совсем не плох - и есть чему и поучится, тем более в начале. QUOTE (Wise @ Aug 28 2010, 14:56)  ..Действительно, к чему, спрашивается, в первом классе, начинать с арифметики.. Беда в том, что многие, так и остаются первоклашками и любыми знаниями начинают "овладевать" не как взрослые люди, а каждый раз, как пришедшие в первый класс детсадовцы. Только вот амбиции при этом хоть и пустые, но уже совсем не детсадовские  . Печальное зрелище, я Вам скажу. QUOTE (Xenia @ Aug 28 2010, 13:30)  Т.е. рекомендация пописАть на чистом ассемблере сродни той.... Простите, а почему не в машинных кодах? Только потому, что лично Вы представляете, во что выливаются команды и псевдокоманды ASM? Вы впитали это с молоком матери, или познали? А почему нельзя начать познание не с того, во что отливаются ASM команды, а с того, во что отливаются 'С' строчки?
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 28 2010, 16:02
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(Wise @ Aug 28 2010, 14:56)  ..Действительно, к чему, спрашивается, в первом классе, начинать с арифметики, когда можно сразу с «некоторых особенностей циркуляции вектора по замкнутому контуру». Это не совсем то, что я пыталась сказать. Ассемблер ни в коем случае нельзя считать подготовительной ступенью к языкам высокого уровня. Последние вполне можно изучать, не зная ассемблера. К тому же в школьном курсе информатики обычно так и начинают обучать. Ассемблер - это инструмент для тех, кто намерен углубиться "на этаж ниже", вплоть до того самого подвала, ниже которого программирование заканчивается и начинается электроника. Очень возможно, что на больших компьютерах в тот подвал спускаются одни чудаки, вроде диггеров  . Но у микропроцессоров до этого "подвала" рукой подать. Поэтому эмбедеру ассеблер знать необходимо. Есть и еще одно соображение, но уже косвенного плана. Имею в виду программирование как искусство, а не как технологию. Так вот в сфере микроконтроллеров это искусство выражено много ярче. И здесь еще не окончательно выродились таланты писать алгоритмы минимальным числом команд  . Интерес к этому подстегивает жесткие лимиты на скорость и объем памяти. Но... время идет, и микропроцессоры тоже взрослеют - укрупняются и ускоряются. А вместе с тем постепенно угасает и то былое искусство, которое все более замещается рутинными конструкциями компилятора высокого уровня. Цитата(zltigo @ Aug 28 2010, 18:43)  Оптимальное средство для этого называется листинг. Отличное сочетание: - детализации; - возможности широкого обзора; - анализа того самого "во что обходятся" ( для того, что-бы учится грамотно выражать свои мысли на более высоком уровне); - и при необходимости возможность посоревноваться в результате, хоть и с машинным, но интеллектом. А интеллект компиляторов уже не тот, каким был в 90x совсем не плох - и есть чему и поучится, тем более в начале. Это всё вы говорите правильно. Во только для всего это ассемблер тоже знать требуется. Ну то что толку, без знания ассемблера смотреть в листинг?
|
|
|
|
|
Aug 28 2010, 16:06
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(zltigo @ Aug 27 2010, 23:51)  Это со всеми случается иногда. Но если Вы постоянно "с ограниченным объемом памяти и команд", то скорее всего надо что-то "в консерватории менять", ибо больше всего похоже, что Вы загнали себя у угол. Я могу перейти с m8(88) на 168, например, что удорожает устройство, но позволяет чуть свободнее обойтись с кодом. Но оперативки мне это не прибавит. Альтернативы среди AVR у меня нет. PIC24 по цене, может быть, при моих тиражах и будет сопоставим по цене (в чем я тоже сомневаюсь), MSP430 пролетает. Цитата Полагаю, что Вам надо более внимательно осмотреться кругом - потребление у чипов сделанных по более мелким технологиям уже поменьше уже в силу одного этого факта. Причем не только ядра, но и периферии. Вообще-то и PIC, и AVR все больше переходят на мелкие технологии. Ну, может не та категория, но тем не менее. Потребление падает. Цитата Механизмы быстрого просыпания/засыпания тоже уже совершенствуются. О периферии уже и говорить не приходится - гибкие системы тактирования периферии (например, у AVR тактирование PWM той-же частотй, что и ядра посылает лесом возможность экономии на потреблении ядра ), DMA работающие при спящем ядре, наличие более функциональной периферии (например, наличие банального DAC позволяет не извращаться с PWM работающем на высокой частоте). Так-что, если применение AVR не является тоже вопросом религии, то присмотритесь. А мне не нужен DMA. И DAC. И PWM тоже не нужен. А бюджет для хоста у меня меньше 10 uA... Цитата Радикально проблему потребления в этом случае решал-бы, например STM8L  . Это я к тому, что "реальная жизнь" тоже не застыла на AVR или на ASM. А тут еще может и с стоимостью быть проблема. А что до микропотребления и эффективных механизмов пробуждения - вот, TI так хвастались микропотреблением и эффективностью, уж как я вылизывал код - но, перейдя на мелкий PIC16 практически с тем же алгоритмом, получил вдвое меньшее потребление и заметно меньшую стоимость изделия... Короче - реальный мир он большой и очень разный, универсального решения на все случаи жизни нет, так же как рецепта всеобщего счастья.
|
|
|
|
|
Aug 28 2010, 16:16
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (Xenia @ Aug 28 2010, 19:02)  Это всё вы говорите правильно. Во только для всего это ассемблер тоже знать требуется. Ну то что толку, без знания ассемблера смотреть в листинг? Надо, но можно уже и потом, и можно начинать с чтения, можно ориентироваться в листинге для начала по каким-то количественным показателям. Можно и УЧИТЬСЯ по листингу, а не по неведомо кем и какой ногой писанному ASM из интернету.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|