-
Постов
198 -
Зарегистрирован
-
Посещение
Весь контент volodya_t
-
Спасибо за советы Всем. При детальном изучении сигнала вых.напряжения после АЦП выявилось малое значение пульсации в цифровой форме в абсолютном значении (пульсация терялась на остальном фоне). Причина - требования широкого диапазона регулирования вых.напряжения(ТЗ). Решили проблему дополненительным каналом с выделенной и отфильтрованной пульсацией 300 Гц, по нему корректируется задание PWM.
-
Спасибо за советы. Вариант с контролем выпрямленного напряжения кажется интересным. Буду пробовать. По коэффициентам запаса проверю(прое... пропустил - аппаратная часть не моя).
-
Советы хорошие, но аппаратные доработки воспринимаются "в штыки". Продолжаю поиск програмных решений.
-
Конвертор AC-DC. Уменьшение пульсаций.
volodya_t опубликовал тема в В помощь начинающему
Доброго времени суток. Разрабатывается преобразователь 380В АС - 12В(250 А) DC. Выпрямитель -> мостовой инвертор (25 кГц ШИМ) -> трансформатор ВЧ -> выпрямитель диодный -> LC фильтр -> нагрузка(активная). Система работает под управлением STM32F401 84MHz. ПИД регулятор программный по току и напряжению. Контур ПИД тока (Задание - измеренное ->ПИД->PWM), задание тока с учетом допустимого напряжения на выходе (Utask - Uout->(PID)->I_task). Стабилизация , ограничение мощности работает. Суть проблемы - ЗАКАЗЧИК хочет пульсации на выходе 1%. А получается 3(2.5)% наилучшее для сетевой пульсации 300 Гц(от 3-фазного выпрямителя на входе). Очевидное решение - большая емкость после 3 фазного выпрямителя пока "с гневом отметается". Просьба подсказать/направить способ уменьшить пульсации программным методом. Регулятор какой хитрый или чего похожего. Может статью какую по теме. -
ANSELC по умолчанию аналоговый. Может отсюда проблемы?
-
Запрограммировать PIC PIC32MZ
volodya_t ответил Gorby тема в MCS51, AVR, PIC, STM8, 8bit
Программировать можно PICKIT3(4) ICD3(4). Китайский клоно PICKIT3 почти даром , в сети есть схемы и прошивки для самостоятельной сборки. -
Набор для разработки на ARM
volodya_t ответил aBoomest тема в ARM, 32bit
STM32F103RE(72MHz)&STM32F415ZG(168MHZ) среда AC6 SW4STM32 (на базе Eclipse) ST-Link 25-35% медленее J-LINK(V7) из личного субъективного. Но на процесс отладки мало влияет. Сильно заметно при пошаговом выполнении, и inline функциях. Но в общем обе системы добротные. Падения не (пока) наблюдал. -
Вот не копал глубоко - при использовании мастера CubeMX + FreeRtos ПО советует использовать другой кроме SysTic таймер. "Явление открыл - причин не измышляю"(Ломоносов).
-
ПИД на mega8
volodya_t ответил Mikhail241 тема в MCS51, AVR, PIC, STM8, 8bit
Например "теория" или "просто" или "проще не бывает" ну или - "да поможет могучий Google" -
Помогите перепрограммировать Serial EEPROM
volodya_t ответил straighter тема в PIC
Смотрите даташит на Ваш контроллер и "Section 12. I/O Ports" DS61120. Регистр TRISx побитно R/W-1 последняя цифра - состояние по сигналу RESET. -
IGBT без обратного диода
volodya_t ответил IlCF тема в В помощь начинающему
Функция диода - защитная. Если ВЫ идеально развели плату (минимум расстояний от конденсаторов до транзисторов) , нагрузка чисто активная то может получиться. Однако реальная нагрузка содержит ненулевую (иногда сильно ненулевую) индуктивность. Токи при коммутации будут генерировать значительные коммутационные напряжения. При идеальном резонансе можно и добиться коммутации в бестоковую паузу. Однако учитывайте переходные процессы и (если есть) изменение параметров нагрузки. Примерно время протекания тока при снятии напряжения с дросселя можно оценить 3-5 L/R. В трехфазном мосте с двигателем оценочно при cos=0.8 соответственно 20% токи диодов. Диоды прийдется искать высокочастотные (определяющим будет время фронта-спада), расплагать возле выводов транзистора (на самих выводах). В общем шкурка вычинки не стооит. При включении Сразу становитесь на коллектор-эмитер(сток-исток) осциллографом и наблюдайте симпотичные картинки. Чем больше токи тем веселее картинки. Лично наблюдал взрывы мостов по подобным причинам. Удачи. -
Для программирования можно воспользоваться ISP через UART, SPI (см. документацию). Есть недорогие XDS100. Снять защиту невозможно (может кто более опытный и другое мнение имеет) - только стереть и писать заново. Если запрещены JTAG и ISP то для снятия защиты выпаивать и заменять на чистый. Удачи.
-
Тут скорее необходимо смотреть в программу. Лучше Вас в Вашей программе никто не разбирается (даже компилятор). Обратите внимание на предупреждения компилятора. И различие при включенной и выключенной оптимизации. Удачи! :rolleyes:
-
Так ангийским языком пишется - просмотрите CHIPINFO со списком доступных моделей(в инструкции написано). Чип компилятору не знаком. Попробуйте XC8 он близок к PICC18. Free версия без ограниченитй и оптимизации. Все инструкции надо начинать со слов "Ну ? Не заработало ?"
-
pic18f45k22 и TMR1
volodya_t ответил LLLLLLLLLL тема в PIC
Имеется ввиду порядок обращения - в 16-битном режиме чтение производится в порядке TMRxL-TMRxH? Запись в обратном порядке TMRxH-TMRxL. TMRxH - буфер, при записи в TMRxL обновляется TMRx 16бит целиком. При чтении - запрос от TMRxL считывает 16бит TMRx целиком старшей частью to TMRxH. При чтении записи в обратном порядке можно получить ерунду. Упс- опоздал. -
В наличии только 8.92 пример в прикрепленном файле. Меню Advanced breakpoint, или Breakpoint в зависимости от типа процессора, и отладчика.
-
Не для всех МК и отладчиков доступна, но возможность была,
-
По окончанию передачи FIFO свободен - о чем свидетельсьвует установленный TXIF. Во всех сериях Microchipa аналогично организовано (по крайней мере где я пробовал). Передатчик PIC32 имеет несколько вариантов настройки FIFO плюс DMA - посмотрите внимательно инструкцию (она на USART отдельным файлом идет) . Удачи !
-
UxTXIF - устанавливается если буфер TXREG пуст. Проверте (как было рекомендовано Ruslan1) флаги прерывания и разрешения прерывания. В примере указано - 1 - проверить разрешение прерывания от прердатчика при наличии UxTXIE == 1 проверить UxTXIF == 1 2 - при совпадении этих условий обработать прерывания. точка вызова прерывания передатчика и приемника общие - программа должна выяснять причину вызова. Еще раз рекомендую выложить Ваш обработчик для ознакомления (неудобно обсуждать сферического коня в вакууме - выскальзывает).
-
Для полноценного ответа желательно фрагменты кода видеть. По памяти - прерывание передатчика генерируется при готовности буфера передачи. При передаче последнего запрещают прерывание передачи, в обработчике UART (общем для приема и передачи) проверяются флаг прерывания и разрешение прерывания. void RxControl(void) { UINT8 tmp; if(INTGetEnable(INT_UxRX)) { if(INTGetFlag(INT_UxRX)) { while(UxSTAbits.URXDA) { tmp = UxRXREG; /* обработка принятого */ } INTClearFlag(INT_UxRX); } } } void TxControl(void) { if(INTGetEnable(INT_UxTX)) { if(INTGetFlag(INT_UxTX)) { while( !( UxSTAbits.UTXBF ) ) { UxTXREG = /*источник*/; if(/*конец посылки*/) { mDisableUxTX_INT(); break; } } INTClearFlag(INT_UxTX); } } } /*-----------------------------------------------------------*/ void vUxInterruptHandler( void ) { TxControl(); RxControl(); } Из рабочего кода.
-
По ногам корпуса совместимы. Но! В зависимости от серии на ноги вешаются различные дополнительные устройства , от серии к серии меняются регистры периферийных устройств, и набор устройств. То-есть в прошивке необходимо учитывать все эти нюансы. Необходимо сравнение мануалов конкретных серий. Из личного опыта - в устройстве последовательно менялись PIC16C74->PIC16F77->PIC16F877->PIC16F877A-PIC16F887 (поставщики предлагали дешевле - руководство радовалось ), при этом каждый раз корректировались прошивки в связи с особенностями серии (изменения незначительные - пара, тройка команд модификации регистров АЦП, компараторов и т.д.), а плата оставалась неизменной . В общем - если прошивка Ваша - сравнивайте даташит, меняйте чип, корректируйте прошивку, получайте удовольствие.
-
В принципе makefile это сценарий для утилиты make (или его аналогов) обычно в gcc/binutilites или рядом, или отдельно загружается meke утилита. Предполагает работу как автономно так и через ИДЕ (если есть поддержка) , почитайте в интернете много описано и написано. Фокус в том , что проект можно собрать как через эту утилиту, так и без нее средствами IDE , да хоть в ручную командной строкой. Если у Вас в пакете AVR32 GCC сборщик make есть - можно попробовать собрать , командой make -all (если мне склероз не изменяет, надо уточнить в и-нете). Но если в исходнике есть #include "какой-то_файл.h" то независимо от метода сборки он потребуется. Рекомендую разобраться с недостающими файлами. Если он был - то где-то его можно взять. Возможно его переименовали в новой версии Студии. Попробуйте закоментировать этот include и посмотреть какие возникнут ошибки - недостающие определения регистров, функций и т.д. , после чего найти их в хидерах для CPU из пакета AVR32 GCC. И заменить хидер, либо дописать #include. Сравните AVR32 port.c из студии, и из пакета FreeRtos, сравните версии RTOS. В IAR присутствует пакет со своим RTOS и IP стек. Однако это платный софт, как Вы правильно заметили. Если предполагается выход на рынок то, с возникновением вопросов о лицензии, могут быть и проблемы. IP стек из примеров FreeRtos это отдельный пакет, может использоваться и без РТОС. Как альтернатива - широко применяется Eclipse с make utilites либо своим сборщиком и GCC и плагином для отладки Вашего контроллера (если такой есть). Но это не решает проблемы исходника. Удачи!
-
Трудно сказать чего-то хорошего. Может хидеры (как device support пак у TMS320 from TI или ARM-GCC ) отдельно грузятся ? Где-то *.h файлы для ЦПУ должны быть. Может недоинсталировалось?
-
Уточните откуда был взят пример и порт FreeRtos, для какого компилятора. По ссылке первого сообщения предложен пример для ATmega А у Вас AVR32. На сколько я понял из комментария в FreeRTOSV8.0.0\FreeRTOS\Source\portable\GCC\AVR32_UC3\port.c (строка 82, 83)- это стандартные файлы для CPU , должны быть в директориях компилятора или IDE. Порт IAR не содержит таких ссылок. Может это банальность (не хочу обидеть не зная Вашего уровня знаний предмета) но для каждого компилятора свой порт и для одного CPU они могут быть не совместимы. Просто не знаю какие компиляторы в комплекте со студией идут. А port.c содержит именно процессоро- и компиляторозависимые функции . Посмотрите примеры именно для Вашего ЦПУ и компилятора. Удачи !
-
Может действительно мало кто работает, освоите данный CPU - будете уникальным специалистом . Вам компилятор сообщает - в port.c есть директива на включение некоторых файлов, не обнаруженных по указанным путям проекта и стандартного поиска. Посмотрите стандартные пути поиска компилятора, может необходимо его конкретно носом ткнуть в какую-то директорию (добавить в проект или makefile путь для поиска файлов , смотрите по докам). Я с этим CPU не встречался, но сходная ситуация была - SYS директория была своя для каждого ряда ЦП в линейке производителя и компилятору необходимо было в проекте указывать - где именно файлы искать . Посмотрите Директории самого компилятора, IDE.