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

sz36

Свой
  • Постов

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

  • Посещение

Репутация

0 Обычный

Информация о sz36

  • Звание
    Частый гость
    Частый гость

Посетители профиля

1 458 просмотров профиля
  1. Встала задача организовать цифровую радиосвязь точка-точка со следующими вводными: - связь проходит сеансами, продолжительность одного сеанса не более 5 сек; - за сеанс нужно передать примерно 50кБ данных (в одну сторону) и подтвердить получение; - расстояние до 50м. В целом, одна точка (получатель) объезжает другие точки (источники данных) и вопрос, на чем бы такое сделать наиболее простым способом? Скорость, получается, нужна порядка 100 кбит/сек (лучше побольше, чтобы был запас), может существуют готовые китайские модули? Или самому городить, может чип/стандарт тогда посоветуете? Скорость, в принципе, можно разменять на расстояние - если расстояние 100м, то сеанс может длиться уже 10сек и скорость в два раза ниже. Дело происходит в глуши где людей (и помех), вероятно, нет. Мобильной связи и интернета тоже нет.
  2. В доках SIM800F наличие Bluetooth указано как optional, то есть, как я понимаю, может быть, а может и не быть. Вопрос - как это определить при заказе? Должны быть, видимо, какие-то буквы/цифры исполнения? На сайте SIMCOM ничего не нашел. А большинство поставщиков предлагают просто SIM800F без конкретизации. Особенно интересует JLCPCB , у них в PartLibrary тоже написано - просто SIM800F. Если я закажу у них плату с монтажом, в нем будет Bluetooth или нет, как узнать?
  3. Да, это возможный вариант, но довольно трудоемкий - там же должен быть фикированый зазор и ширина проводника, чтобы обеспечить номинальное волновое сопротивление. Еще можно резистор с нулевым сопротивлением поставить. Но хотелось бы какой-нибудь более прямой путь
  4. Hi, All! Пытаюсь создать в AD PCB антенну, изображена на прилагаемой картинке. Только на картинке антенна и подходящая к ней цепь в разных слоях, а мне нужно в одном, но это сути не меняет. Проблема в том, что один конец антенны подключен к выходному пину, а другой к земле, поэтому для AD это является замыканием цепей, и DRC вываливает кучу ошибок. Не беда, думаю, в правилах проекта уберу контроль этой цепи на зазоры и замыкания, так и сделал - но тогда AD при заполнении земляного полигона тоже зазор игнорирует и заливает антенную цепь землей полностью. Такой же результат, понятно, если на принципиальной схеме сделать антенную цепь землей. Пробовал как рисовать антенну прямо на плате, так и создать в виде компонента, и в виде компонента-джампера - успеха не достиг. Как быть, есть ли способ в AD нарисовать такую антенну, и чтобы зазоры в полигоне сохранились, и DRC прошел?
  5. High-Voltage activation UPDI

    Hi All! А какие программаторы/отладчики поддерживают High-Voltage activation UPDI? Я использую AtmelICE, у него в UG явно написано, что высоковольная активация UPDI не поддерживается. В AtmelStudio ключ "--12v-updi-activation" присутствует, то есть через что-то она должна ее поддерживать, но через что - непонятно. Копаюсь в описаниях - не могу найти. Может кто знает?
  6. Hi, All! Понадобилось мне тут устройство на новой, уже микрочиповской ATMega808. Для чего взял последний IAR 7.20.1, который ее поддерживает, и столкнулся с проблемой - не работает отладчик AtmelICE. Ошибка: "Fatal error: Failed to set program breakpoint". Отладчик стартует, делает вид, что даунлоадит программу в чип, но в секции CODE показывает все нули. Ну и никакая отладка невозможна. При этом регистры процессора, I/O и RAM вроде бы показываются правильно. Фьюзы, опять же, программируются из IAR. При этом из AtmelStudio этот же AtmelICE, с этой же платой прекрасно работает, и как программатор, и как отладчик. Что это? Баг IAR или как-то можно бороться? Попутно второй вопрос. Раньше (довольно давно) мне удавалось проект из IAR AVR отлаживать в AtmelStudio. А теперь при выполнении Open Object File For Debuging, проект создается, но исходников он не видит, а при попытке запуска отладчика, пишет невразумительное, что-то пошло не так, и рекомендует посмотреть логи. Где я ничего существенного не вижу. Для отладки из AtmelStudio выбираю в IAR выходной формат ubprof, это правильно? Что еще нужно сделать? Можно, конечно, из тех же исходников создать и откомпилировать проект в AtmelStudio, так все работает (на первый взгляд), но мне хотелось бы работать в IAR.
  7. Спасибо, заработало! Да, не учел я, что секции стека у загрузчика и основной программы могут совсем в разных местах оказаться. А вообще я предполагал, что стартовый код стек инитит.
  8. Продолжение. Сделал я следующим образом. Переместил основную программу на два сектора вниз, освободив их под загрузчик. Таблица векторов, действительно, легко переставляется, еще скрипт линкера пришлось исправить, в обшем из под отладчика основная программа стартует с таблицей векторов в 0x0802000 и прекрасно работает. Адреса 0x0800000-0x0802000 при этом остаются нетронутыми. В первых двух секторах разместил загрузчик, он работает с запрещенными прерываниями (хотя, в принципе, может использовать, просто не нужно), делает все, чего надо. Вопрос в том, как после работы загрузчика грамотно передать управление основной программе. Пробовал в загрузчике также переместить таблицу векторов в 0x0802000, после чего вызвать HAL_NVIC_SystemReset(). Но этот вариант не катит, поскольку при сбросе VTOR обнуляется и мы опять попадаем на загрузчик. Другой вариант - вручную. Делаю так: const unsigned int* Ptr = (unsigned int*)(FLASH_BASE | FLASH_LOADER_SIZE); ((void (*)())Ptr[1])(); //Берем вектор Reset и переходим на него При этом программа вроде попадает на нужный адрес, PC правильный, но не работает. Чего ей еще надо, понять не могу. Там IAR'овский код инициализации приложения. Как правильно передать управление от загрузчика основной программе?
  9. Всем спасибо, буду пробовать
  10. STM32L1XX - свой загрузчик

    Hi, All! 1) Есть ли какой-нибудь способ перезаписать свой загрузчик в System Memory (которая с 1FF0 0000), или она в принципе readonly? 2) Если нет, то как тогда принято делать обновление прошивки своего девайса через сеть? У меня есть внешняя SPI Flash, допустим новая версия прошивки уже загружена из интернета в нее и проверена, каковы дальнейшие действия? Я могу скопировать свой загрузчик в RAM и запустить, чтобы он переписал новую прошивку из внешней SPI Flash во внутренюю Flash кристалла. Но не нравится мне этот способ тем, что если в процессе произойдет какой-либо сбой (электричество, etc), устройство превращается в тыкву. Существует ли иной, более безопасный способ? 3) Есть мысль поместить загрузчик в последний сектор Flash и переписывать прошивку, исполняя оттуда. Тогда, как я понимаю, таблица векторов прерываний не будет корректной, но, наверное, можно переписать прошивку с полингом, запретив глобально все прерывания на это время. Получится ли так?
  11. Понятно. А как тогда (и возможно ли это) защитить свою программу от считывания и отладки, но при этом сохранить возможность стирания и перезаписи?
  12. Как снять защиту RDP Level=2?

    Только недавно работаю с АРМами, поэтому не все понимаю. Экспериментируя, установил в OptionBytes flash memory read protection level = 2 и теперь не могу доступиться к кристаллу ни одним из известных мне способов (при этом моя программа в чипе корректно работает). Кристалл - STM32L151. Использую ST-LINK/V2, IAR C, STM32 ST-LINK Utility, ST-LINK_CLI. Последняя отвечает: No target connected Unable to connect to ST-LINK! Остальные средства примерно аналогично. Пробовал разные опции: JTAG, SWD и др - ничего не помогает. Как стереть чип и снять защиту? И возможно ли это?
  13. Вообще-то не так, GSM модем включается транзисторным ключом на вторичной стороне, и линия связи короткая - 20мм, но между ключом и выходом БП стоит ферритовый бид, его индуктивность может, наверное, аналогичный эффект вызвать. Попробую убрать.
  14. Имеетсся StepDown преобразователь 12В -> 3.5В на TPS563209. Схема типовая, из даташита, разводка тоже выполнена в соответствии с приведенной там картинкой. Индуктивность 3.3мкГ, выходная емкость - 2*22мкФ, керамических. Основная нагрузка - GSM модем, и еще всякая мелкая электроника. Проблема в том, что при включении GSM модема TPS563209 с большой вероятностью сгорает, почему? При этом, если вместо модема подключить резистивную нагрузку на 2А, то все прекрасно работает. Также ничего не выгорает при многократных КЗ выходной цепи. Вообще, согласно даташиту у TPS563209 есть защита от всего, и тем не менее сгорает. Как-нибудь можно бороться?
  15. Компилятор XScale

    Ага, у меня тоже, я из SDK к WINCE 6 взял. Ну я вообще не понимаю, как так может быть. Пойду VS2005 искать. А ключи типа процессора у Вас какие? У меня ARM5T (/QRarch5t) и /Qxscale. Код, кстати, тоже какой-то мутный, я не такой глубокий знаток ARM, сходу не понимаю, надо под отладчиком посмотреть. Но, во всяком случае, сохраняется 64 бита, это дает надежду. У меня, в Debug сборке, компилер MMX код не генерирует, эмулируя обычными операциями (возможно, это и правильно). Но что интересно, в таком режиме тоже в старших 32 битах возвращаемых Intrinsic функциями значений оказывается мусор, под отладчиком это прекрасно видно. То есть, такое поведение и задумывалось. Вообщем, не понимаю. Пойду VS2005 искать, спасибо, что код проверили Это я знаю, что помогать надо, но он же должен видеть, что до конца области видимости упоминаний этих переменных нет. Как ему еще указать? Я больше с IAR для AVR работаю, привык уже, что тот, если значение переменной не используется, все операции с ней выбрасывает. Если после этого другая переменная оказывается неиспользуемой, или функция - и их тоже, и т д. Бывает, чисто для отладки нужно переменную вставить, так только volatile static прокатывает. А MSVS, мерзавец, лепит в выходной код все, почем зря.
×
×
  • Создать...