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

Neo_Matrix

Участник
  • Постов

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

  • Посещение

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


  1. 3 часа назад, UniSoft сказал:

    вы не указали версию j-link'а

    недавно этот вопрос уже поднимался...

    в V10 точно никак... в более старых не смотрел.

    Версия 9.5, вчера уже нашел ваше сообщение, попробовал выполнить команды, естественно не к чему это не привело и я перепрошил линк. Правда после перепрошивки он стал версии 9.2, стоит ли морочится  с другой версией или оставить 9.2? Что она вообще дает?

  2. 3 часа назад, CADiLO сказал:

    Уже давно есть.  Однако в силу специфики работы модулей мало кому нужен.

    Причина - энергопотребление. С внешним контроллером и продуманным алгоритмом модуль на батарейке проживет дольше чем с ЕАТ.

    Если хотите побаловаться, запрашивайте у дистрибьюторов. Однако прийдется заполнить форму регистрации проекта и если он не представит интереса, то будете возиться в режиме "изучаю сам".

    Поэтому еще раз - рекомендую внешний контроллер.

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

    3 часа назад, CADiLO сказал:

    Вы не поняли самого принципа работы LPWA. Для этого и 4G сети мало. Нужно чтобы на основе LTE (или другой) была поверху развернута сеть NB или CATM.

    А на "старых" сотах будет обычный GSM (например SIM7000E или SIM7070G умеют) и никакого выигрыша. Еще - для такого режима будут нужны отдельные карточки.

    И самое главное, если вы не юрлицо с крупным проектом, про LPWA карточки можете пока и не думать, оператор пошлет подальше. 

    Свяжитесь с нами, возможно Вам лучше подойдет другой модуль 2G+4G - A7670E.   chip(*)simcom.com.ua

    Выигрыша как раз и не нужно, для наших целей отлично подходят sim800c, однако их скоро снимут с производства, а этот отлично становится на посадочное место, без переделки платы, корпуса, трафаретов.... Мы юрлицо, с 3мя операторами уже есть контракты.

    Т.е. как я понял в этот модуль установить обычные карточки не возможно? И в обычных сетях 2г,3г,4г он работать не будет?

  3. Есть несколько вопросов к Cadilo и другим представителям simcom. На данный момент у нас есть готовая разработка на sim800c, на базе EAT. Проект уже работает но в скором времени старые модуля исчезнут с продажи, а SIM7020E идеально вписывается в старую плату после корректировки ОС на stepdown стабилизаторе и пары делителей. Так вот вопросы:

    1) Будет ли под SIM7020E выпущен EAT, если да то когда? Или уже есть?

    2) Как я понял в Украине Nb-Iot пока не сильно распространен, будет ли этот модем регестрироватся и работать на старых БС? В частности в селах где о "новых" 3г и 4г даже не слышали?

    Для информации, устройсто получает питание от сети и в энергосбережении особо не нуждается, по сути оно постоянно держит подключение с нашим сервером.

  4. Спасибо, то что нужно. Странно, что расширение файла большой буквой S  должно автоматически интерпретироваться как препроцессинг, но что то пошло не так.

    Более подробно: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0773a/chr1383143887630.html

  5. Кто нибудь пробовал собирать проект в такой связке: ChibiOS + KEIL + ARM COMPILER V6?

    Связка ChibiOS + KEIL + ARMСС V5 нормально компилируется. А вот с новым компилятором возникают проблемы с ассемблерными файлами, такими как: cstartup.s, vectors.s....... Внутри которых есть куски СИшного кода из ИНКЛУДОВ и ДЕФАЙНОВ:

    #if CH_DBG_ENABLE_STACK_CHECK && PORT_ENABLE_GUARD_PAGES
                    bl      _port_set_region
    #endif
    #if CH_DBG_SYSTEM_STATE_CHECK
                    bl      _dbg_check_unlock
    #endif
    #if CH_DBG_STATISTICS
                    bl      _stats_stop_measure_crit_thd
    #endif
    #if CORTEX_SIMPLIFIED_PRIORITY
                    cpsie   i
    #else
                    movs    r3, #0              /* CORTEX_BASEPRI_DISABLED */
                    msr     BASEPRI, r3
    #endif
                    mov     r0, r5
                    blx     r4
                    movs    r0, #0              /* MSG_OK */
                    bl      chThdExit
    _zombies        b       _zombies
                    ENDP

    Может у armclang есть опция которая разрешает использовать такие конструкции?

  6.  

    В 09.04.2020 в 18:40, roma-cezar сказал:

     все время вылетает в функции altcp_tls_create_config_client_common (altcp_tls_mbedtls.c)

    ret = -4480 , Failed to allocate memory.
    Может я еще что-то упускаю?

     

    У Вас есть конкретная ошибка, вот и решайте проблемы с выделением памяти в куче, зачем сейчас разбираться с энтропией. Для теста можете написать простую функцию энтропии, которая в цикле заполняет массив константами, после перепишите под аппаратный RNG.

    Функции выделения памяти

    MBEDTLS_PLATFORM_CALLOC_MACRO
    MBEDTLS_PLATFORM_FREE_MACRO

    по скольку я помню Вы должны переопределить сами.

    Если используете ФриРТОС, это будет vPortFree и нужно написать врапер над pvPortMalloc для calloc.

     

    Что то вроде этого:

    void *pvPortCalloc(size_t nmemb, size_t size) {
    	void *x = pvPortMalloc(nmemb * size);
    	if (x != NULL) {
    		memset(x, 0, nmemb * size);
    	}
    	return x;
    }

     

  7. 6 минут назад, jcxz сказал:

    Можно ещё так: по получению ошибки фрейма (начало BREAK), запустить периодический поллинг через GPIO (период ~1мсек) и параллельно продолжать принимать UART-ом. 

    Обнаружение завершения BREAK: или очередной поллинг вернул лог.1 или UART что-то принял - что первое случилось, то и служит маркером конца BREAK.

    Я об этом ранее уже писал

     

  8. Только что, jcxz сказал:

    Я так понимаю - ТС-у нужно определить, что длительность 0-я не менее чем сколько-то мсек. Т.е. - детектировать сигнал длинного BREAK.

    И отличить его от кратковременной помехи на линии.

    И если такой сигнал обнаружен - произвести сброс (какого-то протокола приёма).

    Все верно.

  9. 2 минуты назад, mantech сказал:

    Ну как же? А прерывание по приему символов с установленным флагом ошибки кадра до тех пор, пока на линии висит 0?

    Ошибка кадра приходит единожды при изменении сигнала в 0.

     

    3 минуты назад, jcxz сказал:

    Так можно сделать, если сразу после завершения длинного 0, всегда идёт пауза не менее этих самых 0.5-0.7 мс. А нормальные байты начинают идти только после этой паузы. 

    Пауза может быть или не быть :)) Неизвесно

  10. А LBD флаг нормально работает если порт сконфигурирован на UART, а не на LIN?

     

    6 минут назад, jcxz сказал:

    Зачем "на один"? У вас ног в МК уже не хватает?

    Можете не утруждаться - в обязанности UART-ов не входит измерение длительности сигналов на их ногах. Максимум что могут - выставить флаг ошибки если 0 держится более длительности слова. Ни о каких 100мсек даже речи идти не может. 

    Это уже проданный товар, нужно скорректировать прошивку под другое оборудование.

    Я понимаю, что юарт не может измерять длительность, но допустим если использовать ЛИН БРЕЙК, как посоветовали выше, можно запустить таймер софтово и поллить ногу в течении следующих 99мс? Или так не выйдет? Наверное с регистра состояния ДЖПИО можно вычитать текущий уровень 1 или 0, по идее альтернативная функция пина не должна на это влиять.

  11. 2 минуты назад, jcxz сказал:

    Что именно "отследить"? Измерить длительность удержания лог."0"? Например: подать на таймерный вход, запрограммированный в режиме захвата на захват по фронту сигнала. 

    А как на один и тот же пин таймер повесить и UART? Данные то ведь никто не отменял.

    4 минуты назад, firstvald сказал:

    USART_ISR_LBDF  флаг выставляется в прерывании при фиксации длинного 0 на линии. ну и можно просто руками опрашивать порт по чтению.

    Спасибо сейчас посмотрю что за зверь.

  12. Если еще актуально, попробуйте увеличить значение #define MEM_SIZE 1024*40 в файле LWIP lwipopts.h. Для работы мбедтлс требуется 2 буфера по 16кб памяти и еще под другие нужды она тоже нужна, как минимум под прием\отправку пакетов и сам сертификат(после парсинга)

  13. Привет. Может кто то сталкивался с возможностью отслеживать логический 0 на входе UART который длится более 100мс? В общем есть устройства третьей стороны, которое для отправки сигнала сброса использует притягивание линии UART в логический ноль на время близкое к 100мс. Каким образом можно это отследить? Разумеется что нормальное состояние линии логическая 1.

  14. 1 час назад, GenaSPB сказал:
    • А в двух словах можно опсисать?
    • А на старой партии процессоров костыль не помешал?

    Сама проблема была описана ранее(в первом посте). Переферийный модуль UART4 вис намертво пока не записать в DR любую инфу. На остальных юартах этой проблемы не наблюдалось.

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

  15. 5 часов назад, VladislavS сказал:

    Термин "индусский код" характеризует не гражданство/национальность программиста, а его квалификацию. И если вы нашли подобные примеры кода в lwip (я его не изучал, врать не буду), то он таки и есть индусский. 

    Я в курсе, что такое "индусский код". Просто стек популярный и достаточно навороченный, при своей нетребовательности к ресурсам(тут конечно все относительно).

    Причина проблемы полностью выяснена. Виной странная партия процов. Как и писал ранее в новой партии устройств данной проблемы нет, потому я просто перекинул процы между 2мя устройствами, глюк перекочевал на другую плату вместе с процом, старая же плата с новым процом заработала нормально. Ревизия процов везде "2". Внешне процессора имеют небольшое отличие, глючные имеют блестящие выводы(похоже на покрытие ПОС), новые имеют более коричневый оттенок выводов(возможно иммерсионное золото, но не уверен).

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