![](https://electronix.ru/forum/uploads/set_resources_23/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
![](https://electronix.ru/forum/uploads/set_resources_23/84c1e40ea0e759e3f1505eb1788ddf3c_default_photo.png)
adnega
-
Постов
3 594 -
Зарегистрирован
-
Посещение
-
Победитель дней
3
Сообщения, опубликованные adnega
-
-
И выводы пошустрее, SPI с делителем на два....
-
А какой вид имеют входные сигналы? Это монотонные функции? Какое время нахождения выше порога?
На STM32F103 можно включить непрерывное преобразование 4 каналов (CH0->CH1->CH2->CH3->CH0-> и т.д.) с автоматическим укладыванием в память посредством DMA. Если настроить DMA для работы в кольцевом режиме с генерацией прерывания при половинном заполнении, то по прерыванию можно анализировать порог программно (при этом DMA и АЦП будут работать и получать новые данные). Если превышение есть, то у Вас в буфере уже есть предыстория сигналов на N отсчетов назад.
Затем готовите пакет и отправляете хоть по USB.
-
Может, stm32f103 подойдет? АЦП 12 бит. Есть DMA и USB. У АЦП есть аналоговый вотчдог. Посмотрите, по-моему так самое оно ))
Кста, и ценник хороший.
-
точное число бит указать невозможно, т.к. это переменная величина, зависящая от данных, ибо в протоколе используется bit stuffing
-
-
Я логику какую наблюдаю: для АВР грицо, мол, не пользуйте в промышленном управлении, медицинском оборудовании и в космос не пускайте; а у LPC наооборот - позиционируют все (может, кроме космоса). Вот, и мне с одной стороны нужен проц пошустрее и недорогой, а с другой стороны устойчивый к вредным воздействиям со стороны пользователя. Да, LPC мне шустрость нужную обеспечил... но и тревогу тоже. Ни на одном ките (LPC) не видел защиты выводов (оно и понятно), но больше всего поражает, что вопросы выхода из строя не поднимаются (борьба с отказами, предупреждение отказов). Типа, сгорел - я сам виноват. Субъективно, АВР сложнее убить, чем АРМ (LPC). Что посоветуете, если я хочу делать универсальные процессорные модули в мезонином исполнении и передавать другим лицам? Делать защиту серьезную или просто резисторы ставить?
ПС. Надо мануал почитать на выходы LPC - какие там допустимые уровни напряжений и токов!!
-
Вчера преподнял ноги питания проца - КЗ на плате пропало. Часть пар питания в КЗ, а часть как у живого.
Запаял те, что "живые" - ни JTAG, ни UART0 не работают, отсутствие реакции полное. Генерацию кварца пока посмотреть не могу.
Вывод: "ой-ой-ой"... В целом впечатление от LPC - нежные очень. В одном из образцов LPC2101 - не работает генератор RTC. Причем, от внутреннего генератора работает).
По-моему, в схему такие процы надо закладывать выводами через буфера.
Или быть предельно аккуратным (попробуй добейся этого от других)?
-
письмецо с архивом вроде ушло
-
Не сочтите меня криворуким или садистом, просто, приходилось сталкиваться...
Выходы LPC2468 поштучно выгорали при попадании на них +12В. Проц при этом до сих пор живой, а у этого - чистое КЗ. У меня подозрения, что проц может и работает, а на плате где-то КЗ. (перепаивать времени нету, а жить с тревогой на душе, что может потом где всплывет... сами понимаете)
До этого работал с AVR - весьма не убиваемая по моим понятиям штука ))
-
Добрый день!
Развел для себя плату на основе LPC2368. Планирую использовать плату просто как средство удобного подключения к ногам 0.5 мм, посему, на плате минимум - только все самое необходимое (схема питания, батарейка RTC, кварцы, JTAG).
Запаял одну плату - все работало. Потом при включенном питании стал переключать питание, батарейку RTC, JTAG, кнопку и светодиод с одной платы на другую... в итоге первая "умерла".
Между выводами питания короткое замыкание. Все компоненты от шины питания отпаял (конденсаторы, стабилизатор) - остался один проц. Все равно КЗ, на входе куда подключал кнопку звонится 200 ом на землю.
Допускаю, что во время переключения какие-нибудь линии замыкались между собой.
Вопрос: чтобы такое не повторялось в будущем достаточно ли подключения делать не под напряжением или нужны дополнительные меры защиты (от статики, ограничители тока, и т.п.)
Хотел бы из этого происшествия урок извлечь и процов больше не палить ))
(или КЗ на плате искать? ;) )
-
Настроить GPIO, включить питание/тактирование ADC, инициализировать ADC, считывать нужные данные.
1. К какой ноге подводится напряжение (уровень)? Вся ли внешняя обвязка АЦП подключена?
2. Вам готовый проектик нужен? (могу вечером кинуть)
-
Спасибо. Теперь я ЭТО увидел (аж стыдно).
-
Добрый день!
В LPC2368 есть 2К памяти питающейся от батарейки. Есть проблема с записью данных.
Если пишу 32-битными данными с выравниванием на 4, то все ок.
Если пишу 8-битными данными, то все 4 байта, которые относятся к слову заполняются одним и тем же 8-битным кодом.
В user_manual про Bat RAM указан только размер и начало области.
Пример:
до записи
0xE0084000 - 00 00 00 00 - 00 00 00 00
после записи байта 01 по адресу 0xE0084000
0xE0084000 - 01 01 01 01 - 00 00 00 00
после записи байта 02 по адресу 0xE0084001
0xE0084000 - 02 02 02 02 - 00 00 00 00
после записи слова 01234567 по адресу 0xE0084000
0xE0084000 - 67 45 23 01 - 00 00 00 00
В листинге - команды для записи байта (типа STRB R0,[R6])
Почему так?
-
Пока не поставил резисторы на 33 Ома (стояли 1 Ом) - порт толком не заработал. Проц LPC2368.
Вот ))
-
1. Настроил в target области IROM, IRAM;
2. В user->program after build указал load.bat
load.bat
{
jlink.exe load.ini
}
load.ini
{
halt
loadbin file.axf, 0x3FFFFFCC
SetPC 0x40000000
g
q
}
3. Все работает. Только бинарные данные из ELF я, скорее всего, достаю не корректно (выкидываю первые 0x34 байта и гружу как есть).
Как достать бинарные данные из ELF без всякого "мусора"?
-
Добрый день!
Использую Keil и МК LPC2468, есть J-Link.
Как отлаживать программу в SRAM?
1. Как разместить код и данные в ОЗУ, правильно записать *.sct?
{Я описал *.sct так:
LR_IROM 0x40000000 0x00008000{
RW_IRAM 0x40000000 0x00008000{
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO +RW +ZI)
}
}
По адресу 0x0 - одни нули. По адресу 0x40000000 - BL __scatterload_rt2 (0x40000008).
Где вектора прерываний?
*.lst - в листинге мой код размещен с адреса 0x0, код с адреса 0x40000000 остутствует.
}
2. Как загрузить код и данные в ОЗУ?
{По-моему, это должен сделать J-Link, но как ему об этом сказать?}
3. Как начать выполнение кода с адреса 0x40000000?
{По-моему, это должен сделать J-Link, но как ему об этом сказать?}
4. В какой момент выполнять MEMMAP=2?
{Перед использованием прерываний?}
5. Нужна ли запись во флеш (например, первые 64 байта) или отладчик делает принудительный переход на начало ОЗУ?
{Может, и не нужна?}
-
Пожалуйста, киньте исходники на adnega[все такое]mail[тчк]ru
парюсь!
PS доступ к ftp перекрыт, скачать у иара не получится
-
Добрый день всем!
Подскажите пожалуйста, вот уже который день бьюсь, но не могу понять...
Сделал USB-device на LPC2378, при подключении компьютеру представляется как CDC, драйвер usbser.sys.
1. Не знаю как правильно реагировать на класс-специфичные запросы (а ля 0x20..0x23)?
2. Как работать с IN конечной точкой, выделенной для управления каналом?
В системе появляется порт, но открыть я его не могу...
-
Спасибо всем за советы.
Не перестаю удивлятся ответам, которые "не в бровь, а в глаз"...
Повесил к кварцу два 12пф кондюка, пару электролитов на 1.8В и 3.3В, 0.1мкф на ресет - все заработало!
Удачи!
-
А причем тут LPC2148 :(. Питание после стабилизаторов проверить. Распиновку - проверть трижды. Генерацию кварца - проверить. Премопередатчики, хотя-бы замкнув выводы TXD RXD на чипе - проверить. P0.14 - можно не проверять :), если чип чистый, то ему все равно кроме bootloader деваться некуда.
LPC2148 при том, что стабилизатор 3.3В и преобразователь интерфейса MAX3232 выполнены на отладочной плате LPC-P2148. Распиновка - проверена неоднократно, TXD-RXD - работают (при замыкании эхо есть). Навесным монтажем выполнен стабилизатор 1.8В. На отдельной плате LPC2101 и кварц.
Питание в норме. Для проверки генерации кварца нет технической возможности.
С "?" в терминале попробую.
Есть смысл распаивать новый чип?
-
Уважаемые друзья!
Выходные бьюсь и не могу разобраться.
Есть LPC2101FBD48. Собрал два стабилизатора напряжения (1.8В и 3.3В), преобразователь MAX3232.
Подключил к МК:
- землю (Vss{7,19,43} и Vssa{31});
- питание (1.8В на Vcore{5})
- питание (3.3В на Vddio{17,40}, Vbat{4} и Vdda{42});
- RST{6} через 10к на 3.3В, и онную же через кнопку на землю;
- кварц 12МГц ({11} и {12} ноги);
- TXD0{13} и RXD0{14} к преобразователю интерфейса;
- на пины P0.14{44} и DBGSEL - НИЗКИЕ уровни.
Собрано на макетной плате кусочками (5-10мм) провода МГТФ-0.03.
Подключаю к компу, на котором запущена LPC2000 Flash Utility (v2.2.3), в надежде подаю питание и... не работает!
На "Read Device ID" прога просит нажать RST после чего не может связаться с платой (выдает сообщение). Если RST не нажимать, то это сообщение выдается через таймуат. Если RST нажать во время, пока прога пытается связаться с платой, то сообщение придет мгновенно.
С МК LPC2148 стабилизаторы, преобразователь и утилита работают без нареканий.
Пробовал разные конфигурации уровней на P0.14 и DBGSEL.
Пробовал at200.exe com1 -baud 19200 -osc 12000 -detect МК не отвечает
Что я не учел?
-
Недавно дорабатывал текстовое информационное табло. Разработчиком была допущена ошибка в проектировании ПП, в результате табло "ловило" помехи очень стабильно. Инженерам приходилось выезжать на место и пересбрасывать питание.
Во-первых, доработал программу. Табло реализовывало динамическую развертку (100Гц). В разверточном прерывании вставил WDR после проверки нескольких таймаутов. Логика такая:
1. Разверточное прерывание нужно всегда, т.е. это гарантированная точка входа с частотой 100Гц. Его задача разворачивать ВидеоОЗУ;
2. Поставил таймаут на прием данных по последовательному интерфейсу. Задача приемника принять данные и поместить их в буфер;
3. Поставил таймаут в MAINLOOP. В главном цикле проверялось пришли ли новые данные и при необходимости записывалось ВидеоОЗУ;
4. В разверточном прерывании проверял таймауты от приемника и главного цикла, если они не истекли, то сбрасывал сторожевой таймер.
Таким образом, я гарантировал, что разверточное прерывание будет всегда; не зависнет конечный автомат приемника (таймаут приемника) и принятые данные попадут в буфер; в главном цикле принятые данные из буфера перепишутся в ВидеоОЗУ, развертка которого гарантирована.
Табло, по-прежнему, прекрасно ловило все помехи, но не уходило в ступор (инженерам не приходится ездить и пересбрасывать питание). После аппаратных доделок табло перестало ловить помехи.
Вот.
-
Дорожки решил не резать, кондеры оставил. Кинул перемычку. Работает стабильно, на помеху не реагирует :)
В качестве ответа на вопрос "быть или не быть" выбрал "быть", ибо где-то ночью встретил мнение, что кварц без кондеров работает в последовательном резонансе, его сопротивление минимально, токи максимальны - кварц быстро изнашивается... в суть не вникал, времени нет, и проблема, вроде как, исчезла. Спасибо всем!
-
Дело в том, что я и фирма, где я работаю, никакого отношения к разработке этих устройств не имеем. Мы закупаем их в другом городе и ставим на объект. В том году были изделия версии 1 (работают надежно, поэтому и решили использовать), сейчас - версия 2 (типа, лучше). Поняли, что мы попали очень поздно... Обяснил?
(в моей фирме специалисты хорошие)
Симулятор схем
в Схемотехника
Опубликовано · Пожаловаться
Бесплатный симулятор LT Spice IV