SapegoAL 0 3 мая, 2009 Опубликовано 3 мая, 2009 · Жалоба Работаю с камнем LPC2106. Он меня полностью устраивает и прекрасно ложится под проект. Поэтому тот вопрос, который я задаю ниже - чисто академический, чтобы лучше узнать архитектуру. Мне не надо никак ускорять. Я просто хочу разобраться. Итак. Запустил камень на частоте близкой к 60 (14.7456*4). Частоту проверил JLink Comander-ом. Подтверждено. Сконфигурировал MAM как положено. Делитель переферийной шины 1:1. То есть быстродействие "по максимуму". Учитывая, что, согласно описанию, производительность данного камня из флэши практически равна такойже из RAM, то пока этим пренебрегаем. Выдаём прямоугольник на ножку прогой типа for(;; ) { OUT_EN_RS485; IN_EN_RS485; } Получаем асмовую прогу, по типу: \ ??main_5: \ 000002AC 4018A0E3 MOV R1,#+4194304 \ 000002B0 001080E5 STR R1,[R0, #+0] \ 000002B4 081080E5 STR R1,[R0, #+8] \ 000002B8 FBFFFFEA B ??main_5 Просмотрел систему команд ARM и высчитал (может ошибся) что данный цикл должен выполнятся 1+2+2+3 такта + ещё 3 такта на сброс конвеера. Итого 11 тактов. То есть при частоте 60МГц мы должны получить частоту ~ 5.45. Реально я получаю 3.5. За счёт чего формируется доп задержка? Как обстоят дела с этим в at91sam7s? (Интересуют конкретные цифры) У STR711? STM32? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 3 мая, 2009 Опубликовано 3 мая, 2009 · Жалоба Работаю ... Стоит ознакомиться с User Manual на LPC2106/01 в части GPIO Usage Notes. Там все достаточно подробно - включая осциллограммы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SapegoAL 0 3 мая, 2009 Опубликовано 3 мая, 2009 · Жалоба У меня там 5 строк. Никаких осциллограм и ничего вообще. Правда 2 пустых страницы. Документ, UM_LPC2106_2105_2104_2.pdf. Скачан с сайта производителя как UM для данной микросхемы. 2003 Oct 02 дата. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 3 мая, 2009 Опубликовано 3 мая, 2009 · Жалоба UM для данной микросхемы. 2003 Oct 02 дата. Раритет, однако. Текущий Rev. 02 — 8 April 2009 почему-бы не взять? http://www.standardics.nxp.com/support/doc...6&type=user , если работать собрались. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 3 мая, 2009 Опубликовано 3 мая, 2009 · Жалоба До кучи еще ссылка на UM10275 Rev. 01 — 4 June 2008 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SapegoAL 0 3 мая, 2009 Опубликовано 3 мая, 2009 · Жалоба Естественно уже нашёл-скачал-читаю. :rolleyes: Занимательно. Похоже Тревор - тоже раритет из области - получить общее представление. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 3 мая, 2009 Опубликовано 3 мая, 2009 (изменено) · Жалоба Как обстоят дела с этим в at91sam7s? (Интересуют конкретные цифры) В потоке (без переходов) на частоте 48 МГц получалось три такта (около 66 наносекунд) между изменениями состояния порта. Где-то в форуме про ARM я задавал свои вопросы начинающего. http://electronix.ru/forum/index.php?showt...st&p=567800 Изменено 3 мая, 2009 пользователем Genadi Zawidowski Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 3 мая, 2009 Опубликовано 3 мая, 2009 · Жалоба Просмотрел систему команд ARM и высчитал (может ошибся) что данный цикл должен выполнятся 1+2+2+3 такта + ещё 3 такта на сброс конвеера. Ошиблись. 1+2+2+3 и хватит. Конвейер вместе с выполнением перехода сбрасывается. Данные цифры будут только при использовании Fast GPIO. При работе через обычную шину там один доступ в 7 тактов, чтоли, если мне память не изменяет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SapegoAL 0 3 мая, 2009 Опубликовано 3 мая, 2009 · Жалоба IAR for ARM 5.10. Файл iolpc2104.h издания 9.12.07. Про fast io ни сном ни духом. Кстати третий уже недочёт у IAR. Вообще файлы под конкретные камни не правят. Я, конечно сейчас и сам подправлю, но всё же. Должны же они отслеживать такие вещи. Им же явно присылают. :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 4 мая, 2009 Опубликовано 4 мая, 2009 · Жалоба IAR for ARM 5.10. Файл iolpc2104.h EWARM5.30, lpc2104.h ... /*************************************************************************** ** ** GPIO ** ***************************************************************************/ __IO_REG32_BIT(IOPIN, 0xE0028000,__READ,__gpio_bits); __IO_REG32_BIT(IOSET, 0xE0028004,__READ_WRITE,__gpio_bits); __IO_REG32_BIT(IODIR, 0xE0028008,__READ_WRITE,__gpio_bits); __IO_REG32_BIT(IOCLR, 0xE002800C,__WRITE,__gpio_bits); __IO_REG32_BIT(FIO0DIR,0x3FFFC000,__READ_WRITE,__fgpio_bits); ... __IO_REG32_BIT(FIO0MASK,0x3FFFC010,__READ_WRITE,__fgpio_bits); ... __IO_REG32_BIT(FIO0PIN,0x3FFFC014,__READ_WRITE,__fgpio_bits); ... __IO_REG32_BIT(FIO0SET,0x3FFFC018,__READ_WRITE,__fgpio_bits); ... __IO_REG32_BIT(FIO0CLR,0x3FFFC01C,__WRITE ,__fgpio_bits); ... Как видите, все на месте ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SapegoAL 0 4 мая, 2009 Опубликовано 4 мая, 2009 · Жалоба Будьте так любезны - киданите этот файлик. Пока что-то не заводится. Сделал свой .h - проверил по шагам на асме - всё пишется туда куда надо - в ответ тишина. Вопрос: А с какого момента эта фича на камне присутствует? Может у меня старая ревизия камня? PS: С файлом отбой. Всё что надо есть в 2101.h. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bus16 0 4 мая, 2009 Опубликовано 4 мая, 2009 · Жалоба А разве в 2106 есть Fast GPIO? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 4 мая, 2009 Опубликовано 4 мая, 2009 · Жалоба А с какого момента эта фича на камне присутствует? Может у меня старая ревизия камня? Черным по белому практически на первой странице скаченного Вами документа - New features implemented in..... Там еще и фичи кроме Fast GPIO описаны. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SapegoAL 0 4 мая, 2009 Опубликовано 4 мая, 2009 · Жалоба Всё сенькую. Отбой. У меня версия кристалла LPC2106F/00. :) Так что оценить прелести FAST я пока не смогу. Но мне пока это и без надобности. Просто любопытство. Буду знать что есть такая шняга и подправлю проект позже. А сейчас сделаю в проекте так, чтобы это можно было подправить одной строкой. :) Торжественно ввожу в проект строчку //#define FAST_GPIO // Поддержка кристаллов версии 01 :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 12 мая, 2009 Опубликовано 12 мая, 2009 · Жалоба Торжественно ввожу в проект строчку //#define FAST_GPIO // Поддержка кристаллов версии 01 :) Небольшой hint. Если определение FAST_GPIO задаете в коде, а не в строке компилятора, то вводите лучше #define FAST_GPIO FALSE // set to true when present вместо #ifdef/ifndef пользуйте #if FAST_GPIO ... тады парсеры текста лучше понимают что к чему, и по клику на "FAST_GPIO" сразу видно вкл или откл. FALSE/TRUE ессно должны быть определены раньше, как 0 и 1 ;> Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться