-
Постов
8 527 -
Зарегистрирован
Сообщения, опубликованные AlexandrY
-
-
48 minutes ago, flammmable said:
Как есть идеологические варианты организовать переключение между этими режимами?
Такое делается интеграцией в дивайс коммуникационного протокола с разделением на логические каналы.
Таких есть куча готовых с легко портируемыми сорсами, причем с клиентскими частями под PC.
Режимы там переключать не надо, логические каналы работают параллельно. -
15 hours ago, Димон Безпарольный said:
Как это изменить из программы?
timeClient.stop();
timeClient.setPoolServerName(AnotherPollName);
timeClient.begin();
P.S.
Как же в этой ардуине все примитивно.
Иногда кажется чего мы мучаемся с этими RTOS-ами. -
18 minutes ago, SII said:
Вот я и предпочитаю им по минимуму -- а посему, если есть возможность, использую отдельный асмофайл, а не встроенный ассемблер.
Ребят, вы не в тренде.
В Azure RTOS, а это сейчас одна из самых популярных осей в мире, которая засертифицирована по надежности по самое немогу применяются исключительно ассемблерные вставки!
Ни одного чистого файла на ассемблере.
Более того, именно когда требуются супернадежные функции для соблюдения требований MISRA применяются ассемблерные вставки, а не файлы.
Просто факт. -
3 hours ago, Immortal_Buka said:
вангую нарушение времянок
Бинго! Точняк. Все дело во времянке.
А именно параметр - ACTIVE-to-READ or WRITE delay (tRCD)
Довел где-то до 21 ns и все траблы пропали.
Всем спасибо за идеи. -
-
10 hours ago, aaarrr said:
Несомненно.
Да, это не STM, а скажем так, некий чип от Renesas-а.
Пока стало ясно, что ошибка не в замыканиях или разрывах дорожек.
На 3-х платах повторяется все один в один вплоть до неправильно считанных значений.
И ошибки именно в произвольной адресации в банках SDRAM 1,2,3.
В банке 0 все тесты проходят успешно.
Т.е. имеем картину: если адрес по нарастанию переходит из банка 0 в банк 1 и далее, то все отлично, можно писать и читать любые байты, ничего не портится.
Но если попытаться по произвольному адресу прочитать в одном банке, а потом по произвольному адресу в другом, то чтение будет с ошибкой.
Прикольно, но если тест в отладчике после записи данных начать идти по шагам на этапе контрольного считывания, то ошибок вообще нет! Из этого следует, что портится не запись, а чтение.На всех чипах на корпусе чипа написано 7ZG12.
Т.е. то ли 2017-й то ли 2007-й год , 52 -я неделя, ревизия G (2003 года), countries of diffusion - USA, countries of encapsulation - Singapore
Может брак? -
45 minutes ago, AVI-crak said:
Ну не знаю, A0 это всегда SDRAM_A0. Сама память отдаёт по младшему адресу все 16 бит разом. DQM0, DQM1 - это как-раз для управления отдельными байтами. Периферийный блок sdram в ST - самостоятельно рулит адресацию, если его верно настроить.
А то что на схеме приклеено - просто не должно работать, внешний чип памяти инициализируется адресными линиями.
Схема рабочая. В том смысле что некоторые тесты SDRAM проходят отлично.
Версия по поводу неправильной инициализации Mode Register в SDRAM могла бы быть интересной,
но именно в этой SDRAM c адреса A10 и выше можно писать что угодно, там эти биты не используются. -
41 minutes ago, aaarrr said:
А характер ошибок какой?
Пишу байтами. Типа так:
srand(magiс_variable); for (i=0; i < blocks_size; i++) { addr = GetRandAddr(); *((uint8_t *)addr)= rand(); }
Когда все заполнено читаю и сравниваю опять с rand
Функция rand штатная из C.
Если ошибка, то читается совершенно другой байт. Причем появляется уже на втором шаге цикла
Но как понял, хотя глубоко не копал, если повторить тест с теми же числами, то и значения ошибочных байт повторятся.
Системы я не обнаружил. -
Это я знаю. Схема взята из Dev KIT-а, трассировка и распиновка многократно проверена.
Но главное, почему полное заполнение случайными числами не показывает ошибку? -
Стоит на плате такая SDRAM.
Тип подключения к микроконтроллеру ARM-Cortex M4 - 13-bit row address, 9-bit column addressЕсли всю ее заполнять последовательно случайными числами, а потом заново прочитать то все нормально, и не разу не фиксировалось ошибки за десятки прогонов.
Но как только пытаешься заполнять случайными числами по псевдослучайным адресам, то возникают ошибки.
Причем если адресное пространство разбить на 8 частей, и каждую тестировать псевдослучайным заполнением отдельно, то будет так:0x0000 0000 ... 0x0040 0000 good 0x0040 0000 ... 0x0080 0000 bad 0x0080 0000 ... 0x00С0 0000 bad 0x00C0 0000 ... 0x0100 0000 bad 0x0100 0000 ... 0x0140 0000 good 0x0140 0000 ... 0x0180 0000 bad 0x0180 0000 ... 0x01C0 0000 bad 0x01C0 0000 ... 0x0200 0000 bad
Что можно напутать чтобы так получилось?
-
3 hours ago, mantech said:
Чтение блоками по 16кбайт - 22-25Мбайт\сек (процессор IMX6S EHCI контроллер)
А че так слабо-то?
Обычный STM32H747I на базе дешевого STM32H747I-DISCO с 400 МГц
без всяких специальных оптимизаций, прям из коропки, в демке Azure RTOS
читает 300 Мбайт файл на скорости 21 Мбайт в сек. Пишет 8 Мбайт в сек.
Надо только опцию поставить - USE_SD_HIGH_PERFORMANCE.
На компьютере та же карта имеет соответственно 86 и 20 Мбайт в сек. -
1 hour ago, khassanov said:
Здравствуйте!
Цель работы - подключить двигатели с энкодером к компьютеру. Выбор платформы на Ваше усмотрение.
Берите мой проект - https://habr.com/ru/post/403525/
Специально можно сказать сделан для изучения двигателей и энкодеров на компьютере.
Есть даж специальная программа для PC к нему - https://www.nxp.com/design/software/development-software/freemaster-run-time-debugging-tool:FREEMASTER
USB - high speed до 480 Mbit в сек.
В телеграме не общаюсь. Если вопросы, то только здесь. -
9 hours ago, x893 said:
Это и без всяких секций можно сделать.
Что - это? Соревнуемся в телепатии?
-
13 hours ago, jenya7 said:
Нужен датчик который распознает что человек вошёл в дверь. Маленький и с запиткой от батарейки. Может кто сталкивался с таким?
Я имею такой. На основе 6DoF сенсора. Передает по WiFi, или по BT, или LoRa.
-
On 3/19/2021 at 6:04 PM, murmur said:
Как бороться с этой бедой?
Добавлю - если карта единожды извлечена, то потом, даже если ее вставить, SD_STATE=BSP_SD_GetCardState(); всегда выдает ошибку...
Всегда есть топорный способ.
Очистить все переменные программного модуля и освободить всю занятую им динамическую память.
После чего все можно стартовать как после сброса.
Чтобы все делать без напряга в линкере назначить отдельную секцию памяти для программного модуля.
И стирать используя границы секции. -
4 hours ago, Make_Pic said:
Подниму тему!
Присоединяюсь! AlexandrY расскажите о вашем генераторе эффектов pls!!!
Сорри , давно уже забыл тот проект. Ничем помочь не могу.
-
25 minutes ago, x893 said:
Считать состояние сигнала на ноге и определиться
Читать состояние может быть слишком поздно.
Тут либо ногу организовать на функции capture таймера, либо запускать DMA c порта в память. -
11 hours ago, neon416 said:
Так что считать критерием качественного выполнения работы топологом? Завелось и ладно?
Численно в процентах, mV, mA может доказать что там плохо?
Ребята честно воспроизводят дизайн ардуино -
Но только стилизовали под себя.
Есть стиляги трассирующие только кривыми дорожками, а есть те кто в пику им трассирует только перпендикулярно.
Недавно у Altium-а вышла статья о мифах трассировщиков.
Оказывается специалисты старшего поколения дико бояться трассировать перпендикулярно.
Ноги растут от того, что раньше в местах резких сгибов накапливалась кислота и дорожки разрушались.
А нынче травят щелочью, и нет никакого значения как сгибаются дорожки.
Так что трассируйте как хотите.
-
1 hour ago, =AK= said:
Я вам уже ответил. Ваша задача тривиально решается под Ардуино для ESP8266. Поставьте себе среду Ардуино, добавьте в нее модули ESP и изучайте примеры, их там десятки. Потом добавьте библиотеки какие вам нужны. Все что вам надо там давным-давно сделано и выложено на блюдечке с голубой каемочкой.
ТС-у привели прямую ссылку на идеальное решение, а в ответ даже спасибо нету. Ну да, там нужно портировать на ось.
Сами тоже какую-то ось применили.
Так откуда такая уверенность что в либах ардуины не будет оси, той же FreeRTOS? Но только она там будет зарыта поглубже. -
2 hours ago, rat said:
Тем, что в конторе уже юзается нордик, унификация.
Унифицировать лучше софт чем железо. Затраты на софт по сравнению с железом как 10 к 1.
А софт самого нордика слабоват. -
1 hour ago, mr_smit said:
Ладно, думаю действительно проще будет передавать названия целиком и не заморачиваться. Всем спасибо )
Мало RAM-а, отсюда все проблемы.
64K обычно отдают на кэш файловой системе, а у вас на все 64К
С таким объемом любая мелочь головняк будет создавать. -
1 hour ago, sn65 said:
Необходимо сделать пример программы для связки STM32 и ESP8266.
Гляньте на STM32H.
Для них на днях вышел очень привлекательный X-CUBE-AZRTOS-H7
Эта моща не только вам сделает DHCP и HTTP, но еще и SSL c TLS-ом
И даж ESP8266 не нужен будет, сможете прикрутить нормальный WiFi модуль на SDIO -
24 minutes ago, mr_smit said:
Тогда после того как я отправлю список, в ответ достаточно будет отправить, например, 2, чтобы со стороны микроконтроллера обработать это и определить что пользователь выбрал Data1.txt. Ну а если файлов штук 150 ? Где этот список хранить. Да ещё и с длинными именами.
Вы сделали проблему на ровном месте.
В моих дивайсах через MQTT в JSON формате пересылаются списки более 1000 файлов с длинными именами в обе стороны.
А MQTT как известно работает поверх TCP, а тот в свою очередь может работать и через USB и через RS232
Все промежуточные файлы сохраняются на той же SD карте.
Но с таким слабым контроллером больше чем на пару сотен файлов на карте рассчитывать не стоит. Так что списки у вас будут достаточно короткие.Кстати , нам тут контрактный сборщик сообщил что c ST-шными процами серии STM32F103 трагедия.
Либо нет в стоке либо дорожают в два раза. -
On 3/12/2021 at 9:26 PM, makc said:
Делал задержку 10 мкс - не помогает.
Если так действительно делали, то зачем смотреть дребезг?
Разработка отечественной voip системы
в В помощь начинающему
Опубликовано · Пожаловаться
"Развернуть" - хорошо сказано.
И че люди малину используют если любую линуксовую либу можно просто "развернуть" на гораздо более экономичных cortex m4?
Нельзя просто так взять и развернуть, потому что в списке платформ у PJSIP нет к1921вк028
Нужно портировать.
И Embox, ИМХО, для этого худший вариант, там нет исходников портированной PJSIP, а демка явно мало функциональна и абсолютно никакой доки.