- Поясните где дырка в коде, почему компилятор так себя ведёт (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)
- Решил снаскоку DHCP в LWIP запустить. Результат неоднозначный... POV(1476 знак., 12.05.2025 21:10, MCU, полностью)
- [off] Eddy_Em(446 знак., 13.05.2025 21:59)
- прикрутил выхлоп DHCP... POV(3113 знак., 12.05.2025 23:02)
- "Видимо надо еще какие-то логи. А какие?" - на этот вопрос я уже
давал ответ - нужен анализ фактически переданных пакетов и ответов
на них. Wireshark - наше всё. - Nikolay_Po(12.05.2025 23:19)
- а куда его цеплять? с компа я лишь бродкаст могу видеть - POV(12.05.2025 23:33)
- Еще можно найти хаб и соединить устройство, роутер и комп через
него. AlexG(73 знак., 13.05.2025 03:04)
- Роутер не умеет захватыавть пакеты в память и сохранять их потом в
файлы .pcap, которые нативно открываются вайершарком? Как Keenetic?
Если нет, то бери D-Link DES-2108 или подобное, управляемый
коммутатор Эзернет. Обычно, управляемые умеют делать зеркалирование
трафика - например, пакеты от устройства направлять не только по
таблице коммутации к роутеру, но и дублировать на порт в сторону
ПК. И пакеты от роутера так же дублировать в сторону ПК, на
"зеркальный" порт. Nikolay_Po(279 знак., 12.05.2025 23:52)
- А роутер часом не подключен к PPP? Eddy_Em(873 знак., 12.05.2025 22:30)
- Если роутер поддерживает захват пакетов "pcap" Кинетики, например,
сделай захват пакетов и посмотри в Wireshark детально. Сам вайешарк
подсветит красным аномалии. Nikolay_Po(202 знак., 12.05.2025 22:05)
- Что значит лишает ? Роутер не может "лишить" -- нет способа
отобрать уже выданный адрес. beefdeadbeef(90 знак., 12.05.2025 21:26)
- Вопрос - Как ALL задает версию firmware, дату и другие изменяемые
текстовые данные в исходном тексте программы для индификации по
"шапке" кода? - Make_Pic(12.05.2025 13:36, MCU, полностью)
- Просто в начале main вставляю номер версии и дескриптор, которые
видны в утилитах. Остальное никому и нах не надо:) Посему ниже в
исходнике и пишем подробные комментарии для себя-родимого - с
номером версии и что изменилось/добавилось... Гyдвин(655 знак., 13.05.2025 17:35, картинка)
- Я написал утилиту, которая при сборке генерит файл version.h
следующего содержания: FDA(351 знак., 13.05.2025 15:45)
- у меня в самом начале текстов сейчас стоит - const uint8_t
NUMVERS[8] = "6.901 "; Меняю цифирьки, если осмысленная смена
произошла. - Лaгyнoв(12.05.2025 17:43)
- так IBAH(138 знак., 12.05.2025 14:49)
- Как-то вот так - il-2(1 знак., 12.05.2025 14:00, ссылка)
- У меня make генерит файлик version.inc, который при необходимости
можно включить куда надо. Eddy_Em(172 знак., 12.05.2025 13:57, ссылка, ссылка)
- В исходном тексте нет никаких "изменяемых данных", он не для этого. - SciFi(12.05.2025 13:40)
- Как объяснить контроллеру CH32V103 чтобы он отдал ножки от I2C
после использования? А то у меня периферия периодически подвешивает
SDA в ноль, хочу проверять этот кейс и подергать SCL, но после
инициализации I2C оно ноги обратно не отдает :-( Yft(28 знак., 13.05.2025 18:02, MCU, полностью)