- Подскажите проверенный на практике JSON для микроконтроллеров, для
обмена по сети. Маленький, быстрый, качественный. - EmbedProg(Вчера, 15:16,
, MCU, полностью)
- Знатоки LWIP, подскажите. CaйpycCмит(956 знак., Вчера, 14:59,
, MCU, полностью)
- Подскажите как "красиво" загружать и хранить в памяти в
микроконтроллера различные конфигурации (константы, значения
переменных, условий переходов и т.д.)? Желательно с примерами кода. - Make_Pic(27.03.2024 09:13, MCU, полностью)
- Чего-то вы тут реляционную БД уже насоветуете... Красота в
простоте! Как делаю я... IBAH(818 знак., Вчера, 15:29)
- Самая красивая и полная сериализация это JSON. dumb_and_dumber(600 знак., Вчера, 12:43,
)
- Ихмо первый вопрос: Что за микроконтроллер? Мне всегда было
интересно: почему из этой самой необходимой информации всегда
делается великая тайна? Второй вопрос - ответственность устройства,
что будет если настройки будут утеряны. Третий вопрос. Это серийное
устройство? Какова будет статистика, каков объем серии? Четвертый
вопрос - условия работы устройства. Пятый вопрос - это
само-сохранение у девайса или к параметрам есть внешний доступ?
Шестой вопрос - количество RxTx(44 знак., 27.03.2024 15:48)
- Мне эта тема очень близка, я как раз перерабатываю БД настроек.
"Красиво" понятие очень неопределенное. Можно долго с гармошкой
вприсядку рассказывать о красоте и ни о чем... Что означает
"красиво"? RxTx(51 знак., 27.03.2024 15:43)
- Решение очень сильно зависит от структуры данных. Если это единый
массив, который будет записываться только целиком, это одно
решение. Если это 100500 отдельных параметров, каждый из которых
может меняться отдельно, будет другое решение. Если комбинация, то
третье решение. Еще решение зависит от готовности к потере данных,
т.е. допустимо ли потерять настройки (выключение питания при
перезаписи и т.п. сбои), или такое не допустимо. - AlexBi(27.03.2024 10:22)
- Красота в глазах смотрящего. Так-то можно сказать, что "красиво" -
это как в настоящих компьютерах, то есть файловая система. - SciFi(27.03.2024 09:26)
- А в чем: EEPROM или Flash? Eddy_Em(808 знак., 27.03.2024 09:18, ссылка)
- У вашего метода есть особенность, если вдруг при стирании
произойдет какой-то сбой/сброс, все данные будут утеряны, т.к. нет
второго блока во флеше, который бы хранил данные в таком случае.
Надо быть готовым к такому повороту. - AlexBi(27.03.2024 12:31)
- Во flash - Make_Pic(27.03.2024 09:25)
- У меня знакомый, в достаточной мере живёт тем, что обновляет
прошивки телевизорам, когда те записывают настройки "громкость" или
"каналь" во флэшь и "происходит чота страшное". Ему приносят кирпич
и деньги. Получают телек. Что за промблемма поставиь внешнюю
ЕЕПРОМ? Они щас копейки. - mse homjak(27.03.2024 12:42)
- Если кривые ручки запороли флешу, они и с еепромой справятся. - SciFi(27.03.2024 12:44)
- Да, но с ЕЕПРОМ не получится кирпича из поделия. - mse homjak(27.03.2024 12:46)
- Запросто. Звукашки Vibra16 ISA PnP и сетевушки Realtek PCI сразу
вспоминаются. Первые при слете ставили раком комп, вторые меняли
Vendor/DeviceID и теряли драйвера. Да и мониторов было несколько
семейств (не помню уже кто, ViewSonic вроде). - LightElf(27.03.2024 15:04)
- Не, я не против. Можно написать хуйню любой степени лютости,
которая поставит раком всё, до чего дотянеца и безо всякой ЕЕПРОМ.
Просто, если у нас есть код записи во флэшь, он, чисто
теоретически, можэт выполниться нештатно: не в то время и/или не в
то место. А если нет, то нет. Данные в ЕЕПРОМ, можно, хотя-бы,
выставить по умолчанию, если чексумм не сошолся или ещо чего. Когда
затёрт сегмент флэши, ловить нечего. - mse homjak(27.03.2024 17:59)
- Вы недооцениваете потенциал кривых ручек :-) - SciFi(27.03.2024 12:51)
- Тогда мой код подойдет. Еще надо в ld-скрипте пометить первую же
свободную секцию с выравниванием на размер блока - чтобы всю
свободную флеш-память можно было под хранилище организовать. Eddy_Em(389 знак., 27.03.2024 09:56)
- эмулятор EEPROM abivan(1 знак., 27.03.2024 09:33, картинка)
- Поясните где дырка в коде, почему компилятор так себя ведёт (Keil
6)... POV(719 знак., 03.07.2025 22:47, MCU, полностью)
- если таймер0 не используется в системе и tasks[0].timer не
проинициализирован, то сразу же будет выходить с NULL на выходе Oman(107 знак., 06.07.2025 10:33)
- Причем тут таймер0? - POV(06.07.2025 17:51)
- Поставь continue вместо первого return NULL и проверь, прав ли я. В
чем сложность? Oman(61 знак., 06.07.2025 19:19)
- ну вот... POV(182 знак., 06.07.2025 20:19, картинка, картинка)
- может после проверки if(!t) ничего по этому указателю в обработчике
больше не делается? - Vit(06.07.2025 21:35)
- "при статик работает".. значит - делается - POV(06.07.2025 21:38)
- получается массив пакованных структур - Vit(06.07.2025 21:46)
- не, всё там норм. никакой упаковки POV(1 знак., 06.07.2025 21:49, картинка)
- Коль структура так упорно применяется без выравнивания, то может
стоит попробовать временно вместо uint8_t num применить int num? - reZident(06.07.2025 23:03)
- мне тоже uint8_t по середине структуры не нравится, либо ее в
uint32_t либо в самый конец структуры. - Oman(07.07.2025 10:25)
- Стопе! Это вообще не в ту степь! Проблема не в данных, а в
вовзращаемом указателе. Пофиг что в массиве хранится. - POV(06.07.2025 23:05)
- Покажите уже ассемблер, выдаваемый компилятором, особенно начало
TMR2_GLOBAL_IRQHandler, так будет понятнее - AlexBi(07.07.2025 08:44)
- Кстати, меня несколько напрягают умолчания в if, где логическая операция отрицания (!) применяется к переменной, имеющей тип указателя. Я не настолько знаю язык, чтобы спрогнозировать, а не заменит ли
компилятор обращение к переменной указателя со значением NULL на
обращение к какой-то "левой" переменной, имеющей такое же значение
NULL? Вам ведь уже предлагали расписать эту операцию явным образом,
без умолчаний по автоматическому преобразованию типов данных. - reZident(06.07.2025 23:48)
- Доступ к элеентам разной размерности в невыровненной структуре
может приносить чудные чудеса. Например, запись в байтовую num при
нативной 32-разрядной системе портить 2-3 байта соседних
элементов-указателей. - reZident(06.07.2025 23:11)
- для начала можно в map-файле поискать адрес массива для каждого
случая - Vit(06.07.2025 23:11)
- а можно в занулении массива поставить просто нолик? - Vit(06.07.2025 22:00)
- Пойдем простым логическим путем, с отделением мух и котлет. il-2(568 знак., 06.07.2025 06:57)
- Еще бы знать, где этот tasks определен и зачем его искать в цикле
постоянно никнeйм(274 знак., 04.07.2025 16:13,
)
- Должно работать. Попробуйте: а) разделить объявление переменной
timer_task_t *t и присвоение; б) убрать static из timer_task_t*
get_tmr(uint8_t num) - 3m(04.07.2025 15:36)
- Возможно это тот случай, когда имеет смысл посмотреть ассемблер,
т.е. что там компилятор сделал. В первую очередь посмотреть начало
TMR2_GLOBAL_IRQHandler Можно его увидеть? - AlexBi(04.07.2025 08:26)
- похоже запись в tasks[i].timer только в этом же обработчике. а при
нуле в на входе и делать нихрена не нужно - Vit(04.07.2025 00:55)
- Я понимаю, что NULL это по сути 0, но всё равно не нравится условие
if (!t). Лучше писать if (t != NULL). Также надо проверить размер
стека в стартапе, вдруг реально не хватает, тем более, что static
помогает. - FDA(03.07.2025 23:39)
- Когда переменная объявлена static , то память под нее выделяется в
сегменте .data . qwerty__(132 знак., 03.07.2025 23:02,
)
- Я конечно не программист, но у меня вызвает сомнения вот такая
конструкция sizeof(tasks)/sizeof(tasks[0]) . Возможно результат
целочисленного деления равен нулю и поэтому функция всегда
возращает NULL. Компилятор просчитывает этот момент и не видит
необходимости вставлять вызов функции в обработчик прерывания. - reZident(03.07.2025 22:58)
- Вот тут как-то так получилось. В кубе обнаружил, что ежели вход
аналоговый, то на него можно посадить и АЦП и компаратор
одновременно. Это логично. А в референсе мануале про это не нашёл
ничего. Аглицкого не знаю, перевожу со словарём. Может пропустил
чего? Хочется какого-то подтверждения, чтобы прямо словами. - Бapбoc(27.06.2025 23:59, MCU, полностью)
- Вот тута прямо пишут, что можно одну ногу подключить и к ADC и к
компаратору. Но предупреждают, что зарядка емкости УВХ может
вызвать срань на выходе компаратора. LightElf(853 знак., 30.06.2025 19:31, ссылка, ссылка)
- не пригодится? Ralex(1 знак., 30.06.2025 12:26, картинка)
- Правильно будет не "в кубе", а "на Кубе", потому что остров. - SciFi(28.06.2025 09:59)
- В рефмануале специально на этот случай :)) картинки есть. По ним
видно что аналоговые сигналы приходят прямиком на ногу, более того,
после триггера Шмитта на входе тоже никаких переключателей нет.
Поэтому этот цифровой сигнал в любом режиме можно прочитать через
регистр IDR, а также, выбрав альт. функцию, подать на вход одного
из периферийных устройств. - ЫЫyкпy(28.06.2025 06:26)
- Не по теме МК... POV(141 знак., 21.07.2005 13:20,
, MCU, полностью)
- Помню такое. Инклинометром кличут. Когда у меня висело мое резюме
на hh.ru, ко мне звонил один ненормальный из "тех" - кто осваивает
актуальные темы. В тот год в связи с разгерметизацией емкости на
нефтебазе (не помню - где это было) актуальной была тема контроля
за этими емкостями. ТЗ, с которым мне любезно дали ознакомиться
явно писал сумасшедший. Предполагалось обвешивать стенки емкости
инклинометрами с точностью 0.1!!! градуса. Без всяких проводов,
ессно. Не помню точно il-2(140 знак., 08.05.2025 14:59)
- Красну ягоду рвали вместе... А чегой-то все как космополиты
безродные раскрашены? - Kpoк(07.05.2025 23:07)
- Ответ: Акселерометр скорее всего подойдет, например, MMA1260D, MMA1270D Freescale(94 знак., 22.07.2005 15:53,
)
- Вот заврался - я ошибся с рассчетом, погрешность нужна 1,5 градуса, а не 0,1. - POV(22.07.2005 09:34,
)
- я так понял нужен электронный гироскоп? LordN(151 знак., 21.07.2005 23:34,
)
- Это вполне стандартные изделия --> - AVR(21.07.2005 21:44,
, ссылка)
- несколько контактных трубок со ртутью под известным углом ... - nestandart(21.07.2005 16:17,
)
- Можно приспособить encoder 12-bit - Vit(21.07.2005 16:08,
, ссылка)
- а если железный грузик на "нитке" над катушкой, или светодиод(зеркальце) над матрицей (например из опт. мыши)? yes(69 знак., 21.07.2005 15:15,
)
- Может, 3х-осевой акселерометр подойдет? У АД он в пререлизе - Алексей Мусин(21.07.2005 15:04,
, ссылка)
- Полупроводниковый датчик давления направить "вверх" и залить в капилляр воды или ртути. - General(21.07.2005 13:31,
)
- Попал я как кур во щи. Есть платка. Стоял там stm32f103. Я впаял
apm32f103c8. Если прошить - все работает. Скинул питание, подал -
не запускается. Запускается, только если палец приложить в районе
кварца и пинцетом ресет коротнуть. Снова работает до скидывания
питания. Думал кварц и обвязка. Менял - не помогло. Более того -
запустил от внутреннего. Вся картина точно такая-же. Питание,
палец, ресет. Говорят, если впаять стм - все равботает. В общем
чертовщина. Питание на vesago(135 знак., 18.06.2025 09:20, MCU, полностью)
- Посоветуйте библиотеку для генерации звуков на embedded linux
платформе(Allwinner T113-S3). Купился было по красивому описанию на
soundpipe, но документирован крайне скудно, примеры есть, но
полного представления о том, что и как, тоже не дают. Пытался от
deepseek получить вменяемую подсказку, но увы .. - Rainman62(14.06.2025 11:19, MCU, полностью)
- Подскажите, можно ли используя порт ввода на STM32 чисто аппаратно
защелкнуть одиночный импульс и после перезагрузки прочитать, что
был импульс? - Make_Pic(10.06.2025 08:28, MCU, полностью)
- А если такой вариант: при срабатывании WDT вызывается прерывание,
обработчик которого записывает событие и потом вызывает программный
сброс? - Make_Pic(12.06.2025 08:18)
- А какова для тебя приоритетность причин перезапуска? Например, 1)
авария питания, 2) авария внешней периферии/аппаратуры, 3)
зависание программы. В принципе во всех трех случаях можно делать
перезапуск устройства, выключая его питание. У нас именно так
работает внешняя схема WDT - выключает питание всего устройства на
время, достаточное для разряда всех конденсаторов во вторичном
питании. А м/с супервизора, формирующая сигнал RESET нужна в
основном лишь, чтобы reZident(173 знак., 10.06.2025 15:31)
- Вроде бы на некоторых stm32 есть регистры BKP, которые не
сбрасываются. Можно зарядить DMA, чтобы по импульсу туда что-то
записывало. - SciFi(10.06.2025 08:32)
- Кому-нибудь попадалась документация на чип Mstar MSB2122? Реально
для него написать свою прошивку? - AlexG(04.06.2025 06:04, MCU)
- Вопрос по CH32V003. reZident(509 знак., 28.02.2025 20:35, MCU, полностью)
- хорошая вещ, я на нем сделал несколько проектировщиков. написал
компоненты klen(661 знак., 01.03.2025 16:51)
- ср32v003 10р штука.... штеуд бъется в предсмертных конвульсиях, так
скоро дело дойдет до Куртки и Лизочки klen(1 знак., 03.03.2025 13:29, ссылка)
- серия - ch32x035 интересная, ядро даже лучше чем v203 но 48МГц и
только HSI, память почти у всех 62K/20K, уже платка пришла, чипы
идут, есть - qsop28 - Zikon(01.03.2025 18:19)
- таки да! забыл сказать, думаю важно стратегически - серия 003
состоит из одной микросхемы 003, ядро V2A - не имеет умножителя
(rv32ec), это важно, серия 00x (002,004,005,007 007M)- работа над
ошибками, ядро V2С добавили умножитель (rv32emc) и добавили озу минимум в 2 раза. сейчас не рекомендую 003. я бы
лучше 00X принял если изделие не мега-гига-турбо-серийное что бы
30р копеек сэкономить, разработка и переделывание дороже. klen(372 знак., 03.03.2025 13:31, ссылка, картинка)
- Вот здесь программки есть которыми пользуюсь и доки только
разбираемся, на github-е очень много разных шаблонов можно найти.
Многие используют PlatformIO для VSCode Программатор WCH-LinkE
програмка к нему тоже есть и через MRS можно Zikon(7 знак., 01.03.2025 08:19, ссылка)
- В своё время была делема о двух кнопках на минималках, победил
энкодер с "кнопкой" . О чём не жалею, удобно. - enc(28.02.2025 21:08)
- Для загрузки ПО достаточно одного вывода, он там типа SWDIO, и
землю. См. CH32V003nano. Nikolay_Po(281 знак., 28.02.2025 20:53, ссылка)
- WCH-LinkE, 1 провод - Single Wire Debug. - Гyдвин(28.02.2025 20:51)
- У CH32V003 отладка и загрузка ПО по одному проводу идет что ли? О.о reZident(2 знак., 28.02.2025 20:48, ссылка, картинка)
- Ну да. Кроме земли, больше ничего и не надо, если у чипа своё
питание есть. - Nikolay_Po(28.02.2025 20:54)
- Угу. Мне чтобы в схеме (в готовом устройстве) потом ПО грузить. - reZident(28.02.2025 21:03)
- Там в 003 у затейников китайцев чудесатые чудеса встречаются. Есть
загрузчик, но в малоногих чипах нет ноги для активизации - надо
вызывать из своего кода. Есть SPI, но отсутствует нога СLC ;) Если
чО - пытал 8-лапые 003. Ну и таой же "достойный" прародитель
периферии - STM32, етить... - Гyдвин(28.02.2025 21:29)
- АЦП у них можно применять? Мне один НЧ сигнал оцифровать нужно.
Типа аналогового компаратора с установленными пользователем порогом
и временем реагирования на срабатывание. - reZident(28.02.2025 21:33)
- вот один из вариантов использования ch32v003 пример как раз с АЦП Zikon(7 знак., 01.03.2025 08:10, ссылка)
- Меня устроил. Во, даже "техдокументация" осталась ;) Замерял
напряжение свинцового аккумулятора и оценивал сопротивление
контакта перед подачей сварного импульса (чтобы не было бабаха с
искрами). Выставил кнопкой минимальную длину импульса, убедился,
что многоцветный LED это подтверждает, оценил надежность контакта
электрода, бибикнул и после паузы....... TC4422 питал, кстати,/
специализированной повышайкой 16В, стабилизатор 5В с развязкой
диодом и буферной емкостью. Гyдвин(440 знак., 28.02.2025 22:23, картинка)
- Всем добрый день. Понимаю, что вопрос возможно покажется
расплывчатый, но всё же попытаю удачу. Программирую контроллер
C167, он опрашивает датчик скорости и посылает значения во внешний
контроллер по CAN по удалённому запросу. Вращения идёт +- с
одинаковой скоростью, но когда смотрю график считанной скорости, то
в "ускорении"(первой разности), которое должно быть постоянна и
равно примерно 0, вижу выбросы, который появляются с частотой can
запроса. Пытался менять приоритеты Lem(981 знак., 05.05.2025 03:36, MCU, полностью)
- И? Ни одна версия не прокатила? Проект закрыт? Передан другому? ;) - VLLV(13.05.2025 09:39)
- А, нет. Извините. Параллельно просто ещё другими вещами занимаюсь.
А так документацию смотрю, что можно сделать с атомарностью.
Пытаюсь понять, как применять макрос _atomic_. Вроде не написано,
что есть какие-то ограничения, а работает только для присваивания и
сложения. Если попытаться обернуть более сложную процедуру, то
выдаёт ошибку. А так пока больше идей нет. Ещё смотрю про настройку
CAN. Я гуглил похожую проблемы, большинство вариантов про другие
контроллеры конечно, Lem(164 знак., 14.05.2025 20:37)
- Зачет не получен, студент примеряет сапоги :) - Cкpипaч(13.05.2025 11:56)
- Нужно считать ускорение на стороне контроллера и передавать в том
же сообщении CAN. Тогда тайминг доставки сообщения не будет влиять. - VLLV_(05.05.2025 21:21,
)
- Спасибо за ответ. Прошу прощение, что внёс путаницу и тем самым
просто зря потратил ваше время. Я на ускорение смотрю, так как на
нём хорошо видны выбросы. А так внешний контроллер у меня именно
что скорость запрашивает - Lem(05.05.2025 21:47)
- А ускорение где смотрите? На внешнем контроллере? Ну так и
передавайте ему ускорение, вычисленное в самом вашем МК по чистым
данным. Nikolay_Po(477 знак., 05.05.2025 21:54)
- Нет. Я беру данные из can сообщения на выходе моего контроллера. С
внешнего контроллера идёт кабель(кабель для can, раскиданных на
контакты db9), со стороны моего контроллера идёт ответная часть. Я
просто спаял разветвитель, чтобы контроллеры могли общаться и при
этом я мог бы с компа смотреть, что кому шлёт. Я просто через прогу
на компе смотрю, что шлёт мой контроллер во внешний, записываю эти
данные, матлаб скриптом переводу в "нормальные" данные и смотрю
первую Lem(238 знак., 06.05.2025 10:31)
- таймстеп события в сообщение добавить и не сношать мозг ) - Aleksey_75(06.05.2025 20:25)
- На время обновления данных кодом АЦП, вы защитили записываемые
данные от чтения в момент обновления? Nikolay_Po(248 знак., 06.05.2025 20:17)
- Нет, не защитил. Я чего то даже если честно не очень понял про что
речь. Разве такие конфликты не должны за счёт разных приоритетов
решаться? - Lem(07.05.2025 13:12)
- афтар чегото не договаривает! слабо представляю для каких целей АЦП
для тахосигнала - Aleksey_75(06.05.2025 20:28)
- Ну... Датчик выдает напряжение, непрерывное. Мне нужно его МК
обрабатывать, а для этого оцифровать. Извините если не очень
понятно говорю, просто боюсь сказать лишнюю информацию, которая
наоборот всех запутает... Как с ускорением получилось, на которое я
смотрю просто потому что по нему удобно идентифицировать выбросы - Lem(07.05.2025 02:07)
- вы сами сказали - тахогенератор... т.е. импульсы... побуду немножко
"провидцем" всетаки вы считаете RMS! когда пересечения нуля
выпадает на выборку, за счет "кривизны" ацп вы получите выбросы... - Aleksey_75(09.05.2025 18:23)
- Честно, мне стыдно, но я всё равно немного не понимаю про RMS и
импульсы... Возможно вы и правы, я до конца не вдавался в работу
датчика, я, скажет так, говорю, что вижу... Но наверное всё таки
это не самое важное. Насчёт пересечения нуля - тут то и проблема, у
меня скорость не пересекает ноль + как я говорил в других ответах,
значение с ацп - нормальное без выбросов - Lem(12.05.2025 00:25)
- Э-э-м... РМС, оно, каг-бы, должно интегрировать. Единичное значение
мало на что влияет. - mse homjak(09.05.2025 19:42)
- Ну так вы проверили, какие значения АЦП сохраняются в локальный
массив, в самом МК, во время работы CAN? Вам нужно выяснить,
действительно ли АЦП даёт другой результат при работе CAN? Nikolay_Po(318 знак., 07.05.2025 17:43)
- Да, проверял. Нет, с АЦП всё нормально, то есть идёт отправка по
запросу или по таймеру значения с АЦП - нормальные. А вот на выходе
контроллера, если брать значения именно из CAN сообщения, то там
появляются выбросы. Про % сложно сказать, так как смотрю
относительно нуля (ускорение), там большая часть значение примерно
0(так как в реальности там вращение с постоянной скоростью) с
небольшим шумом и периодические выбросы(которые и являются
проблемой) высотой +- 0,4 гр/с^2. Lem(329 знак., 07.05.2025 22:28)
- Ну так очень похоже на нарушение атомарности доступа. - Nikolay_Po(08.05.2025 08:18)
- Похоже на всех зверей, кроме зайца. Можно только гадать. Автор
перебдел и информации недостаточно. - VLLV_(08.05.2025 12:32,
)
- Извините, в чём я перебдел? Я вроде никакой информации не скрываю.
Говорю всё, что знаю или что могу быстро узнать. - Lem(08.05.2025 14:40)
- Можете быстро узнать, что 1)измененные значения и 2)отправленные
значения 3)полученные значения совпадают? Если да - то в чем
проблема? Если нет - то на каком этапе происходит искажение? - VLLV(08.05.2025 15:38)
- Я же вроде писал... Правда в ответе кому то другому. Понимаю, что
это большую путаницу создаёт. Я в одних и тех же условиях смотрю
данные: скорость чисто с МК(просто считанное значение с АЦП и
сохранённое в переменную) и данные которые МК шлёт наружу в ответ
на запрос(я прям от кабеля по которому мой и внешний МК общаются
сделал отвод и с компа смотрю всю линию). В данных, которые просто
с МК все нормально, сбоев нет. Если мой МК шлёт наружу данные
просто по таймеру, то в Lem(156 знак., 08.05.2025 18:05)
- Может, я плохо спрашиваю, или у вас катастрофически нет опыта
отладки. Еще раз, МК получил запрос. Что он делает дальше?
Запускает АЦП или берет последнее значение АЦП, которое постоянно
измеряется в цикле? Если всегда в ответ на запрос отдавать наружу
одну и ту же константу, она принимается верно? Если скорость не
измеряется постоянно, можно сделать, чтобы было так, и класть в
циклический буфер измеренные значения, чтобы посмотреть данные в
буфере в режиме отладки и VLLV(623 знак., 08.05.2025 19:15)
- А та, что есть - например, абсолютное значение ускорения - не
нужна. Если данные передаются в целочисленном виде, в чем его
смысл? - VLLV(08.05.2025 12:37)
- Давайте идти по шагам. Как Вы считаете ускорение? Разницу скоростей
соседних отсчетов делите на что? - VLLV_(06.05.2025 19:28,
)
- Сохрани несколько замеров датчика скорости в массив в памяти МК без
всяких кэнов. И посмотри что там, для начала. - Nikolay_Po(05.05.2025 11:31)
- Могу как телепат со стажем сказать, что суть проблемы осталась за
рамками озвученной информации. Ни МК, ни таинственный PEC к ней не
имеют отношение. Выражение "МК опрашивает датчик скорости" не
раскрыто. Фраза "использовать PEC, чтобы ещё меньше задействовать
такты МК" как бы намекает, что все плохо. Ждемс дополнительную
информацию. - il-2(05.05.2025 08:14)
- T736 Allwinner кто то имеет какую либо информацию? - caмyм(25.05.2025 13:54,
, MCU, полностью)
- Пытаюсь победить W5500 в режиме UDP. Как выяснилось эта падла
складывает заголовки UDPпакета вместе с данными. И при чтении в
несколько приемов возникают проблемы. Поможет ли мне функция от
производителя int32_t recvfrom(uint8_t sn, uint8_t * buf, uint16_t len, uint8_t * addr, uint16_t
*port). Умеет ли она отделять зерна от плевел? То есть, если
принято два пакета сольет ли она их в один. - IBAH(19.05.2025 15:44, MCU, полностью)
- PHY YT8512 никто не использовал? Он примечателен своей низкой ценой
(~40₽ в розницу) и наличием в КОМПЭЛе в большом количестве. Но
информации по нему крайне мало. Есть какие-нибудь особенности?
Может какие-то косяки? - FDA(12.12.2024 04:10, MCU, полностью)
- Примерно два года назад заменили KSZ8081 на YT8912H Michael75(401 знак., 12.12.2024 10:52)
- А можете куском схемы поделиться по подключению его к AT32? И что
меняли в инициализации драйвера? - FDA(12.12.2024 19:27)
- Вопрос: работает ли YT8512H с внешним тактовым генератором 50МГц?
Надо ли при этом подавать 50МГц одновременно и на вход генератора и на вход тактирования интерфейса RMII (вывод
TXC) как у RTL8201F от Realtek? После беглого просмотра datasheet
эти вопросы почему-то остались. P.S. м/с PHY от Micrel весьма
хорошие, ранее применяли KSZ8721BL и KSZ8081RND - проблем не было в
отличии от некоторых тайваньских. - reZident(12.12.2024 11:37 - 12:28)
- Мы используем генератор 25 МГц для тактирования CPU и PHY Michael75(1 знак., 12.12.2024 13:13, картинка)
- Из 25МГц не получается 48МГц для USB Host который у нас
используется. Поэтому применяем кварц 12МГц и кварцевый генератор
50МГц. - reZident(12.12.2024 14:24)
- Получается, если MCO2 как выход 50 МГц не использовать. Генератор
50 мег тактирует физуровень, после делитель на 74LVC1G80 делает 25
мег на проц. - Visitor(13.12.2024 17:50)
- to Visitor. Проверено в натуре на STM32F407VET6. Можно обойтись
одним генератором 50МГц без дополнительных делителей, подавая эту
частоту непосредственно на вход OSC_IN. Все нормально
делится/умножается унутре МК и работает с м/с PHY, которая
тактируется от этого же генератора. - reZident(14.05.2025 19:00)
- А зачем делить 50МГц до 25МГц? Я посмотрел, что для, например,
STM32F407 ограничение 26МГц применимо лишь для встроенного в МК
генератора, а так от внешнего осциллятора на вход OSC_IN допустимо подавать до 50МГц. И вообще есть даже вот
такая картинка с тактированием RMII и МК от единого внешнего источника 50МГц. P.S. коэффициенты для PLL при этом:
делитель M=25, множитель N=168, делитель P=2. Итого на выходе
PLLCLK получается частота 50МГц/25*168/2=168МГц reZident(16 знак., 16.12.2024 14:25, картинка, картинка)
Не совсем не понял, к чему это замечание, для чего и что такое MCO2? - reZident(13.12.2024 17:55)
- В таком случае вам нужно ставить кварц на 25 МГц для PHY - Michael75(12.12.2024 17:01)
- чёй-то? нафига 25мгц тащить при наличи тактовой с проца? - POV(12.12.2024 13:14)
- Вроде бы всё понятно там написано. Правда, потом на картинке
нарисовали кварц. Чтобы запутать, видимо. SciFi(2 знак., 12.12.2024 11:55, картинка, картинка)
- Кстати, из datasheet какой ревизии эта картинка? В datasheet 2019 и
2021 года такого рисунка с одновременным подключением 25МГц и 50МГц
нету. reZident(1 знак., 12.12.2024 12:13, картинка)
- А как-же "кварц не нужен"? Чем дальше - тем запутаннее :-) Но, как
сказал классик -
Русскогокитайца надо благодарить хотя бы за намерения. - il-2(12.12.2024 12:26)
- Не, дело в том, что если кварц нужен обязательно, то нафиг такая
м/с нужна. Экономия на ее стоимости сожрет стоимость
дополнительного кварца. А без внешнего генератора 50МГц в LPC1768
Ethernet использовать нельзя - баг кристалла, при пропадании
REF_CLK (из-за сбоя внутреннего генератора 25МГц в м/с PHY) у МК
внутренняя шина встает колом. - reZident(12.12.2024 12:32)
- Про это где-то в errata почитать можно? - AlexG(12.12.2024 13:36)
- Да, об этом сказано в User manual. См. ремарку. Мы сами с этим
столкнулись, когда заменили KSZ8721BL с осциллятором 50МГц на
LAN8720A с кварцем 25МГц. Оказалось, что LAN8720A не очень
устойчива к помехам и при воздействии ЭМИ у нее сбивается работа
генератора 25МГц. Соответственно пропадает выходной сигнал REF_CLK
для LPC1768, который в свою очередь стопорится из-за нарушения
тактирования внутренней шины. reZident(1 знак., 12.12.2024 14:18, картинка)
- Думаю, это не баг, а фича, и выражение "внутренняя шина колом"
вызывает вопросы. Использую STM32 в таком режиме. Если из-за
дефекта на плате 50 МГц не приходит на REF_CLK, то виснет вот на
этой строчке: "while ((ETH->DMABMR & ETH_DMABMR_SR) != 0) ; //
wait for core reset to complete" - SciFi(12.12.2024 13:53)
- Если вас интересует мнение человека, который в этих ваших PHY
ничего не понимает - т.е. абсолютно не предвзятого :-) il-2(306 знак., 12.12.2024 12:09)
- Вот такие коллизии и вводят в ступор. У Micrel-овских PHY всегда
применялся один источник тактирования - либо собственный генератор
с кварцем 25МГц, либо внешний кварцевый генератор 50МГц. А у этих
китайско-тайваньских изделий хрен поймешь, чего им надо? - reZident(12.12.2024 12:02)
- Я еще только на начальном пути ее использования, каких-то
особенностей или косяков не замечаю, использую ее самый базовый
функционал вместе с AT32F407 и LWIP, на столе все работает. - AlexBi(12.12.2024 09:04)