Перейти к содержанию
    

adnega

Свой
  • Постов

    3 594
  • Зарегистрирован

  • Посещение

  • Победитель дней

    3

Сообщения, опубликованные adnega


  1. А какой вид имеют входные сигналы? Это монотонные функции? Какое время нахождения выше порога?

    На STM32F103 можно включить непрерывное преобразование 4 каналов (CH0->CH1->CH2->CH3->CH0-> и т.д.) с автоматическим укладыванием в память посредством DMA. Если настроить DMA для работы в кольцевом режиме с генерацией прерывания при половинном заполнении, то по прерыванию можно анализировать порог программно (при этом DMA и АЦП будут работать и получать новые данные). Если превышение есть, то у Вас в буфере уже есть предыстория сигналов на N отсчетов назад.

     

    Затем готовите пакет и отправляете хоть по USB.

  2. Я логику какую наблюдаю: для АВР грицо, мол, не пользуйте в промышленном управлении, медицинском оборудовании и в космос не пускайте; а у LPC наооборот - позиционируют все (может, кроме космоса). Вот, и мне с одной стороны нужен проц пошустрее и недорогой, а с другой стороны устойчивый к вредным воздействиям со стороны пользователя. Да, LPC мне шустрость нужную обеспечил... но и тревогу тоже. Ни на одном ките (LPC) не видел защиты выводов (оно и понятно), но больше всего поражает, что вопросы выхода из строя не поднимаются (борьба с отказами, предупреждение отказов). Типа, сгорел - я сам виноват. Субъективно, АВР сложнее убить, чем АРМ (LPC). Что посоветуете, если я хочу делать универсальные процессорные модули в мезонином исполнении и передавать другим лицам? Делать защиту серьезную или просто резисторы ставить?

     

    ПС. Надо мануал почитать на выходы LPC - какие там допустимые уровни напряжений и токов!!

  3. Вчера преподнял ноги питания проца - КЗ на плате пропало. Часть пар питания в КЗ, а часть как у живого.

    Запаял те, что "живые" - ни JTAG, ни UART0 не работают, отсутствие реакции полное. Генерацию кварца пока посмотреть не могу.

    Вывод: "ой-ой-ой"... В целом впечатление от LPC - нежные очень. В одном из образцов LPC2101 - не работает генератор RTC. Причем, от внутреннего генератора работает).

     

    По-моему, в схему такие процы надо закладывать выводами через буфера.

    Или быть предельно аккуратным (попробуй добейся этого от других)?

  4. Не сочтите меня криворуким или садистом, просто, приходилось сталкиваться...

     

    Выходы LPC2468 поштучно выгорали при попадании на них +12В. Проц при этом до сих пор живой, а у этого - чистое КЗ. У меня подозрения, что проц может и работает, а на плате где-то КЗ. (перепаивать времени нету, а жить с тревогой на душе, что может потом где всплывет... сами понимаете)

     

    До этого работал с AVR - весьма не убиваемая по моим понятиям штука ))

  5. Добрый день!

     

    Развел для себя плату на основе LPC2368. Планирую использовать плату просто как средство удобного подключения к ногам 0.5 мм, посему, на плате минимум - только все самое необходимое (схема питания, батарейка RTC, кварцы, JTAG).

     

    Запаял одну плату - все работало. Потом при включенном питании стал переключать питание, батарейку RTC, JTAG, кнопку и светодиод с одной платы на другую... в итоге первая "умерла".

     

    Между выводами питания короткое замыкание. Все компоненты от шины питания отпаял (конденсаторы, стабилизатор) - остался один проц. Все равно КЗ, на входе куда подключал кнопку звонится 200 ом на землю.

     

    Допускаю, что во время переключения какие-нибудь линии замыкались между собой.

     

    Вопрос: чтобы такое не повторялось в будущем достаточно ли подключения делать не под напряжением или нужны дополнительные меры защиты (от статики, ограничители тока, и т.п.)

     

    Хотел бы из этого происшествия урок извлечь и процов больше не палить ))

     

    (или КЗ на плате искать? ;) )

  6. Настроить GPIO, включить питание/тактирование ADC, инициализировать ADC, считывать нужные данные.

     

    1. К какой ноге подводится напряжение (уровень)? Вся ли внешняя обвязка АЦП подключена?

    2. Вам готовый проектик нужен? (могу вечером кинуть)

  7. Добрый день!

     

    В 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])

     

    Почему так?

  8. 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 без всякого "мусора"?

  9. Добрый день!

     

    Использую 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 байта) или отладчик делает принудительный переход на начало ОЗУ?

    {Может, и не нужна?}

  10. Добрый день всем!

     

    Подскажите пожалуйста, вот уже который день бьюсь, но не могу понять...

     

    Сделал USB-device на LPC2378, при подключении компьютеру представляется как CDC, драйвер usbser.sys.

     

    1. Не знаю как правильно реагировать на класс-специфичные запросы (а ля 0x20..0x23)?

    2. Как работать с IN конечной точкой, выделенной для управления каналом?

     

    В системе появляется порт, но открыть я его не могу...

  11. А причем тут LPC2148 :(. Питание после стабилизаторов проверить. Распиновку - проверть трижды. Генерацию кварца - проверить. Премопередатчики, хотя-бы замкнув выводы TXD RXD на чипе - проверить. P0.14 - можно не проверять :), если чип чистый, то ему все равно кроме bootloader деваться некуда.

     

    LPC2148 при том, что стабилизатор 3.3В и преобразователь интерфейса MAX3232 выполнены на отладочной плате LPC-P2148. Распиновка - проверена неоднократно, TXD-RXD - работают (при замыкании эхо есть). Навесным монтажем выполнен стабилизатор 1.8В. На отдельной плате LPC2101 и кварц.

     

    Питание в норме. Для проверки генерации кварца нет технической возможности.

     

    С "?" в терминале попробую.

     

    Есть смысл распаивать новый чип?

  12. Уважаемые друзья!

     

    Выходные бьюсь и не могу разобраться.

    Есть 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 МК не отвечает

     

    Что я не учел?

  13. Недавно дорабатывал текстовое информационное табло. Разработчиком была допущена ошибка в проектировании ПП, в результате табло "ловило" помехи очень стабильно. Инженерам приходилось выезжать на место и пересбрасывать питание.

     

    Во-первых, доработал программу. Табло реализовывало динамическую развертку (100Гц). В разверточном прерывании вставил WDR после проверки нескольких таймаутов. Логика такая:

    1. Разверточное прерывание нужно всегда, т.е. это гарантированная точка входа с частотой 100Гц. Его задача разворачивать ВидеоОЗУ;

    2. Поставил таймаут на прием данных по последовательному интерфейсу. Задача приемника принять данные и поместить их в буфер;

    3. Поставил таймаут в MAINLOOP. В главном цикле проверялось пришли ли новые данные и при необходимости записывалось ВидеоОЗУ;

    4. В разверточном прерывании проверял таймауты от приемника и главного цикла, если они не истекли, то сбрасывал сторожевой таймер.

     

    Таким образом, я гарантировал, что разверточное прерывание будет всегда; не зависнет конечный автомат приемника (таймаут приемника) и принятые данные попадут в буфер; в главном цикле принятые данные из буфера перепишутся в ВидеоОЗУ, развертка которого гарантирована.

     

    Табло, по-прежнему, прекрасно ловило все помехи, но не уходило в ступор (инженерам не приходится ездить и пересбрасывать питание). После аппаратных доделок табло перестало ловить помехи.

     

    Вот.

  14. Дорожки решил не резать, кондеры оставил. Кинул перемычку. Работает стабильно, на помеху не реагирует :)

    В качестве ответа на вопрос "быть или не быть" выбрал "быть", ибо где-то ночью встретил мнение, что кварц без кондеров работает в последовательном резонансе, его сопротивление минимально, токи максимальны - кварц быстро изнашивается... в суть не вникал, времени нет, и проблема, вроде как, исчезла. Спасибо всем!

  15. Дело в том, что я и фирма, где я работаю, никакого отношения к разработке этих устройств не имеем. Мы закупаем их в другом городе и ставим на объект. В том году были изделия версии 1 (работают надежно, поэтому и решили использовать), сейчас - версия 2 (типа, лучше). Поняли, что мы попали очень поздно... Обяснил?

     

    (в моей фирме специалисты хорошие)

×
×
  • Создать...