Jump to content

    

DmitrijStepin

Участник
  • Content Count

    87
  • Joined

  • Last visited

Everything posted by DmitrijStepin


  1. Здравствуйте! В данный момент рассматриваю варианты реализации светодиодного освещения небольших помещений (высота примерно 2.2 м, площадь около 40-50 м2). Нужно сделать более менее равномерное освещение 250 lumen/m2. Допускается использование нескольких осветительных модулей для получения более равномерного освещения. Но цена критична, поэтому их должно быть по возможности меньше. Есть следующие вопросы: 1) Какие светодиоды лучше всего подходят для данного применения, учитывая легкость монтажа, стоимость и конструктивную часть? Цвет светодиодов белый (pure white). Светодиоды не должны быть слишком яркие, чтобы не слепить глаза. Может есть какие-то дешевые матрицы светодиодов? Или светодиоды на лентах... Конструктивная часть должна быть по возможности простой и дешевой. 2) Как ориентировочно расчитывается параметр 250 lumen/m2? Потребляемая мощность доджна быть как можно ниже. Также предусмотрена функция диммерирования, но я так полагаю, что данная цифра соответсвует 100%. 3) Для питания светодиодов будут использоваться AC-DC преобразователи с выходным напряжением не более 30VDC. Есть как обычные блоки питания, так и специализированные LED driver (например, DLG50PS24 от XP Power). В чем их принципиальное различие? Дмитрий
  2. Bluetooth на базе BT730

    Здравствуйте! Необходимо установить беспроводную связь между двумя модулями на расстоянии до 500м. Одним из основных требований является работа в диапазоне частот, нетребующих лицензирования. Остановился на longe-range Bluetooth модуле BT730 от Laird. Так как перехожу от RS485 интефейса к беспроводной связи, то хотелось, чтобы протокол обмена данными в целом остался похожим на Master/Slave, как в RS485. Насколько я понял из Wikipedia, в Bluetooth тоже один главный модуль (Master) и до семи подчиненных модулей (Slave). Каждый модуль должен отсылать два байта данный несколько раз в секунду. Или в ответ на два байта с Master модуля Slave модуль отсылат свои два байта. В спецификации BT730 указано, что возможна реализация нескольких профилей: Serial Port Profile (SPP), Dial Up Networking (DUN), FTP Client plus partial support for Headset (HSP), and HandsFree (HFP). Какая между ними разница? Какой из профилей лучше подходит для данного применения? Serial Port Profile (SPP), исходя из названия? На сайте Laird есть файл, в котором подробно описаны АТ команды для интерфейса host микроконтроллера с BT730. Но в этом описании нет конкретных примеров, какие именно АТ команды и в какой последовательности использовать. В этом заключается главная проблема, т.к. впервые столкнулся с Bluetooth. Есть ли примеры по запуску модулей в том или ином режиме? С уважением, Дмитрий
  3. Добрый день! Есть 2 вопроса: 1) В некотором устройстве для архивации событий планирую использовать внутренний RTC, встроенный в модуль SIM900. Сейчас отладочный кит SIM900 подключен к РС. Показания часов считываются с терминала. Проблема в том, что замечаю отклонения от компьютерных часов. Напимер, за 1 час может набежать разница в 30 секунд. Или, оставив модуль работать на ночь, констатирую, что утром часы в модуле спешат на 1.5 минуты, хотя вечером в пердыдущий день отставали на 30 секунд. В чем может быть дело? Может проблема в компьютерных часах? В спецификации модуля не видно ничего про стабильность часов. Бывают случаи, что ни с того, ни с сего разница может стать равной 0. В данном применении очень высокая точность не требуется. Допустим, если бы за месяц часы отставали или спешили на 1 минуту, то это будет вполне приемлемо. Какие факторы в основном определяют точность часов? Очень не хочется ставить отдельную часовую микросхему. 2) Нужно выбрать подходящий источник резервного питания RTC, когда основное питание VBAT выключено. Допустим, что от резервного питания RTC должен работать 1 неделю при выключенном VBAT. Как я понимаю, часто используются ионисторы (суперконденсаторы). По предварительным расчетам емкость должна быть не менее 1F. Модуль SIM900 будет автоматически заряжать его?
  4. Здравствуйте! Требуется обмениваться данными между устройствами на расстоянии до 2-3км. Опыт предыдущих систем сбора данных показывает, что влияние шумов очень велико в случае использования, например, интерфейса RS-485 на расстоянии до 1км. К тому же общую шину данных часто прокладывают с большими ответвлениями из-за экономии кабеля, и волновое сопротивление кабеля не соответствует нормам. Радиосвязь не годится, т.к. на объектах много металлических конструкций, помещений. Поэтому рассматривается возможность применения оптического интерфейса, с которым раньше не прходилось сталкиваться. Плюс, на некоторых объектах уже проложена оптика для других целей. Поэтому было бы разумно использовать уже проложенную оптику и не тянуть свои провода, если это вообще возможно. Подразумевает ли использование оптики применение Ethernet на каждом отдельном устройстве? Насколько я понимаю, многие ARM микроконтроллеры, у которых есть встроенный модуль Ethernet, подключаются к внешней PHY микросхеме, которая непосредственно выдает пакеты данных в сеть или принемает их. Но это электрические сигналы. Может есть аналагичные PHY, которые выдают оптические сигналы? Можно ли различные модули подключать к общей оптической шине, как в случае интерфейса RS-485? Все устройства должны отсылать данные в РС и получать от него команды. В этом случае необходимо использование TCP/IP протокола? Возможно, выше перечисленные вопросы примитивны, но прежде не приходилось иметь дело как с оптикой, так и TCP/IP (Ethernet). Дмитрий
  5. Оптический интерфейс

    Цитата(maxi-ares @ Dec 3 2013, 12:53) На вашем месте я бы сделал иначе. Разбил бы всю шину на несколько относительно которких участков с RS485, и на этих сегментах поставил бы Ethernet-шлюзы с выходом в оптику. Управление и обмен соответственно организовать через Ethernet. Что мне известно на данный момент из технических требований, это то, что отдельные I/O модули, расположенные на всей территории объекта, должны иметь разъем RJ-45, а также на объекте уже проложена оптика. И в некоторых местах стоят "разветвлители" также с оптическими выходами. Т.к. к разъему RJ-45 подключается медный провод (витые пары), то где-то между оптическими и электрическими сигналами должен стоять преобразователь сигналов. На сколько я понимаю, таким преобразователем может быть свитч, работающий на оптику, но уже с электрическими выходами. На I/O модулях планируем ставить ARM микроконтроллер с Ethernet портом и внешней PHY микросхемой, которая непосредственно подключается к разъему RJ-45. На данный момент оптический выход у I/O модулей не хочу ставить, т.к. на данный момент являюсь новичком в этой теме. Цитата(prig @ Dec 3 2013, 13:59) Проще всего ставить на подключаемое устройство мелкий свитч с двумя портами, работающими на оптику, и пробрасывать Ethernet через эти свитчики. Сетку лучше закольцевать на случай отказа одного из устройств. Такой подход выглядит более универсальным. Для чего нужны 2 порта у свитча? При выходе из строя I/O модуля свитч сам не будет блокировать / локализовать неисправность только на данном участке? У меня такое представление, что каждый модуль по своей витой паре подсоединяется к свитчу, у которого должен быть общий оптический выход для подсоединения к оптике. Есть ли какие-то основные вопросы, которые необходимо уточнить по топологии / архитектуре проложенной опической линии, от которых зависит дальнейшая разработка?
  6. Цитата(adnega @ Nov 14 2013, 18:32) Секрет, думаю, есть, и он должен остаться у правообладателя - компании, где я уже сейчас не работаю, но разрабатывал, будучи ее сотрудником. Если без особых подробностей, то есть единная шина, к которой контроллеры цепляются не совсем как к шине: на самом деле есть "левый" и "правый" входы в изделие и они в топологии не должны быть замкнуты, т.е. "левый" вход контроллера должен идти к, например, предыдущему элементу сцепки, "правый", соответственно, к следующему элементу. В нормальном состоянии "левый" и "правый" входы физически соединяются (реле) в контроллере и к ним подключается сам интерфейс контроллера. В некоторые моменты, при так называемой "автонумерации" шина распадается на сегменты, путем размыкания реле всех контроллеров - определить последовательность в этом случае дело техники (но я смог этого добится только для CAN, на RS485 не уверен, что можно реализовать). При отстутсвии пакетов на шине в течении определенного времени, нужно опять "развалиться" на отдельные сегменты - вероятно есть авария на шине (чаще всего КЗ). Подводных камней - вагон и маленькая тележка (с таймаутами сплошная магия). Подробности, думаю, уже не могу обсуждать. Все что перечислил выше, вряд ли можно считать тайной, т.к. есть в описании системы. Идея понятна. Спасибо за краткое описание.
  7. Здравствуйте! Есть необходимость сохранения передачи данных в шине RS485 при обрыве кабеля или коротком замыкании. Допустим, если на каком-то сегменте произошло короткое замыкание, то этот сегмент нужно отключить от остальной шины. Но другие модули, которые следуют за поврежденным участком, не должны отключиться от главного опрашивающего устройсва (Master). Для этого рассматриваю использование замкнутой петли. На Мастер плате предусмотрено использование двух портов. Один порт является началом шины, а второй - концом. Если данные не приходят с Slave модулей по одной шине в случае какой-либо неисправности, то эти модули начинают опрашиваться по второму порту. Хочу узнать, является ли такое решение рациональным и самым простым. Так по идее даже возможно увеличить длину шины. Использование только одного порта для создания замкнутой петли не годится. Так? Какие устройства используются в качестве детекторов короткого замыкания в шине RS485. Слышал, что такие есть, но не приходилось использовать их раньше. Возможно, сможете посоветовать что-то еще. По крайней по такому принципу делают системы. С уважением, Дмитрий
  8. Цитата(vladec @ Nov 13 2013, 10:07) По моему, Вам проще быдет просто проложить две отдельных шины основную и резервную и при аварии на одной можно будет работать по другой, как, например, в стандарте MIL1553 Две линии тянуть не хотелось бы из-за высокой стоимости проводов, т.к. данная система используется в противопожарных системах. По нормам нужно использовать огнестойкие кабеля. Вами предлагаемый подход предусматривает использование двух портов на каждом модуле: один для основной шины, а второй - для резервной? Цитата(mr. G @ Nov 13 2013, 11:32) Согласен. Резервная может показать какой slave вышел из строя, отключаем его и далее снова работаем по основной. А по поводу опознавания КЗ, наверное нужно поискать соответствующие микросхемы с реализованной данной функцией, Maxim и TI вам в помощь. Отключать модули от Мастер модуля нельзя при обнаружении неисправности кабеля. Они должны оставаться в системе. Принцип должен быть такой: если в "основном" пути для некоторых модулей обнаружена неисправность кабеля, то они начинают опрашиваться по "резервному" пути. Повреждение основной линии должно быть устранено по возможности быстрее. По идее в нормальном режиме работы нужно опрашивать модули как по основной шине, так и по резервной поочередно, чтобы не получилось так, что при переключении на резервную шину она не была неисправной тоже. Цитата(adnega @ Nov 13 2013, 13:19) А почему не CAN? Решал сходную задачу для поездов. Только там не кольцо, а "паравоз" из контроллеров. Важно было определять скорее не КЗ и Обрыв (это легко определается), а последовательность включения контроллеров. Т.е. вагоны можно как угодно перецеплять, но система автоматически знает, что авария произошла в пятом вагоне от головы, например. При КЗ и обрывах, можно узнать между какими контроллерами неисправен сегмент и выключить его из работы. Работоспособность системы от головы до "дохлого" сегмента восстанавливается, а что за "дохлым сегментом" происходит неизвестно (но там есть вторая голова, которая может вести протоколирование аварий, но не в оповещать в реалтайме). Да, придется повозится с пакетами, т.к. CAN это максимум 8 байтв пакете, но побочно получаете "кучу плюшек" самая ценная из них мультимастер! Менее ценные: запрет включенного зависшего передатчика, счетчики ошибок и автоматическое отключение от шины при их прерышении и т.п. По мере усложнения системы все больше склоняюсь к использованию CAN вместо RS485. Но это только планы на будущее. Сейчас использую RS485. Использование CAN не решит данную проблему. Для CAN и RS485 подход к решению этой проблемы должен быть похожий. Система должна оставаться всегда реального времени, потому что по нормам в противопожарных применениях максимальное время определения тех или иных событий в системе не должно превышать одну минуту. Каким образом отключается неисправный сегмент при обнаружении КЗ или обрыва?
  9. Здравствуйте! Нужно сделать дифференциальный вход для последующей подачи сигналов на дифференциальный вход АЦП. Диапазон входных напряжений АЦП от 0 до 5В. Сама входная цепь работает от 24В. Прикинул схему, изображена ниже. Какие будут ваши замечания и дополнения? Просится еще фильтрующий конденсатор между входами АЦП. Является ли такая схема, действительно, дифференциальной? Мне кажется, что да. Не хотел бы делать питание входной цепи от +5В, т.к. уровень шумов может быть сравним с этим значением и даже выше. Резистор R5 - контакт.
  10. Цитата(Alexashka @ Aug 12 2013, 11:30) А что если запитывать петлю постоянным током, а вместо резисторов - 2 стабилитрона (один на 3В - который включен постоянно, и 1 последовательно с кнопкой, на 1,5В). Тогда разомкнутое состояние - 3В, закнутое - 1,5В, КЗ - 0В, обрыв - 5В. Динамическое сопротивление стабилитронов достаточно низкое (при токе скажем 20мА) -наводок меньше. Интересная идея, но сравнительно большой ток не могу позволить, мах 5-10мА, что тоже достаточно. В таком случае тоже лучше использовать дифференциальный вход? Питание входной цепи тоже желательно делать от 24В, чем от 5В? Но со стабилитронами могут возникнуть дополнительные неудобства при монтаже, например, неправильная полярность. Действительно, изобретать велосипед не хочется.
  11. Цитата(psL @ Aug 9 2013, 20:54) может как-то так сделать? кз - полный размах ацп нажата - 2/3 отжата - 1/3 обрыв - 0 Схему с подобными уровнями используем сейчас. В данный момент с помехами боремся программным путем, что ведет к задержке определения уровня. Хотелось бы на железном уровне схему сделать более помехоустойчивой. Поэтому хочу использовать диф. вход. Конечно, программная фильтрация тоже останется для дополнительной надежности. На реальных объектах с длинными проводами пики шумов превышают +/-5В. Поэтому single ended вход уже не справляется. На диф. входе эти синфазные шумы должны существенно скомпенсироваться.
  12. Цитата(Plain @ Aug 9 2013, 18:32) Если для опроса кнопки никаких других ресурсов, кроме АЦП, нет, то да, а иначе есть множество куда более простых способов это сделать. Дать же ответ непосредственно по теме невозможно, потому как в ней ни слова о сигнале. Ну и показанный вход, конечно, ни разу не дифференциальный. АЦП нужно, т.к. кроме замкнутого и разомкнутого состояния опрашиваемого контакта нужно также детектировать обрыв и короткое замыкание кабеля. Это уже 4 состояния нужно определять. Короткое замыкание кабеля не должно определяться как замыкание контакта, а обрыв - как размыкание. В этом вся суть. Иначе, конечно, использовал бы обычный цифровой вход. Длина кабеля может достигать нескольких десятков метров или больше, поэтому шумов предостаточно. Поэтому нужен диф. вход. Почему изображенный вход не является дифференциальным?
  13. Здравствуйте! Модули с RS485 интерфейсом питаются от 24VDC. У интерфейсных микросхем есть встроенная защита от попадания на входы А и В напряжения питания 24VDC при неправильной коммутации или повреждении кабеля. Но есть также необходимость защитить шину RS485 и блоки питания на модулях от попадания / подключения сетевого напряжения 230VAC. Так как модули могут находиться на большом расстоянии друг от друга, то такую защиту надо делать на каждом модуле. Хотел бы посоветоваться насчет оптимальных и эффективных схем защиты. Пока ориентируюсь на двунаправленные защитные диоды (TVS - Transient Voltage suppressor) в сочетании с быстрыми предохранителями. Но не уверен, что предохранители смогут достаточно быстро перегорать, т.к. TVS могут выдерживать большие импульсы тока в течение порядка 10мкс. Может нужно ставить последовательно резисторы маленьких номиналов, но шину RS485 для передачи данных тоже нельзя портить. Какие есть еще предложения? С уважением, Дмитрий
  14. Возник вопрос по TBU (CDSOT23-SM712). У него 3 контакта: Line In/Out, NU, Line Out/In. NU не используется? Относительно чего TBU измеряет напряжение Vreset? Еще вопрос по монтажу TBU. Из даташита видно, что контакты находятся снизу. К ним можно подлезть паяльником? На рисунке с боку видны металлические контакты. Или для ручного паяния на площадках нужно ставить переходные отверстия?
  15. Цитата(EvilWrecker @ Apr 30 2013, 18:23) Пример предохранителя + на 1 странице расшифровка каждого параметра http://www.mouser.com/ds/2/240/Littelfuse_PTC_250S-40655.pdf Этот предохранитель по параметрам мало отличается от того, который я ранее выбрал. Также само максимальный ток не должен превышать 3А. По графику из даташита видно, что такой ток не должен быть дольше 0.2 секунды. Без дополнительного резистора пики тока будут около 30А. Поэтому, вероятно, он сразу выйдет из строя.
  16. Цитата(EvilWrecker @ Apr 30 2013, 16:27) Если самовосстанавливающийся предохранитель открывается 10 сек, то скорее всего он выбран неправильно. Сами подумайте- если такое поведение было бы присуще все таким устройствам, какой тогда от них толк? Кто их будет брать? Между тем их мягко говоря широко применяют- а стало быть конкретно Вы применяете их неправильно. Между тем у TVS пожалуй более важным является не столько пробойное напряжение, сколько clamping voltage- как и у разрядника, и это также очевидным образом влияет на выбор предохранителя. На входе импульсника напряжение не должно превышать 36V. Потребляемый ток не превышает 150mA в нормальном рабочем режиме во всем диапазоне входных напряжений питания (18-36VDC). Пока остановился на таком TVS: 1.5SMC36CA (Breakdown Voltage = 34.2...37.8V, Clamping Voltage max = 49.9V). А один из самых быстрых PTC, что удалось мне найти для моего случая, является CMF-RL10-0 (Hold current max = 150mA, Trip current = 300mA, Current max = 3A, Voltage max = 220V, Time to trip = 0.45s). Как я понимаю, максимальный ток для PTC не должен превышать 3А. Его сопротивление в нормальном состоянии 10 Ом, поэтому пики токов могут достигать 30А. Не ставить же ограничивающий ток резистор, т.к. в нормальном рабочем режиме на нем будет большое падение напряжения. Даже относительно маленькое время срабатывания 0.45 сек не сравнимо с временем срабатывания, например, TBU.
  17. Цитата(EvilWrecker @ Apr 25 2013, 21:53) При определенных условиях с величиной тока(продолжительно) чуть меньше верхнего порогового на ТБУ начнет высаживаться очень много тепла и оно сгорит. Говоря другими словами - или норма или кз, состояние "посередине" чревато. Для этого лучше взять обычный самовосстанавливающийся предохранитель. В отношении защиты питания полно схем и решений - не вижу проблемы. Вы под самовосстанавливающимся предохранителем имеете в виду PTC resettable fuse, который идет в связке с TVS? Допустим, импульсники на входе выдерживают 40В мах. Значит, TVS должен открываться до 40В. Меня смущает длительное время срабатывания PTC предохранителя. Оно может составлять 10 секунд и больше. Тогда вся мощность будет рассеиваться на TVS. Он так долго не протянет, сгорит. Может надо ставить ограничивающий ток резистор, чтобы пики тока не превышали допустимое значение для TVS.
  18. Цитата(EvilWrecker @ Apr 24 2013, 19:01) Если собираетесь сделать защиту для питания на тбу то предупреждаю- они не подходят для этих целей. Это из-за большого начального тока или потому, что параметр TBU Vreset = 16В меньше напряжения питания 24В? Или просто защита для питания делается по-другому. Делать на рассыпухе (тиристоры, симисторы и т.д) не хотел бы. Как вариант схемы на дискретных компонентах приложен. Очень громоздко. От обратной полярности спасет диод. Есть ли что-то готовое на подобии защиты для RS485?
  19. Цитата(vladec @ Apr 25 2013, 09:09) В дополнение к сказанному: http://www.bourns.com/data/global/pdfs/Bou...485_AppNote.pdf , что же касается защиты на 24В, то в этом на сегодняшний день вообще нет необходимости, выпускаются драйверы RS-485 толерантные к напряжениям до 70В, например, SN65HVD1780 и аналогичные Как раз и используем SN65HVD1780 в сочетании с цифровыми изоляторами. Но нужна защита и от попадания на шину сетевого напряжения. SN65HVD1780 относительно дорогой. Если будет защита на базе твс, тбу и разрядников, то можно будет ставить более дешевые стандартные трансиверы.
  20. Цитата(EvilWrecker @ Apr 24 2013, 13:05) Добавлю только вот что: если нужна именно защита "от всего" - то самое правильное сочетание это твс + тбу + разрядники. Нашел документ по защите RS485, в котором описано сочетание трех компонентов: 1) GDT, 2) TBU, 3) TVS. Документ приложен. Думаю, что его можно взять за основу. По идее для питания 24VDC нужно делать подобную защиту.
  21. Цитата(EvilWrecker @ Apr 24 2013, 13:05) Не для RS485 серия PL- ставить надо серию CA. Ставьте и не пожалеете- лучше них не существует в природе. Считать или моделировать ничего не надо, варисторы ставить на 485-й смысла нет, есть смысл ставить нормальные твс и разрядники. Последовательное сопротивление не влияет. Добавлю только вот что: если нужна именно защита "от всего" - то самое правильное сочетание это твс + тбу + разрядники. Однако если нужна защита именно на 230В - т.е защита от постоянного перенапряжения то тюу действительно держат (я подключал тбу к 220В) , но необходимо очень правильно выбрать разрядник, который не будет срабатывать при 220В но и не будет слишком медленным чтобы успеть сработать на быстрых импульсах, пока не не пробило тбу. Спасибо всем за ответы и предложенные варианты! Надо ознакомиться с TBU серии СА. Как я понимаю, TBU контролирует ток в линии. Как только ток в линии превышает определенный порог Itrigger (Current required for the device to go from operating state to protected state), транзисторы закрываются до тех пор, пока напряжение не упадет до Vreset (Voltage below which the triggered TBU™ device will transition to normal operating state), около 15-20V. Время срабатывания TBU tblock = 1мкс (Time for the device to go from normal operating state to protected state). Если не ошибаюсь, TVS должен стоять между TBU и интерфейсной микросхемой, чтобы создать большой ток при попадании высокого напряжения на TBU. Напряжение пробоя TVS должно быть допустимым для сохранения работоспособности интерфейсной RS485 микросхемы. И при такой комбинации (TVS + TBU ) к линии может быть подключено сетевое напряжение постоянно, если правильно выбран параметр Vrms (Continuous A.C. RMS voltage), больше 250V? И они будут постоянно то включаться, то выключаться, но ничего не испортиться? Ничего не будет перегорать, просто интерфейсная микросхема не будет пересылать данные? Я правильно понял? Немного не в курсе насчет разрядников. Для чего они нужны? Цитата(Methane @ Apr 24 2013, 11:40) 1. Посчитать или промоделировать процесс попадания 220вольт. 2. На предохранители тоже по идее должны быть ТТХ. 3. Какая скорость в линии? Если не большая, то попробуйте варисторы. 4. Есть старый способ защиты "Спектрума", от сгорания транзистора в блоке питания. Это тиристор, который открывается стабилитроном, когда напряжение становится "более чем". 5. А что будет с кабелем, и разьемами, если на них придет 220? Не погорят и поплавятся? Что с дорожками на плате? 3. Скорость передачи данных от 9600 до 115200 5. Желательно, чтобы все сохранилось в прежнем виде
  22. TMS570LS20216, SCI2

    Добрый день! Начал разбираться с ARM Cortex-R микроконтроллером TMS570LS20216 от Texas Instruments (серия TMS570LS20x/10x). Использую кит TMDX570LS20SUSB. Программу пишу в CCS, а конфигурацию - в HalCoGen. Сейчас застрял с SCI (Serial Communication Interface, UART mode). Выбрал SCI2 модуль. В начале сконфигурировал SCI2 для отсылки данных без использования прерываний (polling mode). Тут все работает. Следующим этапом попытался добавить TX high level прерывание для отсылки данных и RX high level прерывание для приема отсылаемых байтов для SCI2. Выводы LIN2TX и LIN2RX соединены между собой снаружи. Первый отсылаемый байт отправляется с main (), а последующие байты - с подпрограммы прерывания TX INT. Для этого в (HalCoGen – приложение для графической конфигурации контроллера) разрешил прерывание TX INT (high level) и RX INT (high level) для SCI2, в VIM (Vectored Interrupt Manager) модуле разрешил 49-ый канал прерываний (LIN2 high). В приложенном проекте отсылается пакет из 10 байтов. TX INT функционирует нормально, а вот с приемом данных по RX INT проблемы. Вижу, что данные не принемаются. В чем может быть проблема? Такое ощущение, что RX INT не разрешен. Предполагаю, что одновременно можно использовать и TX INT, и RX INT прерывания одинакового уровня, как и еще несколько других прерываний, относящиеся к SCI2. У всех этих прерываний разные приоритеты. Если даже несколько прерываний появились одновременно, то с начала обрабатывается прерывание с большим приоритетом, а далее в порядке уменьшения приоритета. В результате ни одно из прерываний не должно пропасть. Я прав? И в чем может быть ошибка? С уважением, Дмитрий
  23. Здравствуйте! Столкнулся с такой проблемой, что для разрабатываемой противопожарной системы требуется соответствие стандарту SIL2. Насколько мне объяснили, нужно использовать 2 микроконтроллера для взаимной проверки. Как это можно реализовать? На сайте Texas Instruments нашел серию ARM контроллеров для safety-critical systems (TMS570LS Family). Вот ссылка на сайт: http://www.ti.com/lsds/ti/microcontroller/...ng_started.page Это двуядерные микроконтроллеры (dual-CPU lockstep architecture). Вот, что написано насчет стандартов: Developed to the requirements of the ISO 26262ASIL D and IEC 61508 SIL-3 safety standards and qualified to the AEC-Q100 automotive specification this ARM® Cortex™-R4F-based family offers several options of performance, memory and connectivity. Можно ли использовать такие микроконтроллеры, не беспокоясь больше о соответствии стандарту? Программу придется писать одну, а компилятор сам продублирует код на два ядра и будет выдавать флаги неисправностей? У других производителей микроконтроллеров тоже есть подобные решения? Сам в основном работаю с MSP430 от Texas Instruments и Mega, Xmega от ATMEL. В принципе ресурсов Xmega вполне достаточно для реализации нужного функционала, но все упирается в сертификат, без которого систему никуда не поставишь. Какие могут быть дополнительные требования помимо микроконтроллера? Например, контролю дискретных входов и выходов или использованию внешних микросхем памяти .... Используются дискретные входы на оптопарах и дискретные выходы на реле, а также используются аналоговые входы. Из внешних памятей используются FRAM или microSD card. С уважением Дмитрий
  24. Добрый день! В данный момент разрабатываю Data Logger (далее устройство) для периодической записи данных. Память устройства должна быть энергонезависимой, т.е. записанные в память данные не должны пропадать при выключении питания. На текущий момент в качестве памяти использую FRAM на 2Mbit с SPI интерфейсом. Программа микроконтроллера написана таким образом, что эта память представлена в виде FIFO. Данные периодически записываются в память, пакет данных состоит из 8 байтов. Проблема в том, что нужен больший объем памяти для следующей версии. Желательно до 2Gbit. Подскажите, пожалуйста, на чем лучше остановиться? Я рассматриваю Serial Flash и micro SDcard. Главное условие, чтобы можно было записывать в память по несколько байтов, а не целыми блоками, например, 512 байт. Исходя из опыта использования внутренней Flash памяти микроконтроллеров серии MSP430, для данного применения также не допустимо стирание блока данных для того, чтобы записать новые. Вроде для Standard Capacity SDcard (SDSC) можно записывать и считывать по 1-512 байтов. Переписывать данные можно без стирания всего сектора? И вообще нужно ли стирать старые данные перед записью новых. Еще вопрос по расположению пинов у micro SDcard. В двух источниках некоторые ножки попутаны. Как есть на самом деле? Дмитрий
  25. Возник такой вопрос, где хранить переменную, указывающую на следующий сектор, в который буду записываться последующие данные? Это на случай пропадания питания. Сейчас память сделана на FRAM и небольшая часть памяти выделена для хранения переменных. С FRAM проблем не возникает, т.к. можно записывать данные практически бесконечное количество раз. В SD карту можно записывать не более 100 000 раз. 512 байтов данных для записи следующего сектора SD карты будут появляться каждые 64 секунды. Следовательно адрес для следующего сектора тоже нужно обновлять каждые 64 секунды. Такими темпами можно записывать 64 секунды * 100 000 = 6 400 000 секунд = 75 суток, что не достаточно. Как быть в этом случае? Проще всего использовать резервное питание и хранить все переменные в RAM микроконтроллера. И записывать переменные в энергонезависимую память (SD карта или EEPROM микроконтроллера) только при уменьшении напряжения батареи до минимального допустимого значения.