AT91SAM7 старт с коленки

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
kris95
Держит паяльник хвостом
Сообщения: 920
Зарегистрирован: Ср янв 07, 2009 19:30:23

Re: AT91SAM7 старт с коленки

Сообщение kris95 »

Дак ясно то не со мной, а с тобой. Что кое кто по3,14здеть любит
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Re: AT91SAM7 старт с коленки

Сообщение Arlleex »

kris95 писал(а):Дак ясно то не со мной, а с тобой. Что кое кто по3,14здеть любит

воздержусь...
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: AT91SAM7 старт с коленки

Сообщение Satyr »

ELcat писал(а):Надоело как-то возиться с AVRками, захотелось мощщи :) решил освоить ARM7.

Несколько не оптимальное решение. Мощь там средненькая, и чтука устаревшая.
ARMы на ядре Cortex-M3 стоят сейчас практически как ARM7, а по частотам и производительности на мегагерц заметно впереди. Так что какой смысл ?
С AVR тоже соскакивать не обязательно. Есть AVR32 - по удельной производительности не хуже кортекса. И перифирия и гибкость ее разброса по ногам интереснее, чем во всех виденных мной вещах на ARMах. Вот только недолюбливают у нас продавцы AVR32 - реально дефицит.
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: AT91SAM7 старт с коленки

Сообщение Satyr »

ELcat писал(а):товать. Я сам знаком только с CodeVision AVR, но я решил работать в IAR, просто показалось, что эта среда более популярна в нете.

Среда там весьма архаична, но компиляторы IAR очень суровы.
Для AVR32 разница в производительности кода, компиленного GNU и IAR компилером легко может достигать 1.5 и более раз.
Но цены на IAR ужосающие...
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: AT91SAM7 старт с коленки

Сообщение Satyr »

neonix писал(а):. Я вот всё ищу ARM7 или CortexM3 с внешней SDRAM, ибо хочеться по настоящему больших объёмов памяти :)

А что искать ? это не проблема. Практически у всех производителей на чипы от 100 ног это часто есть. EBI, EMI и подобными терминами называется в анонсах.
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

Re: AT91SAM7 старт с коленки

Сообщение SII »

ELcat писал(а):SII Честно, не могу допереть. Допустим у меня задача с максимально возможной скоростью выдвинуть какую-то последовательность констант, допустим для инициализации чего-то там не важно чего. В AVR всё просто
PORTB=00;
PORTB=0F;
PORTB=B5;
PORTB=BA;
PORTB=04;
PORTB=17;
Такая последовательность вылетит за 6 циклов ядра, у ARMа же для решения подобной задачи потребуется в два раза больше циклов. Если я не прав, то поправь меня. :dont_know:


Не 6, а 12 циклов (загрузка константы в регистр, вывод регистра в порт). В АРМах -- ровно столько же (во всяком случае, в AT91SAM9261 и AT91SAM7X..., но подозреваю, что и в остальных АТМЕЛовских тоже): загрузка в регистр, затем вывод в порт PIO_ODSR. А теперь подсчитайте, сколько тактов нужно АРМу и сколько АВРке для изменения значения одного бита порта при сохранении неизменными всех остальных.
Increasing
Встал на лапы
Сообщения: 135
Зарегистрирован: Вт окт 21, 2008 20:45:50
Откуда: Odessa

Re: AT91SAM7 старт с коленки

Сообщение Increasing »

Где в Украине можно приобрести эту сладкую парочку микроконтроллеров на ядре ARM Cortex M3? По человеческим ценам естественно.

LPC1343FBD48 -1 шт.
STM32F103C8T6 -1 шт.
Аватара пользователя
neonix
Электрический кот
Сообщения: 1040
Зарегистрирован: Чт фев 19, 2009 17:46:34
Контактная информация:

Re: AT91SAM7 старт с коленки

Сообщение neonix »

Satyr писал(а):А что искать ? это не проблема. Практически у всех производителей на чипы от 100 ног это часто есть. EBI, EMI и подобными терминами называется в анонсах.

Увы не у всех чипов контроллер внешней памяти имеет возможность подключения SDRAM. Камни с SDRAM контроллером можно пересчитать на пальцах одной руки :) Например у STM нет ни одного Cortex M3 МК с интерфейсом к SDRAM. У NXP только пару чипов из старых ARM7, ну и новый LPC 1800 который пока фиг купишь. У Atmel всего одно семейство с ядром ARM7, но его щас не купить из-за проблем с поставкой чипов у производителя. Так, что наличие EBI и EMI еще ничего не говорит :)
Where technology meets enjoyment.
stas00n
Вымогатель припоя
Сообщения: 557
Зарегистрирован: Пн мар 23, 2009 04:03:45

Re: AT91SAM7 старт с коленки

Сообщение stas00n »

SII писал(а):
ELcat писал(а):SII Честно, не могу допереть. Допустим у меня задача с максимально возможной скоростью выдвинуть какую-то последовательность констант, допустим для инициализации чего-то там не важно чего. В AVR всё просто
PORTB=00;
PORTB=0F;
PORTB=B5;
PORTB=BA;
PORTB=04;
PORTB=17;
Такая последовательность вылетит за 6 циклов ядра, у ARMа же для решения подобной задачи потребуется в два раза больше циклов. Если я не прав, то поправь меня. :dont_know:


Не 6, а 12 циклов (загрузка константы в регистр, вывод регистра в порт).

Тут согласен - на АВР запись в порт константы - 2 машиных цикла:

Код: Выделить всё

         LDI  r16,0;       загрузка константы
         OUT portb,r16; запись в порт



SII писал(а):В АРМах -- ровно столько же (во всяком случае, в AT91SAM9261 и AT91SAM7X..., но подозреваю, что и в остальных АТМЕЛовских тоже): загрузка в регистр, затем вывод в порт PIO_ODSR.

В АРМах всего на 1 цикл больше:

Код: Выделить всё

  ldr  r2, [pc, #368]   ; взятие адреса  в r2
  movs r3, #209   ; грузим 8-битную константу 0xd1
  str  r3, [r2]   ; запись по адресу из r2


или

Код: Выделить всё

 ldr  r2, [pc, #320]   ; взятие адреса  в r2
 ldr  r3, [pc, #324]   ; взятие константы  из памяти в r3
 str  r3, [r2, #24]       ;запись

SII писал(а): А теперь подсчитайте, сколько тактов нужно АРМу и сколько АВРке для изменения значения одного бита порта при сохранении неизменными всех остальных.

Тут гораздо прикольней, АВР-ке надо 1 инструкцию, например

Код: Выделить всё

sbi PORTB,1

а вот арму надо в лучшем случае минимум 5, компилятор часто растягивает на 6-8 циклов:

Код: Выделить всё

 ldr  r1, [pc, #316]   ; взятие адреса порта в r1
 ldr  r2, [r1]         ;читаем значение порта в r2
 movs r3, #2       ;маска для поразрядного ИЛИ в r3
 orrs r3, r2          ;ИЛИ
 str  r3, [r1]        ;сохраняем новое значение в порт

Кроме того, для хранения адреса к примеру, порта для обращения к нему, для хранения констант расходуется по 4 байта флеши, часто по многу раз.
stas00n
Вымогатель припоя
Сообщения: 557
Зарегистрирован: Пн мар 23, 2009 04:03:45

Re: AT91SAM7 старт с коленки

Сообщение stas00n »

Справедливости ради могу отметить, что если надо поменять более 1 бита, на авр получается почти так же:

Код: Выделить всё

 in r16,portb
 ori r16,3
 out portb,r16

Ну а если надо оперировать более чем 1 байтом, арм выигрывает однозначно (на авр, понятно, количество инструкций возрастает пропорционально)
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: AT91SAM7 старт с коленки

Сообщение Satyr »

neonix писал(а):
Satyr писал(а):А что искать ? это не проблема. Практически у всех производителей на чипы от 100 ног это часто есть. EBI, EMI и подобными терминами называется в анонсах.

Увы не у всех чипов контроллер внешней памяти имеет возможность подключения SDRAM. Камни с SDRAM контроллером можно пересчитать на пальцах одной руки :)

Аа, прям принципиально сдрам надо ? То, что попадалось на глаза, обычно давало подсоединить 2-4 банка по 64мега максимум чего либо. Да и с какой скорость оно работать будет - тоже вопрос. Возможно, и самому захочется за те же деньги поменьше, но SRAM и пошустрей.
Валяется у меня платка на AVR32 с SDRAM - можно померять. НО! видел камни, где часть SRAM напрямую к ядру приделана, половина через внутреннюю шину. Так вот даже там вторая работает не так шустро, как первая. А внешняя SDRAM, да ядро без кеша...

Т.е. вопрос довольно научный.
Аватара пользователя
ELcat
Друг Кота
Сообщения: 3258
Зарегистрирован: Вт май 19, 2009 09:27:30
Откуда: Украина

Re: AT91SAM7 старт с коленки

Сообщение ELcat »

SII Дело в том, что у АВРок команды 16битные, поэтому 8битная константа идёт с командой в комплекте ;)

Increasing на imrad есть, посмотри цены, мож подойдёт.

Satyr я смотрел и на АВР32 и на С3М, но на момен написания этой статьи у меня уже было прикуплено годом ранее пара атмеловских сам7 камней, ну не выкидать же. По поводу АВР32, я ими впечатлён, но их в украине нету и я не нашёл паябельных в их числе. Да и вообще с такими темпами развития микроконтроллерной индустрии скоро будете спрашивать "а почему не применил ARM11 QuadCore 1,2ГГц в LQFP-100 корпусе?" :))

Жека, который Stalker46 и Kris95, а вы случайно не парочка кроликов-тролликов? То что вы делаете, это не хорошо!

Всем! Количество и расположение конденсаторов не зависит от вольтажа контроллера, просто так сложилось, что более новые технологии более быстрых контроллеров рассчитаны на более низкие напряжения. Это связано со степенью интеграции, поскольку становятся меньшими пробивные напряжения, и с тем, что емкостя внутренних линий и связей гораздо быстрее перезарядить до 1,8в, чем до 5. Количество и расположение конденсаторов зависит от требований к помехозащищённости системы, которая в свою очередь определяется величиной потребляемого тока, быстродействием и чувствительностью входных и внутренних цепей к пульсациям питающего напряжения. Я видел, как ребята стартовали филипковский АРМ7 контроллер, распаянный на макетку-переходник, соединённый проводами несколько см с основной платой, на которой стояли кондёры по питанию, и это чудо ещё и работало. Плохая разводка ещё не значит, что не будет работать, она лишь задаёт степень вероятности, с которой будут возникать сбои. И хвати, наконец, жевать одно и то же!
Последний раз редактировалось ELcat Пт ноя 05, 2010 14:11:05, всего редактировалось 1 раз.
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

Re: AT91SAM7 старт с коленки

Сообщение SII »

ELcat писал(а):SII Дело в том, что у АВРок команды 16битные, поэтому 8битная константа идёт с командой в комплекте ;)


А адрес порта? ;) Команды CBI/SBI позволяют установить или сбросить одиночный бит, но только для 32 первых портов (и выполняются, кстати, два цикла, а не один, как OUT, позволяющая обращаться к 64 портам).
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

Re: AT91SAM7 старт с коленки

Сообщение SII »

stas00n писал(а):
SII писал(а): А теперь подсчитайте, сколько тактов нужно АРМу и сколько АВРке для изменения значения одного бита порта при сохранении неизменными всех остальных.

Тут гораздо прикольней, АВР-ке надо 1 инструкцию, например

Код: Выделить всё

sbi PORTB,1

а вот арму надо в лучшем случае минимум 5, компилятор часто растягивает на 6-8 циклов:

Код: Выделить всё

 ldr  r1, [pc, #316]   ; взятие адреса порта в r1
 ldr  r2, [r1]         ;читаем значение порта в r2
 movs r3, #2       ;маска для поразрядного ИЛИ в r3
 orrs r3, r2          ;ИЛИ
 str  r3, [r1]        ;сохраняем новое значение в порт

Кроме того, для хранения адреса к примеру, порта для обращения к нему, для хранения констант расходуется по 4 байта флеши, часто по многу раз.


Компилятор сразу отбрасываем -- если он тупой, это не значит, что у процессора плохая система команд :) Ну а теперь собственно по теме.

Во-первых, у SBI, как я писал постом выше, ограниченный набор адресуемых портов, а значит, это не полноценное решение. Во-вторых, она выполняется 2 цикла, а не один. В-третьих, на АРМе вовсе не требуется пять команд, просто надо другие порты использовать: PIO_SODR для установки, PIO_CODR для сброса, так что остаётся три команды. Ну а в-четвёртых, запись в эти порты позволяет установить или сбросить несколько произвольных разрядов одновременно, не затрагивая остальные, ну а на AVR такой возможности нет. Так что... АРМ лучше :) Другое дело, что глупо напрямую сравнивать 8- и 32-разрядные процессоры (это примерно то же самое, что сравнивать мелкую легковушку с 10-тонным грузовиком).
Аватара пользователя
neonix
Электрический кот
Сообщения: 1040
Зарегистрирован: Чт фев 19, 2009 17:46:34
Контактная информация:

Re: AT91SAM7 старт с коленки

Сообщение neonix »

Satyr ну я думаю на ARM7 или Cortex M3 без кеша производительность с SDRAM упадет, но не на порядок. На AT91SAM9260 c ядром ARM9 и кешем, разницы в производительности между SDRAM и SRAM вообще не видно. Я готов смириться со снижением производительности ради повышения объёма памяти :)
Where technology meets enjoyment.
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: AT91SAM7 старт с коленки

Сообщение Satyr »

neonix писал(а):На AT91SAM9260 c ядром ARM9 и кешем, разницы в производительности между SDRAM и SRAM вообще не видно.

Ну то другое дело. Там конвеер и кеш. SDRAM тем и примечательна, что скорость большая, да латентность тоже -)) С предвыборкой в кеш пофиг, а вот без...

Валяется у меня такая чтука, но на тему SDRAM не мерял, надо будет при случае поглядеть
Изображение
Stepan
Встал на лапы
Сообщения: 126
Зарегистрирован: Пн мар 16, 2009 07:37:42
Откуда: Новосибирск

Re: AT91SAM7 старт с коленки

Сообщение Stepan »

Таки давайте не засирать тему, "старт на коленке", а в бой уже пошли промышленные платы.

Хотя я тоже для первого пуска сам решил не разводить, купил вот такого зверя за тыщу с чем то на основе at91sam7s256 + доп флеш память.
А вообще тут главное пересесть на новую платформу ИМХО, загрузить программу в проц и запустить отладку с житагом.
Потом перейти на другой арм легче будет. Я в кейле пробую, пока нравится, хотя после ассемблера тяжеловато идет. Но скоро первый USB проектик вылупится :-).
Как писать код это можно ориентироваться на примеры от производителя , хотя отладки там заложено слишком много, иногда и поудалять не грех.
Ну а для общего образования рекомендую почитать:
http://microsin.ru/content/category/5/36/44/ - там есть и "записи чайника" и "FreeRTOS" (начинающим читать с конца)...
http://forum.ixbt.com/topic.cgi?id=48:5248 - хорошая подборка ссылок в первом посте
http://www.gaw.ru/html.cgi/txt/doc/micr ... arh_sam7s/ - ну и ГАВ конечно!(сам не читал)
еще и DI-Halt на эту тему пописывать начал ;-) , хорошо пишет, правда о других камнях.
Последний раз редактировалось Stepan Пт ноя 05, 2010 21:31:56, всего редактировалось 1 раз.
меньше слов - больше дела
Stepan
Встал на лапы
Сообщения: 126
Зарегистрирован: Пн мар 16, 2009 07:37:42
Откуда: Новосибирск

Re: AT91SAM7 старт с коленки

Сообщение Stepan »

Кстати я для кейла ещё JTAG не нашел, спецы, может посоветуете?
но вот ссыль сейчас читаю.
меньше слов - больше дела
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

Re: AT91SAM7 старт с коленки

Сообщение SII »

Stepan писал(а):Таки давайте не засирать тему, "старт на коленке", а в бой уже пошли промышленные платы


Ну, лично я б и рекомендовал начинать именно с промышленных плат :) Во всяком случае, с мелких модулей, где распаяны процессор, стабилизатор, кварц и, может, какая-нить датафлэшка. Ибо ручками паять корпус, у которого около сотни ног, весьма напряжно (да и плату под него делать тоже).
stas00n
Вымогатель припоя
Сообщения: 557
Зарегистрирован: Пн мар 23, 2009 04:03:45

Re: AT91SAM7 старт с коленки

Сообщение stas00n »

SII писал(а):Во-первых, у SBI, как я писал постом выше, ограниченный набор адресуемых портов, а значит, это не полноценное решение. Во-вторых, она выполняется 2 цикла, а не один.

Этот момент я не учел, спасибо.
SII писал(а):В-третьих, на АРМе вовсе не требуется пять команд, просто надо другие порты использовать: PIO_SODR для установки, PIO_CODR для сброса, так что остаётся три команды.

У меня нету такого прибамбаса для портов (есть для некоторой другой периферии, для прерываний и еще чего-то; у меня камень NXP LPC1114 - ядро cortex M0). А код я приводил не для порта I/O, а для какого-то другого периферийного регистра (по-моему таймера), но суть та же.
SII писал(а):Другое дело, что глупо напрямую сравнивать 8- и 32-разрядные процессоры

Дык напрямую и не сравниваем. Разная разрядность, разная архитектура, в каждом свои прелести. В армах производительность, в аврах - простота и компактность кода.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»