Перейти к содержанию
    

Сергей Борщ

Модератор
  • Постов

    10 863
  • Зарегистрирован

  • Посещение

  • Победитель дней

    28

Весь контент Сергей Борщ


  1. Обернуть в структуру-шаблон, в котором CRC есть. И уже этот шаблон инстанцировать в union со всеми возможными вариантами кадров. Или этот SendMessage засунуть в структуру, а после него разместить резервирование места под CRC. Все равно вы CRC считаете пробегаясь указателем по сырым байтам. В конце этот указатель указывает в нужное место, куда класть CRC. А в структуре он нужен только для наглядности и резервирования места, все равно вы явно с этим полем никогда не работаете - так и отразить это в комментарии к полю структуры. Ничего более другого в голову не приходит.
  2. Я структурой описываю заголовок данных, от него наследую структуры данных. При приеме привожу приемный буфер к типу generic_data (фактически - голый заголовок), по нему определяю тип пакета и тогда уже привожу к типу конкретного пакета и обрабатываю соответствующим образом. А обрамление кадра (при необходимости) описываю шаблоном, параметром которого является структура данных. В этом же шаблоне размещаю и CRC (чисто для визуализации). По факту при передаче CRC считаю на лету и вставляю приведением указателя в конце расчета. Или прямым запихиванием в передатчик.
  3. Тут есть опасность. Если передача идет с использованием ПДП - вызвали функцию отправки, она зарядила ПДП и вернула управление. И пошли дальше по программе, либо выйдя из той функции, на стеке которой был отправляемый пакет (и место на стеке освобождено, ничего не мешает порушить оставшийся там не до конца отправленный пакет), либо продолжив исполнять функцию - но компилятор видит, что это место на стеке дальше в этой функции не используется и имеет полное право занять его чем-то другим.
  4. К кристаллу никто паяться и не собирается. Я же написал в первом сообщении - вместо него будет корпусной транзистор. Судя по всему это болезнь данных модулей и целый на разборке стоит как полмашины.
  5. Ну да, так и было сделано. Проволочка оторвалась от кристалла.
  6. Какой клей порекомендуете? Сколько ни брал всяких "проводящих" клеев на али - ни один ни капли проводимости не показал. Что тут странного? Очень часто такие попадаются.
  7. Блок управления топливным насосом. Плата керамическая, с серым площадкам были приварены выводы бескорпусного транзистора, один из них отломался от транзистора. Транзистор будет корпусной, но чем припаяться к этой площадке? Пробовал обычный оловянно-свинцовый припой с флюсом NC-559 - один вывод к крупной площадке припаялся, а второй к мелкой площадке - вообще никак, нет даже немеков на залуживание площадки. Какие еще могут быть варианты? Припой с серебром поможет?
  8. Проверил - та же фигня. К контуру платы привязывается, к User.comments и User.graphics - нет
  9. Можно запустить ПДП в цикличестком режиме и когда АЦП закончит преобразование первой половины буфера - в прерывании HTIF быстренько обработать его. ПДП в это время будет заполнять вторую половину буфера, которую обработать в прерывании TCIF пока ПДП заполняет первую. И так по кругу. Там не так много обработки, можно обрабатывать постоянно (без задействования EXTI).
  10. Там в настройках редактора печатных плат в разделе Editing options есть snap to graphics. Попробуйте поиграться с ним.
  11. У меня не было необходимости укладываться в спецификации ARINC 429, была задача просто читать и писать его на столе для подключения реальных приборов к игровому авиасимулятору. Я просто подавал сигнал через делители на порты (использовал пороги переключения портов), входной регистр порта при помощи ПДП складывал в память и дальше анализировал программно. Аналогично выходной сигнал формировался в массиве, массив при помощи ПДП складывался в выходной регистр порта и с пары ног при помощи сдвоенного ОУ получался выходной сигнал. На F072 получалось одновременно принимать 4 канала и передавать 8, для каждого канала можно было задать высокую (100К) или низкую (12.5К) скорость, процессор успевал еще общаться на 115200 по RS485 и через USB делать виртуальный COM-порт.
  12. Я бы взял готовый приемник RS485. Но можно завести и на два входа АЦП - скорости у него хватит с большим запасом, а дальше программно можно любую обработку делать.
  13. Погода и выкроенное свободное время позволили, наконец-то, завершить ремонт у соседки. Я просто оставлю это здесь. Абориген делал, не какой-то там "акупант"! Строители у нас тут тоже талантливые (тоже из аборигенов были). Справа - один кабель уходит к воротам, а второй сначала ныряет под брус, на котором закреплена обшивка фасада и потом по стене поднимается к прожектору над дверью. Из коробочки слева провод уходит в стену, в стене поднимается к выключателю в помещении, за которым спрятана распредкоробка. Все это время ворота стояли открытые нараспашку, кто-то сильный пытался их закрыть и теперь надо ремонтировать (или менять) бетонный столб, на котором был закреплен механизм привода ствоки. Соседка сказала, что она уже нашла, кто это будет делать.
  14. Там написано, что после подачи питания нужно как минимум 167 мсек подавать тактовый сигнал и после этого она готова к работе. Можно подавать и сколь угодно дольше.
  15. Внешний диаметр с достаточной точностью = внутренний + шаг резьбы.
  16. Можно считывать PHYIDR2 и проверять в нем поле VNDR_MDL. Как только совпадет с ожидаемым - считать, что он готов отвечать. Ну то есть напрягаться, вместо того, чтобы просто поспать.
  17. Но с завода он же работал довольно длительное время с таким же транзистором. Я его на столе от 10-15 В включал. Чисто для проверки - на какой частоте заведется. Сильно сомневался. Но с вашей подачи погуглил - действительно, увлажнители работают в районе 1.7 МГц. Вот это я лоханулся - сбили с толку УЗ ванны, которые на десятках килогерц работают. Значит, работает он с транзисторами от строчной развертки правильно. Почему же не "парит"? Хм, будем искать...
  18. Брат попросил починить. Схема простая, всего один транзистор 2SC3835. Был пробит переход база-эмиттер. Не задумываясь заказал новый (не с али), впаял. Заодно измерил емкость излучателя - ноль. Вытащил излучатель из силиконового крепления - оказалась оторвана пайка провода с небольшим кусочком напыления от пластины. Припаял обратно на бессвинцовый припой с серебром, собрал, включил - работает: пар, брызги во все стороны. Тут же выключил. Решил отправить брату фото, включил - снова брызги, быстро сфотографировал, выключил. Подошел сынишка, хотел показать ему, включил - не работает. Разобрал - точно такой же пробой перехода база-эмиттер, суммарно схема проработала не более 5 секунд. Заказывать еще один транзистор чтобы сжечь как-то не хотелось (около 5 евро/штука), полез в закрома, нашел несколько разных транзисторов в таком же корпусе от строчных разверток мониторов с ЭЛТ. Вроде и по току и по напряжению с запасом, впаял первый попавшийся - не работает. Ну то есть ни пара, ни брызг. Запитал от ЛБП пониженным напряжением, ткнулся осциллографом - генерация есть, но на примерно 1.6 МГц. Впаял другой транзистор - то же яйцо, только в профиль. Срисовал схему, коллега опознал в ней емкостную трехточку и предположил, что причина генерации на такой высокой частоте может быть вызвана слишком низким коэф. передачи тока у транзисторов от строчной развертки (5-15 против 70-220 у оригинального). Впаял BD139 (предварительно измерив коэф. передачи - около 160) - все равно генерация на 1.6 МГц. Все конденсаторы и резисторы промерил, номиналы соответствуют. Я в этих трехточках как-то не силен, попробовал запустить симуляцию в кикаде - не получается, выдает ошибку "TRAN: Timestep too small; time = 3,10635e-08, timestep = 2,5e-21: trouble with node "probe_int_net-_vt1-e__l2_1" run simulation(s) aborted". На всякий случай выкладываю проект, может кто подскажет, что я делаю не так. С5 - излучатель, изменением R4 в пределах 240 Ом...5.1 кОм регулируется интенсивность пара, R5 - подстроечный 10 кОм последовательно с постоянным 3.9 кОм, суммарно на моем экземпляре примерно 10 кОм выставлено, L2 - 5 витков диаметром ~5 мм провода ~0.2 мм без сердечника (номинал в схему вставил с потолка). Питание схемы - 50 В с трансформатора через диодный мост (без сглаживающего электролита). Основной вопрос - что можно в этой схеме подкрутить, чтобы заставить ее работать как надо с имеющимися под рукой транзисторами, например с 2SC5802? Да и вообще комментарии по поводу схемы было бы интересно услышать. humidifier.zip
  19. Мне кажется, это немножно перебор:
  20. Галогеновым светильником. Уличным светильником-прожектором с лампой накаливания.
  21. Буквально сегодня ночью собирал очередную плату F107 + LAN8720, симптомы были те же. Оказалось замыкание под LAN8720 между TXEN и TXD0. Сам LAN8720 при этом светил желтым и мигал зеленым светодиодом при втыкании кабеля. Так что со стороны проца может быть все, что угодно.
  22. Может отладчик при запуске отладки прописывает какие-то регистры?
  23. uint16_t Data; uint16_t Scale = 0.7 * (1 << 16); uint16_t Result = (Data * Scale) >> 16; Для 8-битного контроллера uint8_t и сдвиг на 8
×
×
  • Создать...