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

MPetrovich

Свой
  • Постов

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

  • Посещение

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


  1. Access Denied You don't have permission to access "http://www.nxp.com/docs/en/application-note/AN10404.pdf" on this server. Reference #18.a40d655f.1689943915.5923a3
  2. Reset_Handler не? Немудрено запутаться!
  3. Не проверял. Я потому и решил простую мигалку написать, чтобы понять жизнеспособен ли МК в принципе. Может подскажите как этот обработчик то вообще должен выглядеть и куда вставляться? В main.c?
  4. осуществляет "ИЛИ" регистра с числом после равенства и записывает результат в регистр Вы к тому, что сначала надо считать в буфер значение регистра, потом считать туда число... Ага, кажется дошло - из этого регистра нельзя считать в буфер. Верно?
  5. Hence the user flash reset vector should contain a jump instruction to the entry point of the user application code. так написано в User Manual. Что я неправильно перевёл? Нашёл. Но ни один не запустился.
  6. Я в KEIL не первую программу компилирую для разных МК и процов и ни разу не заморачивался "точкой входа". Что за серия такая утырочная! Если б не по работе нужда проверить, то и не пользовался бы этими LPC никогда!
  7. Но в первый раз написать код для STM32 никаких проблемм не вызвало. Примерно такой же и был - мигалка.... И что в обработчике сброса надо указать? Где он, кстати должен находиться, в Startap? ; Reset Handler EXPORT Reset_Handler Reset_Handler Это вот оно?
  8. Читал. И именно этот отрывок читал и перечитывал. Честно говоря, первый раз с таким сталкиваюсь. Для STM32 Startap всё делает сам, только частоты кварцев или ещё какие-то "железные" штуки надо подправлять. А здесь..."вектор сброса флэш-памяти пользователя должен содержать инструкцию перехода к точке входа кода пользовательского приложения"... откуда я знаю где у меня точка входа и какую соответственно инструкцию в какой вектор писать... Смотрел несколько примеров программ KEILa и там ничего подобного не видел. Если прерывания не используется, то про них и упоминания нет в коде.
  9. volatile функцию или какую-то переменную? А если на while заменить while(cnt <= val) /* Delay */ cnt++; всё равно оптимизатору не понравится? Но даже если оптимизатор выкинет этот цикл, всё равно на выходе должен быть высокочастотный меандр... Я в курсе что они задают режим загрузки. Только не знаю что выбрать то из предлагаемых вариантов загрузки. BOOT[1:0] = 11 selects internal flash memory. Вроде бы так должно быть, поскольку программа после сброса должна из FLASHa выполняться. Правильно я понимаю? А я где-то в коде читаю значения этих регистров? В какую ячейку и что надо записывать? A в файле Stsrtap.s разве не настраиваются стек и прерывания?
  10. Не понял. Счётчик считает от нуля до заданного значения. Что не так? Это для Вас естественно. Я посмотрел схему оценочной платы и там не нашел места, куда выводы BOOT[1:0] подключаются. А если надо подключать, то какую конфигурацию памяти выбирать? Вообще то я читал даташит и мануал. Вы лучше скажите в чём ошибка кода. Нормальная кроватка, проверенная неоднократно. Только позавчера в ней STM32 проверял - всё работает.
  11. Да, согласен. Имелось в виду: SCS = 0; А в остальном то как? У меня не оценочная плата, а голая м/сх в контактирующем устройстве (кроватке). Я по подключению хотел спросить - надо ли задействовать выводы BOOT[1:0] и CS0?
  12. Приветствую всех пользователей LPC2000 У меня первый опыт с этими МК в корпусе QFP-144. Изначально нужен был ШИМ. Написал программу в KEIL, всё скомпилировалось, залил во FLASH LPC через Philips Flash Utilit. Верификация проходит нормально, но после переключения Р0.14 из 0 в 1 и сброса ничего не происходит, на выводе Р0.7 ШИМа нет. Решил проверить работу порта, написал мигалку светодиодом на Р1.16 скомпилировал, залил... Сбрасываю - тишина. Что за ерунда то! Вот код: #include <LPC22xx.H> /* LPC21xx definitions */ void delay (unsigned int val) /* Delay function */ { unsigned int cnt; for (cnt = 0; cnt < val; cnt++); /* Delay */ } int main (void) { SCS |= 0; //GPIO port 0; 1 is accessed via APB addresses in a fashion //compatible with previous LCP2000 devices. IODIR1 |= (1<<16); // P1.16-output while (1) { IOSET1 |= 1<<16; /* Turn on LED */ //IOPIN1 |= 1<<16; delay(5000); /* Delay */ IOCLR1 |= (1<<16); /* Turn off LEDs */ //IOPIN1 &= ~(1<<16); delay(5000); } } файл .hex прикладываю. Буду очень благодарен за любые советы. led.hex
  13. Я уж понял))) Поначитался всяко-разного... Но тема интересная! Нашел вариант коммутации (векторный метод управления) в котором последовательно верхний ключ каждой фазы ШИМится синусом, а в это время нижние ключи двух остальных фаз открыты на землю. Почти то самое, что и в BLDC, только по переменному напряжению. Надо собраться с духом и написать код для этой последовательности. Таблицу синуса надо всего на четверть периода и, если взять 128 значений, то синус будет по 512-ти точкам. Частоту ШИМ можно 25,6 кГц использовать. Можно и половину - 12,8кГц, тогда вообще 64 значения синуса достаточно. Короче, осталось уложить в голове алгоритм, а программу написать - на час работы всего.)))
  14. И ещё вдогонку. В бездатчиковых BLDC-двигателях положение ротора для следующей коммутации отслеживается по переходу через ноль на одной незадействованной на каждом шаге обмотке. Наверное такой же принцип можно применить и в асинхронниках?
  15. Интересная тема какая! Я с асинхронниками не работал плотно никогда, но сейчас после покупки дачи похоже пришло время с ними познакомиться). Я писал программы для управления бездатчиковыми BLDC-двигателями для контроллеров STM32 и ATMega. Там ШИМом управляются только верхние ключи в фазах, а нижние просто открываются. Вопрос - можно ли использовать этот принцип для управления асинхронником? Немного подробнее разверну. Последовательность включения ключей в фазах А. В и С: (AH|BL),(AH|CL),(BH|CL),(BH|AL),(CH|AL),(CH|BL), т.е шесть коммутаций на оборот. При этом все ключи с индексом Н модулируются ШИМ-сигналом, а с индексом L не модулируются. При синусоидальной ШИМ возможно так же управлять ключами?
  16. Заказал два Ш-образных сердечника Е65/62/27 Р3, через неделю должны доставить. Пусть будет с запасом))) И мотать удобнее, чем на кольце.
  17. Ну да, это ж среднеквадратичный ток, а не пиковый, который я посчитал. Вы преподнесли мне очередной урок внимательности) Да куда ж я запихну столько меди то? Это надо сердечник Ш-образный - 55/25/28 к примеру. И зазор миллиметра 4... 400руб за 3шт с доставкой - столько я на диоды потратил. В Москве, конечно, раз в пять больше стоит.
  18. Покумекав, пришёл к умозаключению, что для дросселя в фильтре ключевой параметр - мощность, которую можно пропихнуть через сердечник без попадания сердечника в насыщение. А эта мощность определяется максимальным током через обмотку, который можно посчитать по формуле: Imax=SQR(Vэф*/(u0*uэф*L)), где Vэф - эф объём сердечника, uэф - его эф. проницаемость, L - индуктивность обмотки. Из формулы, кстати сказать, видно, что чем меньше uэф, тем больший ток можно гонять в обмотке без риска насыщения сердечника. Соответственно, можно посчитать необходимый объём сердечника для нужного тока: Vэф>Imax^2/(u0*uэф*L). Остаётся выбрать тип сердечника и по справочнику найти нужный габарит. Как вам такая метода? Теперь по обмотке. Фильтр инвертора пропускает первую гармонику (50Гц) спектра синусоидального ШИМ-сигнала и обрезает остальные. Поэтому идущая в нагрузку активная мощность будет определяться среднеквадратичным током 50Гц, который для моего случая 12А. Потери на тепло в фильтре также будут определятся этим током и активным сопротивлением провода обмотки. Ну, и для примера: обмотка с L=3.3mHn будет 275 витков на два кольца u=26 с размерами 40/24/14,5 длиной примерно 20,5м. провод 0,5мм. Сопротивление провода 1,64 Ом; мощности на нём выделится 236 Ватт. Ничего себе!!!
  19. Не спится и я решил пошуршать в интернете инфу про LC-фильтры для инверторов. Перво-наперво озадачился вопросом чем определяются указанные в даташите номиналы ёмкости и индуктивности. Про частоту среза писал выше - она получается с этими номиналами 1869Гц. Почему именно такая выбрана - непонятно. Набрёл на формулу, которая позволяет посчитать зависимость ёмкости и индуктивности нагрузки для выполнения условия исключения резонансных явлений на одной из высокочастотных гармонических составляющих: C=L/R^2. Сопротивление нагрузки для схемы из даташита думаю можно оценить исходя из сопротивления шунта (0,1 Ома), которое задаёт максимальный ток через мост (5А). Выходит сопротивление нагрузки будет 220*1,4/5=62 ома. тогда для L=3,3mHn C=8,6e-7=0,86uF. Это совсем не 2,2uF,как на схеме в даташите. А если попробовать задать ёмкость и посчитать индуктивность, то L=C*R^2=2,2uF * 62*62=8456,8uHn= 8,457mHn. Тоже не совпадает с даташитом. Вроде как получается, что частота среза фильтра должна быть изрядно ниже, чем у того, что выбран в даташите... Непонятки, однако С другой стороны, искажения (они же пульсации) в выходном сигнале после фильтра определяются коэффициентом гармоник входного сигнала и функцией передачи фильтра на каждой из гармоник. Я, таки, нарыл коэффициент гармоник синусоидального ШИМ-сигнала, он равен 51,5%. Для сравнения, меандр имеет Кг=48,3%. Причём, спектр синусоидального ШИМ кроме первой гармоники на 50Гц имеет "кусты" возле частот кратных частоте ШИМ. Т.е. весь "лишний"спектр находится очень далеко от основной частоты 50Гц и отфильтровать их ФНЧ вроде как не очень то и сложно. Остаётся вопрос куда денется вся "лишняя" мощность которая составляет половину спектра? Если я правильно понимаю, то это всё (кроме первой гармоники) реактивная мощность и она в тепло пойти не должна. Ну вот такие пока умозаключения от моих ночных изысканий. Как их прикрутить к расчёту фильтра я пока не сообразил. Надо наверное ещё пошуршать в сети для развития мыслИ)))
  20. Да? А сколько же? 200 конечно, лишний ноль прилип))). Да, корень забыл приписать. Но подсчитано с корнем)))
  21. Я тут прикинул резонансную частоту (частоту среза LC-фильтра): f=1/(2Пи*L*C). Получилось 1869 Герц, т.е. почти 2кГц. Зачем так высоко обрезано? Аж до четвёртой гармоники от 50Гц...
  22. Проницаемость померять - не проблема. Марка, скорее всего, смесь N51. Но это всё теперь пофиг, поскольку plain уже написал, что они на 65 кГц и надо аж 9шт...
  23. А кольцо дросселя групповой стабилизации не годится? От БП 500Вт можно два сложить. Правда мелковаты они по диаметру...
×
×
  • Создать...