Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вот начал работу с LPC2106
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
SasaVitebsk
Вот начал работу с LPC2106. Ну не всё так празднично как многие рисуют! И где хвалёная конкуренция в области ARM7?
Вот zltigo говорит о бессмысленности применения старших моделей Mega кристаллов (об xmega мы помолчим, в связи с их недоступностью). Основание: цена выше аналогичных моделей ARM7. Но это не вся правда! Если не сказать что просто неправда.

Итак m640 - 100 выводов корпус /86 выходов/ 6 таймеров/ 4 UARTA/ 64К/8К/ 8(16)-10АЦП .... ну и так далее. За 8.5$ в любом ларьке.

Предложите сопоставимый кристалл по цене в 1.5 раза дороже.

На LPC2106 такая мелочь, как отсутствие возможности обработать прерывание по фронту. Просто убило. Отсутствие регулируемой или даже внешней опоры для 2114. 2 таймера, при отсутствии поддержки 485 (сразу один выкинь). Внешний BOD и источники. Внешняя EEPROM.

На SAM7S свои глюки. Перебираешь - перебираешь, - выбрать то реально не из чего! LPC23XX с внешними EEPROM+BOD+2источника+ADC - и вот уже цифра 25$. Где же экономия??? Ногодрыгание на 60МГц - 20. На 48 осмысленное - 10. Так та же xmega с её переферией порвёт как тузик грелку.


Да можно ужиматься по переферии, вылизывать подходы, ставить внешние компоненты и извращаться. Но когда мы говорим о применении компилятора, то предлагаем брать контроллер с запасом по флэшу, озу и производительности. Так почему я должен ужиматься по переферии??? Значительно приятнее работать с 4 таймерами чем с одним.
GetSmart
Цитата(SasaVitebsk)
На LPC2106 такая мелочь, как отсутствие возможности обработать прерывание по фронту. Просто убило. Отсутствие регулируемой или даже внешней опоры для 2114. 2 таймера, при отсутствии поддержки 485 (сразу один выкинь). Внешний BOD и источники. Внешняя EEPROM.

На SAM7S свои глюки. Перебираешь - перебираешь, - выбрать то реально не из чего! LPC23XX с внешними EEPROM+BOD+2источника+ADC - и вот уже цифра 25$. Где же экономия???
Таймеров там можно сказать 4. Два обычных, PWM и WDT. Любой можно использовать для 485. Хотя два обычных таймера имеют 4 MATCH регистра каждый и соответственно 1 таймер может обрабатывать 4 разных события.

EEPROM (Flash) вообще-то внутренняя, как и у всех LPC2xxx.

Между LPC2106 и LPC23xx есть куча разных камней с ценами значительно ниже чем у этих, так что искать надо лучше, а не хаять LPC.
IgorKossak
Цитата(SasaVitebsk @ Jun 11 2008, 00:47) *
...LPC23XX с внешними EEPROM+BOD+2источника+ADC ...

У LPC23XX внутренний BOD, ADC и 1 источник. А для 485 не использую никаких таймеров уже очень давно, вполне достаточно стартовых байтов.
zltigo
Цитата(SasaVitebsk @ Jun 10 2008, 23:47) *
Вот начал работу с LPC2106.

Самый-самый первый, самый-самый старый чип LPC. Обязательно было "начинать свамого начала" LPC строения?
Цитата
Итак m640 - 100 выводов корпус /86 выходов/ 6 таймеров/ 4 UARTA/ 64К/8К/ 8(16)-10АЦП .... ну и так далее. За 8.5$ в любом ларьке.
Предложите сопоставимый кристалл по цене в 1.5 раза дороже.

Дороже нет sad.gif есть только дешевле. Если, конечно, не заниматся поиском точно такого-же обязательно с 4UART,16ADC.. 100pin и ни милиметра в сторону.
Цитата
Отсутствие регулируемой или даже внешней опоры для 2114.

Упорно выбираем самые первые модели smile.gif LPC2114 это конкретно второй, после 2106 чип smile.gif. С него начинал лет пять (шесть?) назад smile.gif. Внешняя опора есть, называется аналоговое питание. Не знаю, чего там от него питается, и почему так называется, но потребление ничтожное и вполне соответствует понятию вход опорного напряжения. После появления LPC213/4x больше не использую - нет нималейших причин.
Цитата
Внешняя EEPROM.

Спасибо smile.gif я лучше внешную EEPROM за несколько центов и два резистора поставлю на отличный I2C контроллер от Philips, чем буду заниматься шаманством и чтением чрезмерно уж многочисленных обсуждений на тему "отчего у меня слетела EEPROM в AVR, нахрен" smile.gif, "О некошерности 0 адресов AVR EEPROM" и прочих. Если оно конечно стоит, то естественно использую smile.gif, но об отсутствии у других не пожалел не разу. Кстати, начиная с LPC23xx имеетcя 2K энергонезависимой RAM.

Цитата(IgorKossak @ Jun 11 2008, 08:09) *
У LPC23XX внутренний BOD, ADC и 1 источник.

у lpc23XX само собой, а так начиная с LPC213x
Alex B._
Цитата(zltigo @ Jun 11 2008, 10:15) *
Спасибо smile.gif я лучше внешную EEPROM за несколько центов

Иногда бывает, что внешнюю просто нельзя ставить, хотя бы потому, что ее кто-нить может прочесть кроме самого контроллера. Одометры всех комбинаций приборов, у которых стоит внешняя епром уже научились скручивать...
А со всем остальным полностью согласен.
Andreas1
Цитата(zltigo @ Jun 11 2008, 10:15) *
Спасибо smile.gif я лучше внешную EEPROM за несколько центов и два резистора поставлю на отличный I2C контроллер от Philips, чем буду заниматься шаманством и чтением чрезмерно уж многочисленных обсуждений на тему "отчего у меня слетела EEPROM в AVR, нахрен" smile.gif, "О некошерности 0 адресов AVR EEPROM" и прочих.

Если наступать на грабли, не следовать рекомендациям производителя, не ставить эти 2 резистора на I2C..., то остается только шаманство. smile.gif
А при соблюдении известных правил, слет EEPROM в новых аврках примерно равен по частоте выходу из строя микрочиповских 24LCxx(читаются одни FF, хотя число перезаписей меньше 1000). Проверено и на своих, и на чужих изделиях: около одного случая на тысячу в год. А перекалибровать проще, чем менять чип.
SasaVitebsk
Цитата(zltigo @ Jun 11 2008, 09:15) *
Самый-самый первый, самый-самый старый чип LPC. Обязательно было "начинать свамого начала" LPC строения?

Да я не хаю. Просто зло берёт. Изучал по Мартину, - даже предположить не мог что прерывания по перепаду нет. Теперь выкручиваться придётся. У меня по длительности прерывания синхронизация осуществляется. Сделаю конечно, просто такие мелочи раздражают.

Надо кристал в корпусе PLCC от 48 до 100 ног. Хотелось бы озу побольше 48/64, пару SPI, i2c, RS485, 3 таймера, 1 ADC и 1 PWM. 32 бита (Лучше конечно ARM7). EEPROM у меня и так внешняя - это не страшно.
GetSmart
Я тоже один раз попал в просак с такими вот недоработками LPC. Начинал освоение с LPC213x и всю периферию знал наизусть. В новый проект поставил LPC2294 и планировал аппаратно через таймер подсчитывать внешние импульсы (с частотой до 5 МГц). Как потом оказалось 2294 не имеет такую фичу таймера. Пришлось делать через одно место. Ну буквально мелочи какой-то нет, а в остальном он не хуже современных LPC24xx.
vet
SasaVitebsk, LPC2365 ?
SasaVitebsk
Цитата(vet @ Jun 11 2008, 12:20) *
SasaVitebsk, LPC2365 ?


Код
К сожалению, на Ваш запрос ничего не найдено.
Если Вы искали позицию с наличием "На складе", попробуйте поискать "На заказ".

На заказ - тот же результат.
Сергей Борщ
Цитата(SasaVitebsk @ Jun 11 2008, 11:57) *
даже предположить не мог что прерывания по перепаду нет. Теперь выкручиваться придётся.
Я чего-то не понял, или вам надо измерять длительность входного импульса? Тогда это делается заведением импульса на вход захвата таймера. Получаем и прерывание по перепаду и аппаратный измеритель момента перепада и почти аппаратный измеритель длительности импульса.
zltigo
Цитата(GetSmart @ Jun 11 2008, 11:14) *
Ну буквально мелочи какой-то нет, а в остальном он не хуже современных LPC24xx.

EMC у него странноват? тормозноват и простоват. Питание ядра отдельно. SPI простенькие. Контроллер прерываний (я не фронтах) у свежих продвинутее. Частота поменьше. UARTы тактируются гибче у новых. Это из того, что лично меня интересует. В общем прошли годы... Хотя при том, что NXP утверждает, что в обозримом будущем ничего с производства снимать не будет (и что характерно, в отличие от многих других производителей действительно ничего не сняло) то использовать его тоже не особый грех smile.gif
Цитата(Andreas1 @ Jun 11 2008, 09:08) *
Если наступать на грабли, не следовать рекомендациям производителя...

Ну начнем с того, что рекомендации производителя в лице Atmel по использованию ее внутренней EEPROM очень не блещут ни полнотой ни разумностью, ни мотивированностью. Если, вдруг, буде Вы такие официальные имеете - дайте знать. Я иногда AVR использую, но реально систематизированных рекомендаций, а не разрозненных статей неведомо к чему относящимся не встречал. Посему шаманство есть неотъемлемое sad.gif условие использование этого продукта.
Внешний EEPROM у меня почти вcегда, как минимум по причине объема, и свободы его варьирования.

Цитата(Alex B._ @ Jun 11 2008, 09:06) *
Одометры всех комбинаций приборов, у которых стоит внешняя епром уже научились скручивать...

Контрольная сумма и индивидуальный ключ в контроллере и обладающие программатором и "сокровенным знанием" по преводу hex в dec идут лесом.
У меня конфигурационные данные в EEPROM вообще в текстовом виде и с комментариями хранятся. Очень удобно глянуть конфигурацию. Только вот подписаны smile.gif....
defunct
Цитата(SasaVitebsk @ Jun 11 2008, 00:47) *
На LPC2106 такая мелочь, как отсутствие возможности обработать прерывание по фронту. Просто убило. Отсутствие регулируемой или даже внешней опоры для 2114. 2 таймера, при отсутствии поддержки 485 (сразу один выкинь). Внешний BOD и источники. Внешняя EEPROM.

Я LPC2106 с AVRкой (m48..168) в паре применяю (корпуса по площади одинаковые).
Там где нужна быстрая реакция - пыхтит AVRка. все остальное на 2106.
Памяти куча, корпуса мелкие да и PCB простая получается.

Нехватка периферии 2106 компенсируется мегой. По цене совсем не накладно.
Итого имеем суммарно 4 + 3 таймеров. 2 + 1 UARTов, прерывания по фронтам и без фронтов,
8 каналов АЦП, куча PWM, 65k RAM, EEPROM и т.д.

связь по I2C.
SasaVitebsk
Цитата(Сергей Борщ @ Jun 12 2008, 12:10) *
Я чего-то не понял, или вам надо измерять длительность входного импульса? Тогда это делается заведением импульса на вход захвата таймера. Получаем и прерывание по перепаду и аппаратный измеритель момента перепада и почти аппаратный измеритель длительности импульса.

До такого не додумался. smile.gif

Но мне не надо измерять длительность, мне надо там иметь две градации. Короткое прерывание и длинное. Таймер под это задействовать очень жалко. И так их не хватает. Я просто в нужном месте обработчика сигнал на линии опрашиваю.

Цитата
Я LPC2106 с AVRкой (m48..168) в паре применяю (корпуса по площади одинаковые).


В данном случае это избыточно. Считаю, что сама LPC должна справится. Хотя - посмотрим.


Всем спасибо за обсуждение. Всё равно пока оно предварительное. Запущу, тогда смогу более-менее выссказать свои впечатления. Пока вижу только одно. Из проекта меняется очень многое, к сожалению.
Сергей Борщ
Цитата(SasaVitebsk @ Jun 13 2008, 11:48) *
Но мне не надо измерять длительность, мне надо там иметь две градации. Короткое прерывание и длинное. Таймер под это задействовать очень жалко. И так их не хватает. Я просто в нужном месте обработчика сигнал на линии опрашиваю.
Вы с тем же (или бОльшим) успехом можете опрашивать флаг захвата таймера. Или все регистры захвата тоже заняты? Таймер и регистры сравнения при этом могут заниматься другими делами...
Dog Pawlowa
Цитата(IgorKossak @ Jun 11 2008, 09:09) *
А для 485 не использую никаких таймеров уже очень давно, вполне достаточно стартовых байтов.

Сорри за офф по отношению к ARMам, но нельзя ли подробнее?
Натолкнулся на приборчик, которому ну выдай пассивное состояние в течение времени не меньше байта - похоже, у этого прибора растяжка в сторону break. Как мне кажется, в этом случае любое количество стартовых байтов (такого же формата) не гарантирует успешной синхронизации в начале пакета.
IgorKossak
Цитата(Dog Pawlowa @ Jun 16 2008, 08:32) *
Сорри за офф по отношению к ARMам, но нельзя ли подробнее?
Натолкнулся на приборчик, которому ну выдай пассивное состояние в течение времени не меньше байта - похоже, у этого прибора растяжка в сторону break. Как мне кажется, в этом случае любое количество стартовых байтов (такого же формата) не гарантирует успешной синхронизации в начале пакета.

Тема была сильно избита в AVR, но в кратце скажу, что пара байт 0xff или 0xfe, в зависимости от чётности\нечётности, спасают ситуацию. Главное, чтобы их значения не были управляющими для выбранного протокола.
SasaVitebsk
Возник вопрос. Развёл JTAG на secondary JTAG. У меня JLINK с дровами seggerа и IAR. Не могу понять как указать JLINKу что надо на второй порт идти. Он RTCK садит гад на землю. (я её подпёр на 1 ч/з 10кОм). Кто знает подскажите.
Заранее благодарю.


PS: Нашёл соответствующие ветки. Разбираюсь
zltigo
Цитата(SasaVitebsk @ Jun 18 2008, 17:03) *
PS: Нашёл соответствующие ветки. Разбираюсь

Да, по отношеию к 2106 это очень подробно обсуждалось.
defunct
Цитата(SasaVitebsk @ Jun 18 2008, 18:03) *
Возник вопрос. Развёл JTAG на secondary JTAG. У меня JLINK с дровами seggerа и IAR. Не могу понять как указать JLINKу что надо на второй порт идти. Он RTCK садит гад на землю. (я её подпёр на 1 ч/з 10кОм).

тут немного по теме.
http://electronix.ru/forum/index.php?showt...9697&st=28#

RTCK не важен, DBGSEL просто отпустите (n/c), этого будет достаточно для того чтобы работать через второй порт.
Ну и работать через RDI. (всмысле в IAR'е выбрать не JLink, а RDI драйвер). В настройках RDI установите задержку после сброса - 50ms работает стабильно.
SasaVitebsk
Не могу записать с помощью flash magic.
С компа поступают символы с периодичностью ~3сек. В ответ тишина.
P0.14 (44 нога) на земле. Reset в 1.

Один раз вошёл в чтение сигнатуры. Заполнен был ID кристала и версия 1.5;
Я попытался записать - написала ошибка верификации по адресу 0.

Теперь ни в какую.
Питание есть. Генерация на кварце присутствует.

Что из ног ещё может создавать проблемы? Или какие могут быть подводные камни?
IgorKossak
Цитата(SasaVitebsk @ Jun 21 2008, 18:15) *
Не могу записать с помощью flash magic.

Какой камень?
Частота кварца правильно указана?
Скорость порта пробовали понизить (при 9600 работает лучше)?
Каким образом осуществляется вход в режим программирования?
zltigo
Цитата(SasaVitebsk @ Jun 21 2008, 17:15) *
Не могу записать с помощью flash magic.

Тут на форуме выкладывад свою AT200 - в ней есть полная диагностика с логом. Поможет разобраться.
У LPC2106 может быть и не P0.14 - что-там были вариации с ревизиями загрузчиков...
А вообще для пустого чипа даже P0.14 по барабану - ему некуда деваться, кроме, как в загрузчик идти.
Кварец важен - не для всех скоростей решается задача с двумя неизвестными Частота кварца и Боды.
На 9600 годится почти для любого. Дальше смотреть табличку..
SasaVitebsk
Камень LPC2106.
Кварц 1474560 (В FlashMagic записано как 14.7456).
Пробовал включая 2400. Отозвалось 1 раз на 4800.
Использую шнурок - TxD, RxD, GND. Пересбрасываю вручную.
По P0.14 - думал альтернатив не бывает. Буду выяснять. Проверю также и AT200 хотя не представляю как она может помочь, если кристалл молчит в ответ.

Заказал вторую плату изготовить, но это время.
zltigo
Цитата(SasaVitebsk @ Jun 21 2008, 21:02) *
Проверю также и AT200 хотя не представляю как она может помочь, если кристалл молчит в ответ.

То, что "Magic" молчит, не значит, что чип молчит. Все, что чип отвечает можно увидеть.
IgorKossak
Для начала можно простым терминалом посмотреть подавая команды ISP вручную, начиная с ? и прверкой синхронизации.
Кстати, коллега недавно столкнулся с похожей ситуацией, и кварц вроде бы тот, да вот конденсаторы при нём оказались не те.
SasaVitebsk
Конденсаторы - проверю. То что чип молчит - это я осциллографом вообщето. И то что на него поступает, естественно, тоже осциллографом. Частоту кварца пока не смотрел. Просто сам факт генерации проверил ну и размахи. Вроде бы стандартные для 3.3.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.