AT91SAM7 старт с коленки
Re: AT91SAM7 старт с коленки
Дак ясно то не со мной, а с тобой. Что кое кто по3,14здеть любит
Re: AT91SAM7 старт с коленки
kris95 писал(а):Дак ясно то не со мной, а с тобой. Что кое кто по3,14здеть любит
воздержусь...
Не умеешь - не берись, но не взявшись не научишься...
Re: AT91SAM7 старт с коленки
ELcat писал(а):Надоело как-то возиться с AVRками, захотелось мощщирешил освоить ARM7.
Несколько не оптимальное решение. Мощь там средненькая, и чтука устаревшая.
ARMы на ядре Cortex-M3 стоят сейчас практически как ARM7, а по частотам и производительности на мегагерц заметно впереди. Так что какой смысл ?
С AVR тоже соскакивать не обязательно. Есть AVR32 - по удельной производительности не хуже кортекса. И перифирия и гибкость ее разброса по ногам интереснее, чем во всех виденных мной вещах на ARMах. Вот только недолюбливают у нас продавцы AVR32 - реально дефицит.
Re: AT91SAM7 старт с коленки
ELcat писал(а):товать. Я сам знаком только с CodeVision AVR, но я решил работать в IAR, просто показалось, что эта среда более популярна в нете.
Среда там весьма архаична, но компиляторы IAR очень суровы.
Для AVR32 разница в производительности кода, компиленного GNU и IAR компилером легко может достигать 1.5 и более раз.
Но цены на IAR ужосающие...
Re: AT91SAM7 старт с коленки
neonix писал(а):. Я вот всё ищу ARM7 или CortexM3 с внешней SDRAM, ибо хочеться по настоящему больших объёмов памяти
А что искать ? это не проблема. Практически у всех производителей на чипы от 100 ног это часто есть. EBI, EMI и подобными терминами называется в анонсах.
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: AT91SAM7 старт с коленки
ELcat писал(а):SII Честно, не могу допереть. Допустим у меня задача с максимально возможной скоростью выдвинуть какую-то последовательность констант, допустим для инициализации чего-то там не важно чего. В AVR всё просто
PORTB=00;
PORTB=0F;
PORTB=B5;
PORTB=BA;
PORTB=04;
PORTB=17;
Такая последовательность вылетит за 6 циклов ядра, у ARMа же для решения подобной задачи потребуется в два раза больше циклов. Если я не прав, то поправь меня.
Не 6, а 12 циклов (загрузка константы в регистр, вывод регистра в порт). В АРМах -- ровно столько же (во всяком случае, в AT91SAM9261 и AT91SAM7X..., но подозреваю, что и в остальных АТМЕЛовских тоже): загрузка в регистр, затем вывод в порт PIO_ODSR. А теперь подсчитайте, сколько тактов нужно АРМу и сколько АВРке для изменения значения одного бита порта при сохранении неизменными всех остальных.
-
Increasing
- Встал на лапы
- Сообщения: 135
- Зарегистрирован: Вт окт 21, 2008 20:45:50
- Откуда: Odessa
Re: AT91SAM7 старт с коленки
Где в Украине можно приобрести эту сладкую парочку микроконтроллеров на ядре ARM Cortex M3? По человеческим ценам естественно.
LPC1343FBD48 -1 шт.
STM32F103C8T6 -1 шт.
LPC1343FBD48 -1 шт.
STM32F103C8T6 -1 шт.
- neonix
- Электрический кот
- Сообщения: 1040
- Зарегистрирован: Чт фев 19, 2009 17:46:34
- Контактная информация:
Re: AT91SAM7 старт с коленки
Satyr писал(а):А что искать ? это не проблема. Практически у всех производителей на чипы от 100 ног это часто есть. EBI, EMI и подобными терминами называется в анонсах.
Увы не у всех чипов контроллер внешней памяти имеет возможность подключения SDRAM. Камни с SDRAM контроллером можно пересчитать на пальцах одной руки
Where technology meets enjoyment.
Re: AT91SAM7 старт с коленки
SII писал(а):ELcat писал(а):SII Честно, не могу допереть. Допустим у меня задача с максимально возможной скоростью выдвинуть какую-то последовательность констант, допустим для инициализации чего-то там не важно чего. В AVR всё просто
PORTB=00;
PORTB=0F;
PORTB=B5;
PORTB=BA;
PORTB=04;
PORTB=17;
Такая последовательность вылетит за 6 циклов ядра, у ARMа же для решения подобной задачи потребуется в два раза больше циклов. Если я не прав, то поправь меня.
Не 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 байта флеши, часто по многу раз.
Re: AT91SAM7 старт с коленки
Справедливости ради могу отметить, что если надо поменять более 1 бита, на авр получается почти так же:
Ну а если надо оперировать более чем 1 байтом, арм выигрывает однозначно (на авр, понятно, количество инструкций возрастает пропорционально)
Код: Выделить всё
in r16,portb
ori r16,3
out portb,r16
Ну а если надо оперировать более чем 1 байтом, арм выигрывает однозначно (на авр, понятно, количество инструкций возрастает пропорционально)
Re: AT91SAM7 старт с коленки
neonix писал(а):Satyr писал(а):А что искать ? это не проблема. Практически у всех производителей на чипы от 100 ног это часто есть. EBI, EMI и подобными терминами называется в анонсах.
Увы не у всех чипов контроллер внешней памяти имеет возможность подключения SDRAM. Камни с SDRAM контроллером можно пересчитать на пальцах одной руки![]()
Аа, прям принципиально сдрам надо ? То, что попадалось на глаза, обычно давало подсоединить 2-4 банка по 64мега максимум чего либо. Да и с какой скорость оно работать будет - тоже вопрос. Возможно, и самому захочется за те же деньги поменьше, но SRAM и пошустрей.
Валяется у меня платка на AVR32 с SDRAM - можно померять. НО! видел камни, где часть SRAM напрямую к ядру приделана, половина через внутреннюю шину. Так вот даже там вторая работает не так шустро, как первая. А внешняя SDRAM, да ядро без кеша...
Т.е. вопрос довольно научный.
Re: AT91SAM7 старт с коленки
SII Дело в том, что у АВРок команды 16битные, поэтому 8битная константа идёт с командой в комплекте 
Increasing на imrad есть, посмотри цены, мож подойдёт.
Satyr я смотрел и на АВР32 и на С3М, но на момен написания этой статьи у меня уже было прикуплено годом ранее пара атмеловских сам7 камней, ну не выкидать же. По поводу АВР32, я ими впечатлён, но их в украине нету и я не нашёл паябельных в их числе. Да и вообще с такими темпами развития микроконтроллерной индустрии скоро будете спрашивать "а почему не применил ARM11 QuadCore 1,2ГГц в LQFP-100 корпусе?"
Жека, который Stalker46 и Kris95, а вы случайно не парочка кроликов-тролликов? То что вы делаете, это не хорошо!
Всем! Количество и расположение конденсаторов не зависит от вольтажа контроллера, просто так сложилось, что более новые технологии более быстрых контроллеров рассчитаны на более низкие напряжения. Это связано со степенью интеграции, поскольку становятся меньшими пробивные напряжения, и с тем, что емкостя внутренних линий и связей гораздо быстрее перезарядить до 1,8в, чем до 5. Количество и расположение конденсаторов зависит от требований к помехозащищённости системы, которая в свою очередь определяется величиной потребляемого тока, быстродействием и чувствительностью входных и внутренних цепей к пульсациям питающего напряжения. Я видел, как ребята стартовали филипковский АРМ7 контроллер, распаянный на макетку-переходник, соединённый проводами несколько см с основной платой, на которой стояли кондёры по питанию, и это чудо ещё и работало. Плохая разводка ещё не значит, что не будет работать, она лишь задаёт степень вероятности, с которой будут возникать сбои. И хвати, наконец, жевать одно и то же!
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 старт с коленки
ELcat писал(а):SII Дело в том, что у АВРок команды 16битные, поэтому 8битная константа идёт с командой в комплекте
А адрес порта?
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: AT91SAM7 старт с коленки
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 такой возможности нет. Так что... АРМ лучше
- neonix
- Электрический кот
- Сообщения: 1040
- Зарегистрирован: Чт фев 19, 2009 17:46:34
- Контактная информация:
Re: AT91SAM7 старт с коленки
Satyr ну я думаю на ARM7 или Cortex M3 без кеша производительность с SDRAM упадет, но не на порядок. На AT91SAM9260 c ядром ARM9 и кешем, разницы в производительности между SDRAM и SRAM вообще не видно. Я готов смириться со снижением производительности ради повышения объёма памяти 
Where technology meets enjoyment.
Re: AT91SAM7 старт с коленки
neonix писал(а):На AT91SAM9260 c ядром ARM9 и кешем, разницы в производительности между SDRAM и SRAM вообще не видно.
Ну то другое дело. Там конвеер и кеш. SDRAM тем и примечательна, что скорость большая, да латентность тоже -)) С предвыборкой в кеш пофиг, а вот без...
Валяется у меня такая чтука, но на тему SDRAM не мерял, надо будет при случае поглядеть

Re: AT91SAM7 старт с коленки
Таки давайте не засирать тему, "старт на коленке", а в бой уже пошли промышленные платы.
Хотя я тоже для первого пуска сам решил не разводить, купил вот такого зверя за тыщу с чем то на основе 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 на эту тему пописывать начал
, хорошо пишет, правда о других камнях.
Хотя я тоже для первого пуска сам решил не разводить, купил вот такого зверя за тыщу с чем то на основе 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 раз.
меньше слов - больше дела
Re: AT91SAM7 старт с коленки
Кстати я для кейла ещё JTAG не нашел, спецы, может посоветуете?
но вот ссыль сейчас читаю.
но вот ссыль сейчас читаю.
меньше слов - больше дела
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: AT91SAM7 старт с коленки
Stepan писал(а):Таки давайте не засирать тему, "старт на коленке", а в бой уже пошли промышленные платы
Ну, лично я б и рекомендовал начинать именно с промышленных плат
Re: AT91SAM7 старт с коленки
SII писал(а):Во-первых, у SBI, как я писал постом выше, ограниченный набор адресуемых портов, а значит, это не полноценное решение. Во-вторых, она выполняется 2 цикла, а не один.
Этот момент я не учел, спасибо.
SII писал(а):В-третьих, на АРМе вовсе не требуется пять команд, просто надо другие порты использовать: PIO_SODR для установки, PIO_CODR для сброса, так что остаётся три команды.
У меня нету такого прибамбаса для портов (есть для некоторой другой периферии, для прерываний и еще чего-то; у меня камень NXP LPC1114 - ядро cortex M0). А код я приводил не для порта I/O, а для какого-то другого периферийного регистра (по-моему таймера), но суть та же.
SII писал(а):Другое дело, что глупо напрямую сравнивать 8- и 32-разрядные процессоры
Дык напрямую и не сравниваем. Разная разрядность, разная архитектура, в каждом свои прелести. В армах производительность, в аврах - простота и компактность кода.
