- Внезапно трабла накатила - флешка слетает... POV_(536 знак., 03.07.2020 20:54, , MCU, полностью)
- если к питанию нареканий уверенно нет, то я бы копал в сторону
тактового генератора, либо просто чип свое отработал ( и флеш через
паразитные дела внутри затирается, но все равно причина должна быть
в рассинхроне внутренних процессов записи - чтения.) При условии
конечно, что к коду вопросов нет.. - klown1(07.07.2020 10:10)
- Потенциально, в условиях ударов и вибрации в микросхемах возможен
пьезоэффект. Но мне что-то подсказывает, что это совсем не твой
случай, а у тебя скорей банально баги в коде. Кроме того "монитор
питания включен" -- включен программно, или вывод MONEN подключен
куда надо, чтоб монитор был включен с самого начала, всегда? Без
последнего запросто возможен глюкодром с самостиранием прошивки
(при неадекватном питании, в момент включения/выключеня,
исполняются какие попало fk0(108 знак., 04.07.2020 13:19, ссылка)
- Статичное лепездричество? От вибраццый. - mse homjak(04.07.2020 10:33)
- Постоянно на это нарывались, еще круче: есть 2 типа плат с
идентичной схемой проца, обе по 485 работают с хостом. В одном типе
прошивка не слетает, в другом частенько при включении. За пол года
разобраться не смогли, перешли на STM с ними проблем нет. - Visitor(04.07.2020 09:02)
- AN201 Writing to flash from firmware тщательно покурил? Или таки
прошивка вообще не твоя? RxTx(03.07.2020 21:04, ссылка)
- Реализовывал ли кто-нибудь OneWire Slave на базе SPI/UART? Чистый
bitbang'инг - это благородно, но если нужно имитировать несколько
шин, таймеров не напасешься, да и геморно. lloyd(125 знак., 24.06.2020 21:19, MCU, полностью)
- Думаю можно сделать по аналогии с описанием по ссылке (). Нужен PIC
с HLT таймером, который будет запускаться от сигала шины 1-wire
(1->0), и перекидывать лог ячейку (триггер, CLC). Т.е. на
выходе CLC получим клок для SPI. SDI тоже подключаем к 1-wire,
таким образом логика будет формировать SCL и данные сдвигаются в
регистр SPI. На чтение аналогично. Должно работать полностью
автоматически. Илья(85 знак., 26.06.2020 18:17, ссылка)
- Не понял, что с UART, что с таймером, у тебя по одному (двум, не
важно) прерываниям на бит. Одинаково всё. А таймеров обычно больше
чем UART'ов. Тем более, что таймер-то на самом деле, аппаратный,
нужен ровно один. А поверх него можно построить очередь программных
таймеров. - fk0(26.06.2020 10:32)
- Дык вроде многие под это дело УАРТ и затачивают , эмулируя слоты
1wire. - Balda(24.06.2020 21:53)
- прошу прощения! а можно ссыль на спецификацию "OneWire" ?? чисто
для самообразования - Aleksey_75(24.06.2020 21:24)
- Есть мысль перейти на RTOS для снижения временных затрат на
реализацию программной части, отладку и профилировку. Важна
поддержка со стороны хоста (PC,IDE) чтобы видеть времянки, логи,
состояние. Какие используете RTOS? Есть ли опыт применения ThreadX?
Какие RTOS можно выделить в качестве ключевых? RxTx(118 знак., 18.06.2020 10:35 - 11:07, MCU, полностью)
- ChibiOS посмотрите. Мелкая и удобная. antm(202 знак., 18.06.2020 20:39, ссылка)
- я FreeRTOS использую, ключевое приемущество - чето не нравится -
взял и переписал или доделал. на заре пользовал ThreadX. когда
памяти больше чем нужно и процессор быстрее чем быстро - то
экономия в разработке есть - велосипед писать не нужно. - klen(18.06.2020 19:32)
- Используем ThreadX в составе платформы Renesas Synergy, для отладки
есть TraceX, dxWAk(240 знак., 18.06.2020 13:55, картинка)
- Да, интересно, а насколько легковесны такие вызовы (в тактах,
например): fk0(294 знак., 18.06.2020 15:47)
- Допустим, я хочу сделать в threadX логгер. Он будет писать в
кольцевой буфер в памяти, из которого медленно и печально будет
выпечатываться в компорт. Задача достаточно классическая.
Логгировать одновременно могут все потоки. Как сделать кольцевой
буфер -- понятно. В принципе он может быть реализован на
lockless-алгоритмах, но.... Но поскольку компорт медленный, то
буфер может быть в переполненном состоянии (регулярно), то потоки
пытающиеся писать в лог должны ожидать fk0(1061 знак., 18.06.2020 14:15)
- Я бы использовал очередь, в потоке, который логирует ошибку dxWAk(447 знак., 18.06.2020 15:05, картинка)
- Собственно и вопрос-то в том как сделать самодельную очередь.
Потому, например, что готовая очередь может по каким-то причинам не
подходить. Например, работает только с сообщениями фиксированного
размера. Да, можно пересылать указатели на сообщения, но тогда на
каждое нужно выделять память. Кроме того, если очередь реализована,
условно, через системный вызов -- то работа с такой очередью
становится очень тяжёлой, по сравнению с другими примитивами
синхронизации, которые по fk0(213 знак., 18.06.2020 15:13)
- я не знаю за threadX но на тнео, фриртос итд так. abivan(788 знак., 18.06.2020 15:02)
- Бинарный семафор. Самый приоритетный из ожидающих проснется,
заберет семафор, проверит место. Если места достаточно - отправит
данные. Если недостаточно - снова встанет на этом же самом
семафоре. - LightElf(18.06.2020 15:01)
- "времянки, логи, состояние" можно смотреть через J-Scope - BlackMorda(18.06.2020 12:58)
- Ага. А с чего будет снижение затрат-то? На борьбу с ОСью не будет
не потрачено ничего, особенно на синхронизацию? В одном большом
проекте половина багов -- синхронизация (дедлоки, data race и т.п.)
А у тебя Valgrind (DRD, Hellgrind) не будет. Ты ж про
"синтетический порт" на ПК и слышать небось не хочешь. Мол одной
левой и так отладим. Основной функцией ОС является распрделение
ресурсов вычислительной системы. И она нужна, если ты это руками
сделать не можешь. И в fk0(2533 знак., 18.06.2020 11:00)
- С многопоточностью и синхронизацией у меня ок из-за того что до
этого на PC я делал несколько многопоточных и многопроцессных втч
network проектов, как либ, так и серваков или там GUI приблуд. Так
что этого я не боюсь. Про RTOS я подумываю не потому что мне нужна
вытесняющая многозадачность. Как раз нет, RxTx(1898 знак., 19.06.2020 00:17, ссылка, ссылка)
- Можно использовать ADA с рантаймом Ranvenscar - там есть задачи - OlegPowerC(18.06.2020 14:28)
- Если ресурсов немеряно, задача распределения ресурсов решается
проще. Приходишь на склад - а там столько, что не унести. А
достоинства RTOS никуда не делись - пишешь потоки и ффсе. Нужно
просто подобрать удобные потоки под RTOS, а все, требующее сложной
синхронизации сделать ручками. - VLLV(18.06.2020 13:16)
- Полагаю, что готовые библиотеки работы с Ethernet и выше
(WEB-сервер, SSL, что там еще понадобиться может) они требуют ОС.
Их использование, вместо изобретения велосипеда, это снижение
затрат. В остальном согласен, скорее всего ОС там не поможет. - AlexBi(18.06.2020 12:39)
- +1 - evgeniy1294(18.06.2020 11:07)
- [Renesas RXv3] выкатили -> новое ядро в семействе. Очень интересное! Краткое сравнение --> Вложено Evgeny_CD(1296 знак., 05.02.2019 23:26, MCU, ссылка, ссылка, полностью)
- Тем не менее, я думаю, все равно "не взлетит". =AK=(535 знак., 21.06.2020 14:37)
- Охренеть! Только сейчас удосужился вкратце ознакомиться с Register
Set и Instruction Set Architecture - так это же практически 1:1
dsPIC, не считая плавучки и некоторых расширений/дополнений! Берем,
заверните 2! :)) - MBedder(21.06.2020 11:43)
- [RX72M] как 72N, но EtherCat. Цены как 72N Evgeny_CD(21.06.2020 07:31, ссылка, ссылка)
- [RX66N] вышел и залег на склады. Это просто офигеть!!! Они копались в моей
голове. Cortex-M7 нервно курит в сторонке. Evgeny_CD(624 знак., 21.06.2020 02:45 - 07:25, ссылка, ссылка)
- [RX72N] как 66N, но 240 МГц, 2 Ethernet, Parallel Data Capture Unit (PDC,
под захват видео). Сегодня ночью добавили. Evgeny_CD(101 знак., 21.06.2020 07:24, ссылка, ссылка)
- Фирменный GCC уже готов -> Evgeny_CD(05.02.2019 23:58, ссылка)
- Как я уже отмечал, Register Bank Save Function впервые была реализована в 16-битных TMS9900 аж в... да, именно - в 1976(!) году - посредством Workspace Pointer. А как понять "плавучка стала дабловая (опционально)"? - MBedder(05.02.2019 23:39)
- Общие документы по RX600, RX700 Evgeny_CD(05.02.2019 23:27 - 23:29)
- [SDRAM 512Mbit штатно с CL=1 -40°C to 85°C] Удивительное рядом! Даже не думал, что такое бывает. Evgeny_CD(289 знак., 21.06.2020 01:55, MCU, полностью)
- [Синхронный UART с асинхронным клоком на вход в режиме
Slave]. Интересно, пробовал ли кто, и будет ли оно работать? Evgeny_CD(447 знак., 15.06.2020 10:02, MCU, ссылка, полностью)
- Библиотека time в конфигурации 64 бита не работает на MSP430, по
крайней мере в симуляторе. Что делать? Есть ли самопальные
localtime / mktime без проблемы 2038 года? - VLLV(01.05.2020 00:08, MCU, полностью)
- Достаточно в ИАРе определить: _DLIB_TIME_USES_64=1 и time_t
становится 64 бит и все функции time.h нормально с ним работают... - д__(12.05.2020 09:32)
- Можно взять из dietlibc. SciFi(95 знак., 01.05.2020 11:11, ссылка, ссылка)
- У меня есть кусок IARской библиотеки, нагло исправленный под
uint32_t в качестве time_t, но внутри встречаются переменные типа
uint64_t. Могу выложить. - AlexG(01.05.2020 07:48)
- крутяк! вы закладываете своему девайсу срок без обновления 18 лет
??? Искренне жму руку! - Aleksey_75(01.05.2020 00:24)
- И чего удивительного? У меня без правок трудилась и трудится
прошивка и в новых изделиях с 2005 года по 2019... изделие
выпускается и сейчас...невоенка... - sav6622(01.05.2020 13:32)
- У меня десятки серьезных аэрогеофизических бортовых приборов
исправно трудятся 22-й год подряд. Hint - полувоенные DC-DC Vicor,
электролиты с трехкратным запасом по рабочему напряжению, МК с OTP
EPROM, разработано головой (моей, что немаловажно) и сделано руками
(тоже моими) - MBedder(01.05.2020 12:56)
- Всякое бывает. С моей старой разработкой люди мучаются вот уже 16
лет, хорошо уже без моего участия. - AlexG(01.05.2020 07:49)
- Новый заказчик, хотел сделать хорошо хоть раз, для потомков, тем
более ничего не предвещало - библиотека настраивается 64/32 бита. - VLLV(01.05.2020 06:22)
- Коммерчески правильный вариант протестировать, что текущая
реализация точно имеет баг 2038 года, и именно этот вариант в
продакшен :) - Evgeny_CD(01.05.2020 00:37)
- У хайтека (из Hitech-C для пиков) возьми. Они раньше libc в
исходниках выкладывали. Туплю. У них на 32 бита. Без проблемы 2038
года -- с этим сложно. Можно потенциально сделать unsigned и
дотянуть до ~2106 года. И не работает-то наверняка не почему-то, а
потому, что с поддержкой unsigned long long (aka uint64_t)
проблемы. Какой смысл искать другую библиотеку, у ней будет та же
проблема. Да и смысл? Осталось 18 лет, гарантию что ли до 2038 что
ли давать будешь? И так fk0(93 знак., 01.05.2020 00:18)
- можно ли макросом #ERROR вывести в сообщение компилятора значение
другого макроса, имеющего числовое значение, и собственно,
являющеся причиной генерации Rainman62(130 знак., 03.06.2020 21:35, MCU, полностью)
- Кто-нибудь из "долгожителей" помнит контролер "Hitahi H8/500"? Kceния(1166 знак., 03.06.2020 20:52, MCU, ссылка, полностью)
- ну давай Муська! еще капельку!: поразгонял gd32vf103cb + oled 0.96 klen(2512 знак., 31.05.2020 00:57 - 10:37, MCU, ссылка, картинка, полностью)
- Коллеги, подскажите есть ли в продаже модули с 6-8 переменных
резисторов, несколько кнопочек, тумблеров, светодиодов. Можно
немножко макетного поля. Надоело для проверки программы, каждый раз
на на проводках все это цеплять к плате. Посмотрел у Ардуинщиков, в
ЧипДип, на Али но там не то. - Sl(30.05.2020 17:27, MCU, полностью)
- Тут на форуме недавно проскакивало про "для души". Получайте ;) MSP
выпилили отсюда, а оно вполне еще даже ниЧО - вон как изящно на
задачку легло... Надыбал у себя коробку вот с такими девайсами -
это датчики с радиоканалом на CC1101. Термодатчик и измеритель
импеданса на частотах до 4 МГц имеется прямо контроллере G2553.
Потому и MSP, а не ардуины с китай-датчиками. Одна из платок
прекрасно прижилась вместе с антенной в качестве "центрального
процессора" для руления Гyдвин(558 знак., 23.04.2020 18:39, MCU, картинка, полностью)
- Понимаю, что лепил из того, что было под рукой, тем не менее... Вот
весь "датчик". Для закапывания в землю и подвешивания под крышу
одинаковый. Отпилил лишние акселерометр, операционник, датчик
вибрации и eeprom. Осталось то, что на картинке :) S1 - геркон.
Радиомодуль на CC1101. Гyдвин(1 знак., 27.04.2020 17:15, картинка)
- Клевый "main loop" получился. И особливо клевый парсинг ответов
модема, соответственно и размер кода ;) Гyдвин(1661 знак., 25.04.2020 13:10)
- Код ни разу не клевый. Идея в том, чтоб использовать хеши ответов
вместо парсинга в лоб? Действительно идея, но ньюансы могут всё
испортить, практически это грязный хак. В полноценном парсере хеши
тоже могут найтись, например, в алгоритме Рабина-Карпа, для
быстрого понимания какой именно это токен, без сравнения с каждым. - fk0(25.04.2020 13:21)
- Мне не надо понимать какой токен из множества различных. Я тупо
выполняю команду и жду нужный или окончание тайм-аута: if (command("AT+CREG?", 2, REG)) Так что
в данном приложении (просто проверить регистрацию в сети,
активность GRS сессиии и послать данные, получив "200" ) - клевый.
Простой и компактный. А я ленивый ;) Ну и да - если при выполнении
команды модем ничего не ответил во время тайм-аута, значит висит -
передергиваю питание. За пару суток такое Гyдвин(409 знак., 25.04.2020 13:41)
- Ты ждешь хеш токена, а не токен. Проблема в том, что ответ может
оказаться не буквально, побуквенно, совпадающий с ожидаемым.
Пример: "CONNECT 9600". Который может превратиться в "CONNECT
2400". И коллизии само собой -- на которые гарантию никто не даст
вообще. Может тебе вместо "CONNECT" написали "ERROR 23512" и хеши
совпали. Хеширование само по себе -- не метод, а лишь способ
ускорить и обойтись меньшим количеством сравнений строк, которые
всё равно нужны. Потом таким fk0(2004 знак., 25.04.2020 14:15)
- Ты не читаешь и сильно возбужден в последнее время :) Одна фраза
понравилась: "способ ускорить и обойтись меньшим количеством
сравнений строк". Воооот! В MSP430 c RAM 512 байт... А модем у меня
один - найденный в шкафу и в данное время прикручиваемый к
проектику "для души". Все уже распаяно, испытано и известно что
возвращает. И еще раз: передергиваю не когда мой код "наткнулся на
неожиданный ответ", а когда ответа нет вообще - не прилетело в RX
ничего за заданное Гyдвин(283 знак., 25.04.2020 14:50)
- Ты уподобляешься радиолюбителю в худшем его виде. Некоторые очень
ненавидят радиолюбителей, я начинаю догадываться почему. - fk0(25.04.2020 15:23)
- Да остынь ты, что пристал к человеку. Он делает лично для себя, еще
и результатами может поделится :-) Радиолюбительский подход в
одноразовом изделии экономит время и вполне оправдан. Я тоже
ненавижу радиолюбительство, но только с того момента, когда
какой-либо радио-губитель начинает применять свои методы за рамками
дом/семья/друзья, при этом не понимая что так делать не правильно. - il-2(25.04.2020 15:35)
- Дык я таковым и являюсь, есличО :) И вполне понятно, что меня
плющит от "парсера пропарсивания пасинга парсеров" и, например,
тонн глючного некрочиповского индусокода , когда можно обойтись
несколькими строками с вполне предсказуемой надежностью... - Гyдвин(25.04.2020 15:34)
- докладываю. провел исследование алгоритма "хэша". оказывается так
можно было:) - Vit(25.04.2020 14:00)
- Круто! - Бoмж(24.04.2020 10:01)
- Ооо, родственная душа :-) Я тоже люблю всякие
хепримочки для дома/семьи делать :-). Сейчас появилось больше
свободного времени. Недавно даже завел страничку в ЖЖ для такого
дела (тоже рекомендую, именно ЖЖ, пробовал в Вконтакте -
обплевался). А то все-таки из твоих обрывочных сообщений трудно
почерпнуть что-то конкретное для себя. А хотелось бы. Я кстати
закончил свой шедулер для восхода солнца. Правда без интерфейса
настройки пока, но пользоваться можно. - il-2(24.04.2020 08:41, ссылка)
- Вообще-то в модем можно было вставить и атмегу328. Есть у меня и
такой девайс - уже с 1117 на борту и размером подходящий .
Отказался по причине отсутствия в нем кварца, требуемого для UART
(впрочем можно часовой присопливить для калибровки). Ну да ладно -
пусть служит по прямому назначению - программирует все эти датчики
на MSP по радио, чтобы не таскать ноут. Втыкаешь в usb компа,
заливаешь прошивку датчиков. "В поле" втыкаешь в powerbank и
перешиваешь датчики. Мощный Гyдвин(155 знак., 23.04.2020 21:46, картинка)
- То есть ты взял модем и имплантировал в него свой микродевайс?
Вивисектор однако! Круто! - Звepoящep(23.04.2020 20:18)
- Модем года два валялся "у шкапчике". Вспомнил... Так посчитал более
простым, более удобным, (раз уже есть подходящий модем и готовые
платки) и надежным, чем куча промежуточного барахла в виде 3G
роутеров и ESP и ардуин с кучей дерьмокода. Тут только я буду
виноват в случае фиаско ;) - Гyдвин(23.04.2020 20:29)
- Согласен. Главное - чтобы модем не глючил. - Звepoящep(23.04.2020 20:56)
- Там в модеме LM2596S в DC/DC 12В -> 3 .9В. Нога "enable" была
соединена с GND перемычкой в виде резистора. Перепаял на 1 кОм и
соединил к ноге MSP. Так что и это не страшно - можно передернуть
:) Правда в свою платку пришлось присопливить LM1117 для отдельного
питания, хоть в модеме уже имеется LDO 3.9В->3.3В. - Гyдвин(23.04.2020 21:15)
- То есть MSP модем время от времени пингует? :) - Звepoящep(23.04.2020 21:29)
- Попингуй! Сам попингуй! От попингуя и слышу 8) - Cкpипaч(23.04.2020 21:45)
- Угу. Уже допилил до состояния посылок на HTTP сервер каждые 15
минут. Просто интересно ;) - Гyдвин(23.04.2020 21:44)
- Прикольно. Про "пингуй" история :) Давным-давно, поднимали мы
девайс на Vortex'е РС104 формата под NetBSD. Ага. Сей писюк был
глюкавый, и время от времени подвисал. И для этого плата, что
сидела на его ISA шине, всё время его теребила, и если писюк
зависал, она принудительно делала ему ресет. Ну так вот, а чтобы
плата сама не подвисла, то писюк пинговал плату, и если она
зависала, то он ей делал ресет. В общем, пинговали они друг друга и
жили долго и счастливо :) - Звepoящep(24.04.2020 21:05)
- Кстати, все это безобразие с подачи =AK= ;) - Гyдвин(23.04.2020 18:56)
- Народ! А не решал-ли кто задачу прицепить к ARM-у Ethernet, но не
напрямую, а через SFP - чтобы у пользователя был выбор физического
интерфейса: медь / пластик / стекло. Скорости 100М за глаза. - Qwestions(25.05.2020 23:05, MCU, полностью)
- Когда-то, гуляя по инету, наткнулся на страничку перца, который
собирал JS эмуляторы процессоров. Найти не могу. Знакома
кому-нибудь это тема? - teap0t(16.05.2020 20:39, MCU, полностью)
- USB девайсина на МК... POV_(325 знак., 21.05.2020 13:51, , MCU, полностью)