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

Arlleex

Свой
  • Постов

    6 265
  • Зарегистрирован

  • Посещение

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

    18

Весь контент Arlleex


  1. У вас и так и так не правильно, а то что оно и так и так работает - следствие из однородности имени массива и адрес его первого элемента. 1) memcpy(&(outgoing_arr[0].outgoing[0]), local_outgoing, 4); // копирование 4 байт из local_outgoing в outgoing[0] из outgoing_arr[0] 2) memcpy(&outgoing_arr[0].outgoing[0], local_outgoing, 4); // аналогично 1) 3) memcpy(outgoing_arr[0].outgoing, local_outgoing, 4); // аналогично 1) 4) memcpy(&outgoing_arr[0].outgoing, local_outgoing, 4); // аналогично 1), работать будет, но формальная запись не совсем верная (берем адрес массива, который по сути есть одно и то же) - но тут может вылететь warning на несоответствие типов указателей memcpy(&(outgoing_arr[0].outgoing[1]), local_outgoing, 3); // копирование 3 байт из local_outgoing в outgoing[1] из outgoing_arr[0] ...
  2. Доброй ночи. Интересует вопрос, почему в Keil uVision Cortex M4 (STM32F4) в режиме отладки по SWD (ST-Link) не заходит в прерывания в пошаговом режиме? Да не только даже в пошаговом. В режиме Step Over тоже, при этом в регистрах NVIC контроллера и в регистрах флагов прерываний самой периферии (SPI) вижу, что прерывание генерируется, в NVIC оно в состоянии Pending, но прерываний больше никаких нет, все разрешены, казалось бы, пожалуйста - бери на себя процессорное время да выполняйся, а нет, не хочет - причем так глюкованно ведет себя, что совсем не понятно. В режиме пошаговой отладки прерывания не вызываются НИКОГДА. В режиме Step Over они вызываются при вызове функции, в которой при записи регистра вызывается прерывание по завершению передачи. Я его ловлю когда делаю Step Over над этой функцией. Ну а если выполнить запись в регистр Single Step-ом, увидеть в NVIC что прерывание ушло в Pending (при этом в периферии тоже видно, что флажок установился на запрос прерывания), то стоит разместить чуть дальше (да хоть на следующей строчке) брэкпоинт, или выполнить до курсора - то прерывание выполняется. С чем связано такое поведение?
  3. Резистор 10к, выход первой КМОП - это выход одной из STM32 лапок в Push-pull, вход второй микросхемы - вход сброса второй STM32-ки. Сколько вольт на выходе не могу сказать пока что, там практически 0В (уровень лог. 0). Я сначала подумал что защитные диоды как-то влияют, однако вроде не логична такая точка зрения.
  4. Может есть обычное "название", чтоли, этому эффекту... В общем, имеются две микросхемы КМОП-технологии. Выход одной подключен ко входу другой. Но первая (слева) микросхема может быть обесточена по своей линии питания. При том, несмотря на подтягивающий кверху резистор, физически (ну то есть реально, протестировано) линия будет придавлена к земле. С чем это связано?
  5. Ну, всякое бывает :) Посмотрел я схемы драйверов на транзисторах, в принципе, все понятно, и я набросал схему (рисунок слева, см. ниже). Т.е. имеем входные 12В, через DC/DC преобразователь повышаем до 17В, чтобы подать на затвор верхнего n-канального полевого транзистора. Двухтактный каскад на биполярных транзисторах как раз образует потенциал в 17В на затворе. Но в нескольких попавшихся мне схемах, основанных на применении двухтактного каскада, коллектор нижнего транзистора в соединен с истоком полевого. Просимулировал в мультисиме, оба варианта работают одинаково. Я так понимаю, во второй схеме при открытии нижнего транзистора PNP на его эмиттере будет не все 17В, как на первой схеме, а всего лишь 5 (относительно коллектора). Но смысл?
  6. Herz, таким образом главное - это выдержать напряжение на затворе относительно истока не выше 12В?
  7. smalcom, нет таких параметров у транзистора (посмотрел у нескольких транзисторов). Есть Drain-to-Source Breakdown Voltage, но это максимальное напряжение сток-исток, т. е., в моем случае - фазное напряжение питания обмоток, но никак не напряжение на затворе :05:
  8. Добрый день! Есть задача управлять небольшим трехфазным PMSM двигателем (от HDD). На обмотки буду подавать 12В, управляющее напряжение - +5В. Схема примерно такая: Нижние ключи так и остаются, верхние же нужно подключать драйвером. Драйвер воротить не хочется, буду просто подавать 12 + 5 = 17В на затвор через биполярный транзистор. Ключ выбрал с учетом возможности управления логическим уровнем - IRLML2502. В общем-то, напряжение нужно выдерживать между затвором-истоком, которое в открытом состоянии будет равно 17 - 12 = 5В, т. е. как и у транзистора нижнего плеча. Вопрос в том, где в даташите смотреть максимально возможное напряжение относительно земли, подаваемое на затвор, ведь, как никак, 17В для IRLML уже не хорошо (наверное)? Благодарю за внимание!
  9. Baser, возможно Вы ошибаетесь, поскольку часто встречаются схемы инверторов, где помимо этих диодов (о происхождении которых я знаю) ставят еще внешние. Да и не шутки оставлять преобразователь напрямую подключенным к индуктивной нагрузке без какой-либо защиты от противо-ЭДС. В случае с одной фазой все просто - диод параллельно катушке, но здесь же такое не проделаешь.
  10. Добрый день, уважаемые форумчане! Подскажите, пожалуйста. С индуктивной нагрузкой все, вроде, ясно. Диоды ставят параллельно самой нагрузке в защиту от противоЭДС. Но почему в схемах силовых преобразователей для BLDC (ну, как пример) диоды ставят параллельно переходам С-И полевых транзисторов?
  11. Bulaev, я это знаю =) У меня немного другой был вопрос - почему столько различных схем включения - и ведь выполняют то они все функции push-pull, а транзисторы по-разному включить можно. Вот я и думаю, для чего это так, и в каких случаях надо делать так, этак или как-то еще =)
  12. Про КЗ через открытый канал база-эмиттер не понял, схем подобно приведенной миллион:
  13. В чем смысл различного включения транзисторов в комплементарной паре? Приведу несколько примеров, не вдаваясь в то, что транзисторы то полевые, то биполярные (встречал и у тех, и у тех подобные схемы). Нагрузка подключается к стокам транзисторов: Здесь уже к эмиттерам: У нижнего - сток, у верхнего - исток подключены к нагрузке: Аналогично предыдущей схеме, но транзисторы одинаковой структуры:
  14. Всем привет. В университете был курс электропривода, но в тонкости физических реализаций мы не входили, была чистая математика процессов. В связи с этим есть некоторые вопросы. У меня есть BLDC от HDD-накопителя. Информации по нему в интернете я не нашел, к сожалению. Из него торчит 4 провода, и, судя по всему, как пишут многие товарищи, внутри обмотки соединены звездой. Какое номинальное напряжение на него подавать-то? Схема включения силовых ключей стандартная: Переключать транзисторы нужно по такой схеме: Вроде понятно. А вот теперь, когда я хочу крутить двигатель с минимальной скоростью, мне нужно плавно вращать вектор магнитного поля. Т.е., насколько я понял, не железно переключать транзисторы из состояния в состояние, а делать плавный переход между ними ШИМом. А какой транзистор то ШИМировать, верхний или нижний, и почему? Ведь по идее будет вполне достаточно ШИМа одного плеча инвертора, чтобы подать на соответствующую обмотку синус с размахом питающего напряжения. Но в интернетах везде разделено ШИМ-управление верхними и нижними ключами. Назревает еще один вопрос: а если управление осуществляется ШИМированием всех 6 транзисторов, то как лучше организовать фазировку ШИМов - т.е., другими словами, к одному таймеру привязать три канала ШИМ нижних транзисторов, а на другой таймер повесить три канала для ШИМирования верхних; или другой вариант - использовать три таймера с двухканальными ШИМ-выходами, по таймеру на соответствующую пару транзисторов верхнего и нижнего плеч.
  15. Открыто, вроде бы, завтра посмотрю. Похоже точно, как Вы сказали =)
  16. Чудеса под отладчиком STM32

    Всем привет. Есть устройство на STM32 с датчиком температуры I2C. Все отладил, все замечательно работает, но до того момента, как я запущу исполнение кода под отладчиком. I2C модуль вместо 2 байт принимает три (третий 0xFF), причем в абсолютно несвязанные моменты времени. Чем по сути выполнение кода под отладчиком (Run, без пошагового) отличается от обычного?
  17. Косяк у Кейла

    Добрый вечер. Есть вопрос по Keil. Неоднократно встречаю в проекте, что Keil подсвечивает некоторые #define красным крестиком, при наведении пишет undefined sybol. Но проект собирается. Не только #define, кстати, но и некоторые функции. Думаю и вы неоднократно замечали. Это, вообще говоря, как? Почему проект собирается, ведь это фатальная ошибка при сборке?
  18. Всем привет. В даташите это такое падение указывают на переходе или максимально прикладываемое напряжение? Ведь по идее в даташите должно указываться и падение напряжения (~0,7В), однако я что-то беглым взглядом не нашел.
  19. Всем привет. Есть трехфазное силовое твердотельное реле серии 3SSR. У него 6 контактов: R, S, T по одну сторону корпуса, U, V, W – по другую. В интернете на схемах часто видно, что нагрузка подключается к U, V, W, а сам источник трехфазного питания – к R, S, T. А можно ли наоборот? Вот часто встречаемая схема: http://www.sibkip.ru/files/shemahtzd3.jpg, но я уже наоборот подключил. Благодарю за оказанную помощь!
  20. Кстати, нашел еще кое-что связанное с этим, метастабильностью называется. Подобный изврат с SPI - что-то типа один из методов борьбы с ним... http://geektimes.ru/post/254934/ - тут подробнее. Интересно, конечно, как в железе реализуется раздельное управление фронтами. Думаю, я еще вернусь к этому вопросу =)
  21. Herz, конкретика - лучшее, что может быть сейчас =) И зачем убирать задержку распространения? Без нее и сдвиговый регистр работать не будет.
  22. Я ищу в этом логику в поиске какого-то утаенного от меня скрытого смысла. Ну я думал в этом есть какой-то хитрый план, начиная от помехозащищенности и заканчивая универсализацией...
  23. Нет, не один и тот же. Вот берем любой режим. Пусть CPOL = 0, CPHA = 0. По переднему фронту CLK - защелка данных, по заднему - установка новых данных.
  24. SPI - вот, по разным фронтам CLK (синяя и красная линии) происходит так называемая "защелка" и "сдвиг". Но ведь D-триггер, входящий в состав регистра сдвига (основного рабочего органа SPI-автомата), по одному фронту "защелкивает", одновременно сдвигая данные... А SPI - не по одному, а по двум. Вот вопрос и в том, почему это так, да и наводит на мысль, что там не обычный сдвиговый регистр. Хотелось бы докопаться до истины.
  25. Собственно, почему там не обычные сдвиговые регистры, а по отдельным фронтам защелка, по отдельным - выдача на линию... Ведь, вроде бы, по одному фронту вообще все хорошо выходит...
×
×
  • Создать...