kiv.apple

Members
  • Content count

    125
  • Joined

  • Last visited

Community Reputation

1 Обычный

About kiv.apple

  • Rank
    Осваивающийся

Электроника

  • Стаж в электронике
    Менее года

Recent Profile Visitors

1414 profile views
  1. Часть схемы ( пост #258 ). Есть большая вероятность, что неизвестная часть схемы с транзисторами - это для интерфейса J1850 и является идентичным или очень похожим на это (нижняя часть схемы):
  2. Ну я вижу, что именно в момент этого импульса срабатывает компаратор LM393, хотя он должен был сработать при другом значении напряжения.
  3. Угу, синфазны. И ему не хватает скорости, чтобы скомпенсировать это воздействие, потому что фронт импульса слишком короткий, верно?
  4. Я выше выкладывал фрагмент платы с ОУ. Вот полная плата (земля подсвечена): А вот датчик тока (вот для него и используется диф. усилитель): Кстати, мне тут другие люди подсказывают, что проблема может быть в слишком крутых фронтах импульсов. Посмотрел осциллографом - сигнал нарастает от 0 до 12В за 86 нс, а падает с 12 до 0В за 100 нс. А LM358 всего лишь на 1 МГц (единичное усиление). Может ли быть такое, что буфер просто не успевает адекватно реагировать на такое быстрое изменение тока нагрузки?
  5. Так ведь это же сигнальная линия, а не земля или VCC. В книге вроде написано про помехи по шине питания, а там всё чисто (да и в схеме, как и советуют, множество керамических конденсаторов, разве что земляной проводник тонковат). Или я опять неверно понимаю что-то? Если да, то мне нужно переделать плату, сделав земляной полигон как можно толще и поставить больше керамики? mail_robot RC-фильтр там стоит совсем не зря - на вход поступает ШИМ с микроконтроллера и таким образом превращается в аналоговый сигнал. Простейший ЦАП по сути дела. При этом пульсации напряжения на конденсаторе минимальны, если смотреть осциллографом. К тому же если отключить нагрузку от буфера (но оставить дифференциальный усилитель и силовую часть схемы, просто кинуть среднюю точку дифференциального усилителя на обычную землю), то иголочки исчезают.
  6. Тыкался осциллографом в ножки питания ОУ - там всё число и гладко. Зато вот осциллограмма выхода буфера: Голубой график - 12-вольтовые импульсы, жёлтый график - напряжение на выходе буфера (масштаб графиков разный, см. обозначения в левом верхнем углу).
  7. Ну... по ней можно определить, длину дорожек от конденсаторов на питании до микросхемы. От земли керамического конденсатора на питании C2 до земли ОУ - менее сантиметра. А вот плюсовой контакт питания достаточно длинный. Такое понятие как "земляная Мекка" мне не известно и с ходу нормально не гуглится. Можно узнать поподробнее?
  8. Ну земля то у всех схемы общая... Хотя, конечно, я просто могу что-то неверно понимать. Вот текущая разводка платы. Вход питания с левой стороны, дифференциальный усилитель находится на другой плате.
  9. Если отключить вход дифференциального усилителя от источника сигналов, то иголочки пропадают. Хотя вся силовая часть схемы продолжает работать как раньше.
  10. Дифференциальный усилитель на LM358, как ни странно, работает абсолютно адекватно (меня вполне устраивает его скорость реакции на изменение разности сигналов). Проблемы именно с буфером, который не может удержать нужное напряжение. Как я понимаю, мне нужно заменить только его на более скоростной? Можете подсказать насколько более скоростной нужен, на какие характеристики в даташите смотреть?
  11. У меня есть следующая схема: Как можно заметить, это дифференциальный усилитель, при этом средняя точка для него идёт с буфера на другом ОУ, который усиливает результат интегрирования ШИМ (ШИМ не меняется в ходе работы схемы). Так вот, пока входы дифференциального усилителя никуда не подключены, всё хорошо. На C1 стабильное напряжение с небольшими пульсациями. На выходе OP1 такое же, но с микроскопической ВЧ-помехой. Однако если на входы дифференциального усилителя подать реальный сигнал, то начинаются проблемы. Сигнал представляет собой короткие импульсы (несколько микросекунд) амплитудой порядка 12 вольт (около 12В вольт подаётся на оба входа дифференциального усилителя, мерится разность между ними). При этом каких-либо претензий к работе дифференциального усилителя нет. Проблемы начинаются с буфером OP1. При появлении коротких импульсов 12В, подключенных через резисторы 47кОм + 10кОм, начинаются искажения выходного сигнала (отклонения до 0.5-1В на время импульса, затем тут же нормализуется), которые, в итоге влияют и на выход дифференциального усилителя (ещё бы, средняя точка плавает). Насколько я понимаю, поскольку входное сопротивление OP2 очень велико, то можно рассматривать просто, что на выход OP1 подаётся 12В через сопротивление 57 кОм. В качестве обоих операционных усилителей используется LM358. Почему происходят такие искажения выходного сигнала буфера? Как их избежать? Proteus подобные проблемы не симулирует, они были выяснены уже после сборки схемы в реальности и тыканья в неё осциллографом.
  12. Низкоуровневая Работа С Usb

    А если мне она меня не устраивает по каким-то причинам (вполне техническим)? Кстати, проблемы уже все решил. Надо отправлять EP0 OUT в NAK при отправке последнего блока сообщения. Теперь буду реализовывать USB CDC.
  13. Низкоуровневая Работа С Usb

    Проблема была в том, что прерывание WKUP приходит всегда вне зависимости от состояния USB - просто по активности на линии. А обработка тонны прерываний WKUP всё стопорила. Решение - запретить WKUP в начале и разрешать только после SUSP. А после прихода WKUP опять запретить его. Также надо отметить, что адрес устанавливать надо после того, как ZLP в ответ на этот SETUP-запрос успешно ушёл (CTR для EP0 IN), не раньше. На это тоже напоролся. Сейчас уже успешно отдаю дескриптор устройства, но дескриптор конфигурации у меня уже не запрашивают. Вероятно, я как-то не правильно завершаю оптравку дескриптора конфигурации, сейчас с этим разбираюсь. Я работаю с USB на низком уровне не просто так. Я разрабатываю свою библиотеку для контроллеров (причём потенциально не только STM32, но и других, а также Linux-компьютеров) - https://github.com/K...ollerFramework.
  14. Пытаюсь разобраться с USB у STM32F103 на низком уровне (т.е. без сторонних библиотек) и столкнулся с проблемой. Мои действия: 1) У меня внешний кварц на 8 МГц. Запускаю PLL на 72 МГц (коэффициент умножения 9, делитель для USB 3). Разумеется, этот процесс состоит из нескольких этапов, однако в результате в регистре RCC->CFGR оказывается значение 0x001DC40A (что помимо прочего обозначает, что PLL успешно выбран как системный источник частоты). Работа USART и SysTick адекватна (частота точно верная). 2) Включаю тактирование USB. Убираю бит PWDN из USB->CNTR. Жду 1 микросекунду (по даташиту нужно для стабилизации источника опорного напряжения), пишу нули в CNTR, BTABLE и ISTR. Разрешаю прерывания USB_FS_WKUP и CAN1_RX0. Пишу в CNTR значение USB_CNTR_RESETM | USB_CNTR_SUSPM | USB_CNTR_WKUPM | USB_CNTR_CTRM. 3) На этом инициализация окончена. Далее приходит прерывание от USB. Причина, определённая из ISTR - RESET. Да, именно это и должно случиться, всё логично. Обнуляю соответствующий флаг прерывания. 4) Настраиваю нулевую конечную точку. В итоге в USB->EP0R оказывается значение 0x3220. По адресу USB_PMA_BASE + 0 оказывается значение 64 (TXADDR для EP0 == 64), по адресу USB_PMA_BASE + 8 оказывается значение 128 (RXADDR для EP0 == 128), по адресу USB_PMA_BASE + 12 оказывается значение 0x8400 (размер буфера приёма для EP0 - 64 байта). 5) Разрешаю работу USB - пишу в USB->DADDR значение 0x80. 6) Выхожу из прерывания. 7) Ожидаю, что мне придёт первый SETUP-пакет, о чём мне скажет прерывание с флагом CTR в регистре ISTR. А оно не приходит. Зато приходит куча прерываний по причине WKUP (я сбрасываю этот флаг, а оно снова приходит). Иногда приходит RESET (у хоста срабатывает таймаут назначения адреса устройству и он устраивает новый сброс), но после него опять куча WKUP. В конце-концов хост забивает на устройство и события прекращаются. Помимо WKUP ещё приходит ESOF. Моя теория: USB-модуль не запускается должным образом и не способен разобрать, что приходит по шине кроме RESET. Передача данных видится им как событие WKUP (которое по сути вызывается любой активностью на линии). Возможно, я забыл что-то инициализировать или же я что-то неправильно настроил и машину состояний USB клинит. В чём может быть проблема? Аппаратная часть исправна - прошивки с использованием готовых библиотек на этой плате работают нормально.
  15. Поставь второй трансформатор после первого и преобразуй 180 в 110. Иных вариантов нет, если нельзя модифицировать исходный трансформатор.