реклама на сайте
подробности

 
 
20 страниц V  « < 3 4 5 6 7 > »   
Reply to this topicStart new topic
> AVR признали !, C переходом в рассуждения о контроллерах
=GM=
сообщение Aug 9 2007, 15:30
Сообщение #61


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Прохожий @ Aug 9 2007, 13:44) *
А если вот так:
Код
movblk   movff   postinc0,postinc1;2
         decfsz counter ;1/2/3
         goto   movblk ;2

Хотя сути это не меняет, но позволяет исключить рабочий регистр W.

Так не пойдёт, в этой команде нельзя применять косвенную адресацию. Так, как вы написали, вы просто N раз копируете из адреса postinc0 в ячейку по адресу postinc1.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
defunct
сообщение Aug 9 2007, 15:37
Сообщение #62


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



GM & Прохожий.

Господа, давайте разберемся уж до конца:

Выдержка из даташита на PIC18F4450

All single-word instructions are executed in a single
instruction cycle, unless a conditional test is true or the
program counter is changed as a result of the instruction.
In these cases, the execution takes two instruction
cycles with the additional instruction cycle(s) executed
as a NOP.
The double-word instructions execute in two instruction
cycles.
One instruction cycle consists of four oscillator periods.
Thus, for an oscillator frequency of 4 MHz, the normal
instruction execution time is 1 μs.

Теперь давайте приведем к общему знаменателю машинные циклы, обзовем их CYC.
На одинаковой частоте CYCavr = 1/4 * CYCpic
С учетом, что PIC18 работает на 10-12Mhz, а Mega - 16-20Mhz,

CYCavr = 12/20 * 1/4 CYCpic

12/20/4 = 0.15 - это соотношение одного микрочиповского цикла, к AVR'овскому. (Тобиш коэффициент который показывает насколько "быстрее" выполняется одна инструкция на PIC в сравнении с AVR).

Ну а далее смотрим на результат тестов:

5 машинных циклов на микрочипе делим на коеффициент 0.15

получаем

5/0.15 = 33.33 машинных цикла AVR

33.33 AVRовских такта на PIC, против 7 на AVR.

33.33/7 = ~5
На простеньком тесте, PIC уделали в пять раз.

Вывод - по производительности PIC18 фтопку.
Banchmark'и сахары - туда же (особливо если для тестов там использовался IAR 2.2).
Go to the top of the page
 
+Quote Post
Proton
сообщение Aug 9 2007, 15:55
Сообщение #63


Частый гость
**

Группа: Свой
Сообщений: 185
Регистрация: 3-08-05
Из: Новосибирск
Пользователь №: 7 334



Насчёт противостояния ПИКов и AVRок я заметил следующую закономерность. Когда готовил свой дипломный проект у меня был доступ к дипломам прошлых лет. В старых дипломах львиная доля проектов была выполнена на ПИКах, гораздо меньше MCS-51. В новых работах за последние несколько лет практически сплошняком идут AVRки. О чём это говорит, подрастает новое поколение которое прийдя на предприятия будет закладывать в свои устройства уже AVR. И это уже просходит, просматривая вакансии нередко можно встретить требование опыта работы с AVR, ПИКи практически не встречаются. На предприятии где я работаю, для управления силовыми схемами используются исключительно AVR, они же входят в состав изделий поставляемых на АвтоВАЗ.


--------------------
Всяк хорошая мысля к нам приходит опосля.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 9 2007, 16:12
Сообщение #64


Гуру
******

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



Цитата(Proton @ Aug 9 2007, 18:55) *
В новых работах за последние несколько лет практически сплошняком идут AVRки. О чём это говорит...

Это говорит о том, что если 8bit AVR в своей массе уже добрались до студенческих "работ", то надо смотреть что нужо использовать в реальной работе вместо них smile.gif smile.gif smile.gif smile.gif. Шутка, конечно, но с большой долей истины.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Прохожий
сообщение Aug 9 2007, 16:22
Сообщение #65


Cундук
*****

Группа: Участник
Сообщений: 1 478
Регистрация: 13-11-06
Из: Ростов-на-Дону
Пользователь №: 22 269



Цитата(defunct @ Aug 9 2007, 19:37) *
.....

Вывод неверный, потому как внутренняя частота внутри PIC18F может быть умножена на 4 за счет внутреннего PLL. PICи с USB (типа 18F4550) брать в расчет не будем. Итого 10 Мгц *4(это PLL)/4(число циклов в команде)=10мгц. Т.е. минимальное время выполнения команды в PIC18 составляет 100 нс против 50 нс в AVR. Далее, подсчитав число циклов в варианте для AVR получаем 7*50=350 нс. Для варианта с PIC имеем 100*5=500 нс. Берем соотношение 500/350=1.43. Вывод: для этого конкретного примера AVR оказался быстрее PIC в 1.43 раза.
Преимущество незначительное, ели учесть все неудобства, связанные с эксплуатацией AVRов.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Aug 9 2007, 16:25
Сообщение #66


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(defunct @ Aug 9 2007, 14:37) *
GM & Прохожий.
Теперь давайте приведем к общему знаменателю машинные циклы, обзовем их CYC.
На одинаковой частоте CYCavr = 1/4 * CYCpic
С учетом, что PIC18 работает на 10-12Mhz, а Mega - 16-20Mhz,

CYCavr = 12/20 * 1/4 CYCpic

12/20/4 = 0.15 - это соотношение одного микрочиповского цикла, к AVR'овскому. (Тобиш коэффициент который показывает насколько "быстрее" выполняется одна инструкция на PIC в сравнении с AVR).

Ну а далее смотрим на результат тестов:

5 машинных циклов на микрочипе делим на коэффициент 0.15

получаем 5/0.15 = 33.33 машинных цикла AVR

33.33 AVRовских такта на PIC, против 7 на AVR.

33.33/7 = ~5
На простеньком тесте, PIC уделали в пять раз.

Вывод - по производительности PIC18 фтопку.
Banchmark'и сахары - туда же (особливо если для тестов там использовался IAR 2.2).

Не, так плохо. Под рукой описание на PIC18F2240, буду опираться на него, думаю в PIC18F4450 похожее положение дел. Давайте положим свои предпочтения в карман и рассмотрим по справедливости. (Сам я предпочитаю иметь дело с авр, мне нравится система команд, хотя и не без недостатков).

1) Потреблениие прямо пропорционально тактовой частоте, на которой работает ядро (системная частота процессора). Так что лучше сравнивать в машинных циклах (МЦ). Ну посудите сами, вы на МК PIC18F2240 подаёте 10 МГц, а они там умножаются на 4, получается 40, но одна команда выполняется за 4 периода частоты 40, т.е. системная частота равна 10. Вывод - сравнение только МЦ.

2) По производительности. Для атмеловского фрагмента время исполнения 900/20=45мкс, для пика - 650/10=65 мкс. Времена выполнения одного порядка, никакого выигрыша по производительности в 5 раз нету и в помине.

3) Давайте скажем по справедливости, что на данном тесте пик обходит авр по машинным циклам. Представьте себе, что завтра микрочипы сделают системную частоту 20 Мгц. Ну и кто будет в проигрыше?

4) Вот тут предлагали посчитать crc на одном и другом проце, давайте посмотрим, кто там будет впереди?


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Прохожий
сообщение Aug 9 2007, 16:37
Сообщение #67


Cундук
*****

Группа: Участник
Сообщений: 1 478
Регистрация: 13-11-06
Из: Ростов-на-Дону
Пользователь №: 22 269



Цитата(zltigo @ Aug 9 2007, 20:12) *
Это говорит о том, что если 8bit AVR в своей массе уже добрались до студенческих "работ", то надо смотреть что нужо использовать в реальной работе вместо них smile.gif smile.gif smile.gif smile.gif. Шутка, конечно, но с большой долей истины.

Я лично склоняюсь все к тем же 24-м PICам, потому как 18-е уже надоели. Слишком много неудобств. AVR - не вариант.
Хотя почти все японские фирмы (OMRON, например) в своих промышленных покидухах применяют в основном NEC в различных вариантах в зависимости от назначания покидухи.
Хотелось бы узнать мнение уважаемого коллектива. Если не PIC18 и не AVR, то что?
Go to the top of the page
 
+Quote Post
defunct
сообщение Aug 9 2007, 16:51
Сообщение #68


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Прохожий @ Aug 9 2007, 19:22) *
Итого 10 Мгц *4(это PLL)/4(число циклов в команде)=10мгц.

Ок прощу прощения что не учел PLL.

Цитата
Берем соотношение 500/350=1.43. Вывод: для этого конкретного примера AVR оказался быстрее PIC в 1.43 раза.

Преимущество довольно значительное, если взять во внимание простоту теста.

Еще, помоему код получился неравнозначным.
Халтурка-с

Код
movblk:  ld     temp,x+;2
         st     y+,temp;2
         dec    counter;1
         brne   movblk;2/1
;Пересылка одного байта выполняется за 7 тактов


этот код копирует counter байт из x в y




Код
;Фрагмент для пика
movblk   movf   postinc0;1
         movwf  postinc1;1
         decfsz counter;1/2/3
         goto   movblk;2


А этот что делает?

postinc0, postinc1 - адреса намертво вшиваемые в тело команд.

Цитата(=GM= @ Aug 9 2007, 19:25) *
3) Давайте скажем по справедливости, что на данном тесте пик обходит авр по машинным циклам.

Безусловно, ведь PIC в данном тесте не выполняет того функционала который делает AVR. Результат кода (который выиграл по маш. циклам) будет отличаться от того, который проиграл.
Давайте вначале подправим тест?

Цитата
Представьте себе, что завтра микрочипы сделают системную частоту 20 Мгц. Ну и кто будет в проигрыше?

Что будет завтра - это уже другой вопрос..
Завтра может Atmel PLL засунет и запустит ядро на 40Mhz или 80..

По остальным пунктам, думаю ответил выше.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Aug 9 2007, 16:51
Сообщение #69


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(Прохожий @ Aug 9 2007, 20:37) *
Я лично склоняюсь все к тем же 24-м PICам, потому как 18-е уже надоели. Слишком много неудобств. AVR - не вариант.
Хотя почти все японские фирмы (OMRON, например) в своих промышленных покидухах применяют в основном NEC в различных вариантах в зависимости от назначания покидухи.
Хотелось бы узнать мнение уважаемого коллектива. Если не PIC18 и не AVR, то что?

Найдутся и "фанаты" MSP430. Я, например, его использовал довольно много, но как-то "душа не лежит". PIC24 по первому впечатлению на него похож... Думаю, не надо делать из конкретного микроконтроллера (или семейства) культа. Фанатичная привязанность ограничивает кругозор в ущерб результату. Подбирать надо по задаче, а не задачу под контроллер...
Go to the top of the page
 
+Quote Post
=GM=
сообщение Aug 9 2007, 16:58
Сообщение #70


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(defunct @ Aug 9 2007, 15:42) *
Ок прощу прощения что не учел PLL.
Преимущество довольно значительное, если взять во внимание простоту теста.

Как раз преимущества по машинным циклам нет, наоборот. У меня на вход TMS320F2808 подаётся 20 МГц, но внутри они умножаются на 10 и делятся на 2, какую частоту мне брать для определения производительности? 20, 100 или 200 МГц?
Цитата(defunct @ Aug 9 2007, 15:42) *
Еще, помоему код получился неравнозначным. Халтурка-с
Код
;Фрагмент для пика
movblk   movf   postinc0;1
         movwf  postinc1;1
         decfsz counter;1/2/3
         goto   movblk;2

А этот что делает? postinc0, postinc1 - адреса намертво вшиваемые в тело команд.

Не, это вы халтурно относитесь к пику(:-). Регистр POSTINCn это аналог регистра INDFn, только с постинкрементом.

На си примерно так будет *(postinc1)++ =*(postinc0)++


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
defunct
сообщение Aug 9 2007, 17:04
Сообщение #71


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата
Я лично склоняюсь все к тем же 24-м PICам, потому как 18-е уже надоели. Слишком много неудобств. AVR - не вариант.

А почему тогда не ARM?

Цитата(=GM= @ Aug 9 2007, 19:58) *
Не, это вы халтурно относитесь к пику(:-).

Понял ;>

Цитата(=GM= @ Aug 9 2007, 19:58) *
Как раз преимущества по машинным циклам нет, наоборот. У меня на вход TMS320F2808 подаётся 20 МГц, но внутри они умножаются на 10 и делятся на 2, какую частоту мне брать для определения производительности? 20, 100 или 200 МГц?

Частоту ядра конечно. В вашем случае - 100.
Для PIC'а если с 4xPLL'ом - 40Mhz, но приводить к какому-то эталону все равно надо. Приводят к MIPS'aм, и в ДШ на PIC должно быть написано - ядро PIC на 40Mhz имеет производительность 10MIPS.
Go to the top of the page
 
+Quote Post
Прохожий
сообщение Aug 9 2007, 17:07
Сообщение #72


Cундук
*****

Группа: Участник
Сообщений: 1 478
Регистрация: 13-11-06
Из: Ростов-на-Дону
Пользователь №: 22 269



Цитата(defunct @ Aug 9 2007, 20:51) *
Код
;Фрагмент для пика
movblk   movf   postinc0;1
         movwf  postinc1;1
         decfsz counter;1/2/3
         goto   movblk;2


А этот что делает?

postinc0, postinc1 - адреса намертво вшиваемые в тело команд.

Опять же неправда Ваша. PostincХ - это ссылка на виртуальный системный регистр с аналогичным именем, означающая что исполнительный адрес берется из пары FSRXH:FSRXL и после выполнения команды к этому делу будет прибавлена 1. Следовательно в указанном случае пересылка осуществляется следующим образом:
Байт данных, расположенный по адресу FSR0H:FSR0L перешлется в ячейку по адресу FSR1H:FSR1L, затем регистровые пары FSR0H:FSR0L и FSR1H:FSR1L будут инкрементированы. И все это дело повторится изначальное (при входе в цикл) counter раз.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Aug 9 2007, 17:20
Сообщение #73


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Прохожий @ Aug 9 2007, 15:37) *
Хотелось бы узнать мнение уважаемого коллектива. Если не PIC18 и не AVR, то что?

Сильно зависит от задачи. Я долго работал с TMS320C5402, клял эти проклятые пайплайновые конфликты, потом перешёл на TMS320F2808..12. Ну, скажу я вам, небо и земля. И управление легко делать, подрыгать ногами, и ДПФ быстро, 16*16 умножает за такт, 32*32 за два такта, и периферии до чёрта: CAN, SPI, I2C, ADC 12.5 Мвыборок/с. Почти мечта(:-). Сейчас новые представители семейства появились, так там есть модуль плавающей точки...


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
mse
сообщение Aug 9 2007, 18:12
Сообщение #74


Знающий
****

Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693



Цитата(Rst7 @ Aug 9 2007, 19:15) *
Чето я не пойму. Этот пост:
и этот:
Оба ваши... Как понимать?

Буквально. Как Тузик порвёт сковородку, так ПИК порвёт АВРа в арифметике. ;О)

Прохожему: На сахаре, в беньчморках лежит ФИР, писаный мной на АСМе. С тактами. Можете написать аналогичное на ПИКе и посчитать. Во сколько раз медленнее оно будет. Да и здесь, в АВРовой ветке, есть то-же самое, только знаковая арифметика.

По поводу пересылок: пересылка массива памяти, сама по себе, никому не нужна. Нахрен пересылать массив из одного места в другое, если работать можно сразу в том месте? Ну да ланна, это на любителя. ;О)

Цитата(=GM= @ Aug 9 2007, 21:20) *
Сильно зависит от задачи. Я долго работал с TMS320C5402, клял эти проклятые пайплайновые конфликты, потом перешёл на TMS320F2808..12...

Ну согласитесь, сравниватьТМС320 с ПИКо-АВРами некорректно. И не только из-за ТМСовой крутизны. ПИКо-АВРы требуют вокруг себя меньше обвязки, меньше жрут, меньше занимают места. Стоят дешевле. Из этого и исходить. Лёгкое ядро, оно всегда себе дырочку найдёт. ;О)
Go to the top of the page
 
+Quote Post
_artem_
сообщение Aug 9 2007, 18:26
Сообщение #75


учащийся
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 29-10-05
Из: города контрастов
Пользователь №: 10 249



Вот одна страничка в которой утверждается что начинка ericsson а1018 на базе авр :
http://www.hackcanada.com/blackcrawl/cell/texts/charger.pdf

правда чип вроде бы кастом.


--------------------
Зачем лаять на караван , когда на него можно плюнуть?

Go to the top of the page
 
+Quote Post

20 страниц V  « < 3 4 5 6 7 > » 
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 23:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01517 секунд с 7
ELECTRONIX ©2004-2016