-
Постов
641 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные KARLSON
-
-
-
И смотрели, разные платы брали. Поведение одинаковое.
-
Доброго дня.
Обнаружил очень странную странность. У МК STML433VCT6 есть два вывода для выхода от генератора RTC на 512 и 1 Гц. RTC_OUT. Выводы PC13 и PB2. Эти выводы никуда не подключены на схеме. RTC тактируется от внешнего кварца. Если выводим на PC13, то частота станет 503 Гц и часы естественно начинаю медленно ходить на 28 минут в сутки. Если выход не активировать, то ходят уже нормально. Так же нормально ходят часы и на выход PB2, частота 512 Гц как и положено. Не пойму с чем связано. Посмотрел дадашит и мануал по теме RTC и GPIO ничего такого не обнаружил. Особо конечно не принципиально, схему можем переделать конечно, просто неожиданно как то.
-
Когда мы начинали думать в эту сторону (сентябрь 2023), то собрали вот какую информацию:
1) есть два вида eSIM - для М2М и для смартфонов.
2) eSIM для М2М владеет только МТС, остальные операторы это не поддерживают, т.е. переключатся не получится. Проблема в получении и продлении лицензий в новых реалях.
3) Далеко не все модемы поддерживают эту технологию. SIM800C только спец прошивка.
4) Есть небольшой геморой с переходом прав и оформлением на нового пользователя. причём разные пути для физ лиц и юр лиц.
5) Со стороны МК никаких спец АТ команд не требуется. Просто сначала был один серийник симки, после замены профиля оператором другой серийник. Замена профиля происходит автоматически во время сеанса. У нас прибор включает модем для GPRS примерно на 40 сек.
-
В 20.06.2023 в 02:29, jcxz сказал:
В IAR, чтобы оно правильно работало, кроме префикса __no_init у переменных, у вас в командном файле компоновщика для этой секции должно быть указано:
do not initialize {section .SettingsSection};
По аналогии с IAR, можно предположить, что и здесь в скрипте компоновщика нужно указать нечто аналогичное. Вангую, что нужную инструкцию искать нужно в мануале на компоновщик.
В общем, да.
Теперь секция выглядит так
/*KEEP(*(.SettingsSection))
*(.SettingsSection)*/
.markerSettings (0x20000000) (NOLOAD):
{
KEEP(*(.SettingsSection))
} >RAMИ бинарник теперь нормальной величины)
-
Здравствуйте. Использовали на работе IAR, применяли атрибут __no_init к некоторым переменным. Решили попробовать перейти на CubeIDE. Столкнулись с проблемой. Создали секцию в памяти в файле .ld
/*KEEP(*(.SettingsSection))
*(.SettingsSection)*/
.markerSettings (0x20000000):
{
KEEP(*(.SettingsSection))
} >RAMСоздаём переменную по конкретному адресу в ОЗУ
TSettings Settings __attribute__((section(".SettingsSection")));
И тут проблема - компилятор создаёт бинарник размером в 300 Мб. Всё что далее программы одни нули. Т.е. он хочет проинициализировать её нулевыми данными. Как заставить его не инициализировать её? Искал и в инете и в guid, по словам init, attribute, attribute gcc, ничего нужного не нашёл. Подскажите, пожалуйста, как решается этот вопрос?
-
Посмотрите в этом канале. Там много чего есть. https://t.me/it_boooks
-
я использую приоритет задач. И при старте задачи с наивысшим приоритетом (значит запускается самая первая), до цикла забираю все семафоры, т.к. они уже есть при старте операционки.
-
По поводу FromISR. В последних версиях появился файл cmsis_os2.c. Там например забрать семафор можно вызвать osSemaphoreAcquire, которой всё равно от куда вызывать из прерывания или нет. Она сама автоматом определяет.
Кстати нашёл и osThreadResume, но она не вызывает xTaskResumeFromISR если из прерывания. Просто выходит с ошибкой.
-
В 23.06.2022 в 18:22, x893 сказал:
Прекрасно выходит из цикла. Смотрите условие while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) && (status == HAL_OK))
Так что бы к этому условию придти , нужно сначала выйти из while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET), который ниже.
А в ST обязательно скажу.
-
Всех приветствую. Предлагаю тут выкладывать найденные ошибки в библиотеках HAL.
P.S. не нужно тут обсуждать применять или нет библиотеки.
Итак.
MCU - L433
библиотека - stm32l4xx_hal_i2c.c
версия - STM32Cube_FW_L4_V1.17.2 (последняя на 23.06.2022)
функция - I2C_IsErrorOccurred
Причина:
в цикле while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) после условия выхода по таймауту if ((HAL_GetTick() - tickstart) > I2C_TIMEOUT_STOPF) нет выхода из цикла. Может остаться на очень долгое время.
Решение:
добавить break; после status = HAL_ERROR;
-
vpn помогает.
На STM32CubeMX-6.3.0-Win https://disk.yandex.ru/d/LT7aRTA708wqUg
Сразу уж и на st-stm32cubeide_1.9.0 https://disk.yandex.ru/d/0hv2Rk2WFltJ3Q
А с кубом и регистры изучаются быстрее намного.
-
Если по примерам к отладочным платам от ST не получается и нужны курсы, то могу порекомендовать https://gb.ru/geek_university/internet-of-things. Далее видео от инженера, которые ведёт эти курсы.
-
С CSD остался только у просто SIM800 и Telit GL865. А обновлять лучше через GPRS. По CSD дорого выходит)
-
оставшееся место памяти в стеке этого таска проверяли? Я держу, что бы было не менее 90 слов.
-
Всё время натыкался на эту статью от них. https://community.atlassian.com/t5/Sourcetree-articles/Bug-Fix-Sourcetree-for-Windows-authentication-error-when/ba-p/1965968 И не видел главного, может не долистывал. Отдыхать надо. Мне помог второй способ - удаление файла passwd.
-
Здравствуйте. Bitbucket недавно сменил политику авторизации. Теперь пароль от учётной записи не применяется и только через Basic. Нужно создавать одноразовый пароль в профиле в разделе пароли приложений.
Создал пароль cо всеми включенными галочками. Скопировал его в текстовый документ. В SourceTree последней версии 3.4.8.0 после установки при авторизации ввожу логин учётной записи, через Basic, пароль созданный. Аутентификацию проходит успешно. Проект из Bitbucket со своей учётной записи клонируется до последнего коммита успешно. Но после изменений создаётся локальный коммит, но не может его отправить на сервер. Не проходит аутентификацию.
Цитатаgit -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks push -v --tags --set-upstream origin tempnoutmy:tempnoutmy
remote: Bitbucket Cloud recently stopped supporting account passwords for Git authentication.
remote: See our community post for more details: https://atlassian.community/t5/x/x/ba-p/1948231
remote: App passwords are recommended for most use cases and can be created in your Personal settings:
remote: https://bitbucket.org/account/settings/app-passwords/
fatal: Authentication failed for 'https://bitbucket.org/логин/ip_gsm_modem.git/'
Pushing to https://bitbucket.org/логин/ip_gsm_modem.git
Выполнено с ошибками, см. выше.
Владелец и участник проекта я один.
Проверил в настройках проекта путь внешнего репозитория - https://логин@bitbucket.org/логин/ip_gsm_modem.git. Всё вроде правильно, как указано в статьях выше.
Что делать не пойму, идеи закончились)
-
Если готовое (бюджет не оговорен), то предложил бы контроллеры ввода/вывода по Ethernet или RS485. Что-то вроде этого https://market.yandex.ru/product--kontroller-icp-das-i-7188ead-cr/865735128?clid=545&sku=101218994913&offerid=yEQc77bnZCiZsvl4oOqFeA&cpa=1
-
Может просто сделать компонент обычного резистора с нулевым сопротивлением? На плате это будет резистор или перемычка, которую нужно паять?
-
Смысл в том, что должно превысить критическую массу, что бы это всё стало всё везде и повсюду. Сделать прибор как образец, во всех рекламных буклетах и сайтах писать что мы можем дать прибор с "новейшей прекрасной и дешёвой связью NBiOT", на выставках так же. Далее заказчики будут спрашивать симки у операторов, затем те уже зашевеляться)
-
3 часа назад, alexbbs сказал:
Вообще, если так, по факту, а стоит ли вообще NB-IOT смысл использовать?
Мы сделали пилотный счётчик газа, убедились что всё работает, установили 2 штуки в Оренбурге 1 шт у нас на наработке и успокоились уже год как) Ждём лучших перемен. А ещё очень мечтаем о Е-сим)
-
Я бы на вашем месте в МТ-Систем или Макро-групп позвонил. У них есть выход на конкретных людей у опсосов.
-
Здравствуйте. Проблема в эксплуатации, не для новых приборов. Есть прибор с модемом Quectel UC15 в режиме CSD. C симками операторов МТС, Мегафон работает. Вставляем симку Билайн, при дозвоне на прибор модем не поднимает трубку. RING по UART приходит, посылаем команду ATA и тишина, ответа нет. После длительного времени уже приходит NO CARRIER от оператора.
Эту же симку пробуем через модем промышленный Sinterion BGS2 после команды ATA приходит CONNECT 9600 и связь работает.
Пробовали разные режимы AT+CBST=71,0,1; AT+CBST=7,0,1; AT+CBST=0,0,1.
-
Купим микросхемы 1-300 штук. Или больше если есть. Нужно в течении 3-х недель.
STM32L152VET6, STM32L162VET6, STM32L152VDT6, STM32L162VDT6.
Можно б/у в платах, лишь бы рабочие.
Использование uxTaskGetStackHighWaterMark, как работает?
в FreeRTOS
Опубликовано · Пожаловаться
Она показывает сколько осталось свободного стека по мере работы таска. Всё время ей пользуюсь и если стека осталось менее 50 , то пишу в архивы, потом так отлавливаю и увеличиваю в последующих прошивках.