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

volodya_t

Свой
  • Постов

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

  • Посещение

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


  1. Спасибо за советы Всем. При детальном изучении сигнала вых.напряжения после АЦП выявилось малое значение пульсации в цифровой форме в абсолютном значении (пульсация терялась на остальном фоне). Причина - требования широкого диапазона регулирования вых.напряжения(ТЗ). Решили проблему дополненительным каналом с выделенной и отфильтрованной пульсацией 300 Гц, по нему корректируется задание PWM.
  2. Спасибо за советы. Вариант с контролем выпрямленного напряжения кажется интересным. Буду пробовать. По коэффициентам запаса проверю(прое... пропустил - аппаратная часть не моя).
  3. Советы хорошие, но аппаратные доработки воспринимаются "в штыки". Продолжаю поиск програмных решений.
  4. Доброго времени суток. Разрабатывается преобразователь 380В АС - 12В(250 А) DC. Выпрямитель -> мостовой инвертор (25 кГц ШИМ) -> трансформатор ВЧ -> выпрямитель диодный -> LC фильтр -> нагрузка(активная). Система работает под управлением STM32F401 84MHz. ПИД регулятор программный по току и напряжению. Контур ПИД тока (Задание - измеренное ->ПИД->PWM), задание тока с учетом допустимого напряжения на выходе (Utask - Uout->(PID)->I_task). Стабилизация , ограничение мощности работает. Суть проблемы - ЗАКАЗЧИК хочет пульсации на выходе 1%. А получается 3(2.5)% наилучшее для сетевой пульсации 300 Гц(от 3-фазного выпрямителя на входе). Очевидное решение - большая емкость после 3 фазного выпрямителя пока "с гневом отметается". Просьба подсказать/направить способ уменьшить пульсации программным методом. Регулятор какой хитрый или чего похожего. Может статью какую по теме.
  5. ANSELC по умолчанию аналоговый. Может отсюда проблемы?
  6. Программировать можно PICKIT3(4) ICD3(4). Китайский клоно PICKIT3 почти даром , в сети есть схемы и прошивки для самостоятельной сборки.
  7. STM32F103RE(72MHz)&STM32F415ZG(168MHZ) среда AC6 SW4STM32 (на базе Eclipse) ST-Link 25-35% медленее J-LINK(V7) из личного субъективного. Но на процесс отладки мало влияет. Сильно заметно при пошаговом выполнении, и inline функциях. Но в общем обе системы добротные. Падения не (пока) наблюдал.
  8. Вот не копал глубоко - при использовании мастера CubeMX + FreeRtos ПО советует использовать другой кроме SysTic таймер. "Явление открыл - причин не измышляю"(Ломоносов).
  9. Например "теория" или "просто" или "проще не бывает" ну или - "да поможет могучий Google"
  10. Смотрите даташит на Ваш контроллер и "Section 12. I/O Ports" DS61120. Регистр TRISx побитно R/W-1 последняя цифра - состояние по сигналу RESET.
  11. Функция диода - защитная. Если ВЫ идеально развели плату (минимум расстояний от конденсаторов до транзисторов) , нагрузка чисто активная то может получиться. Однако реальная нагрузка содержит ненулевую (иногда сильно ненулевую) индуктивность. Токи при коммутации будут генерировать значительные коммутационные напряжения. При идеальном резонансе можно и добиться коммутации в бестоковую паузу. Однако учитывайте переходные процессы и (если есть) изменение параметров нагрузки. Примерно время протекания тока при снятии напряжения с дросселя можно оценить 3-5 L/R. В трехфазном мосте с двигателем оценочно при cos=0.8 соответственно 20% токи диодов. Диоды прийдется искать высокочастотные (определяющим будет время фронта-спада), расплагать возле выводов транзистора (на самих выводах). В общем шкурка вычинки не стооит. При включении Сразу становитесь на коллектор-эмитер(сток-исток) осциллографом и наблюдайте симпотичные картинки. Чем больше токи тем веселее картинки. Лично наблюдал взрывы мостов по подобным причинам. Удачи.
  12. Для программирования можно воспользоваться ISP через UART, SPI (см. документацию). Есть недорогие XDS100. Снять защиту невозможно (может кто более опытный и другое мнение имеет) - только стереть и писать заново. Если запрещены JTAG и ISP то для снятия защиты выпаивать и заменять на чистый. Удачи.
  13. Новая IDE от Microchip

    Тут скорее необходимо смотреть в программу. Лучше Вас в Вашей программе никто не разбирается (даже компилятор). Обратите внимание на предупреждения компилятора. И различие при включенной и выключенной оптимизации. Удачи! :rolleyes:
  14. Новая IDE от Microchip

    Так ангийским языком пишется - просмотрите CHIPINFO со списком доступных моделей(в инструкции написано). Чип компилятору не знаком. Попробуйте XC8 он близок к PICC18. Free версия без ограниченитй и оптимизации. Все инструкции надо начинать со слов "Ну ? Не заработало ?"
  15. pic18f45k22 и TMR1

    Имеется ввиду порядок обращения - в 16-битном режиме чтение производится в порядке TMRxL-TMRxH? Запись в обратном порядке TMRxH-TMRxL. TMRxH - буфер, при записи в TMRxL обновляется TMRx 16бит целиком. При чтении - запрос от TMRxL считывает 16бит TMRx целиком старшей частью to TMRxH. При чтении записи в обратном порядке можно получить ерунду. Упс- опоздал.
  16. Новая IDE от Microchip

    В наличии только 8.92 пример в прикрепленном файле. Меню Advanced breakpoint, или Breakpoint в зависимости от типа процессора, и отладчика.
  17. Новая IDE от Microchip

    Не для всех МК и отладчиков доступна, но возможность была,
  18. По окончанию передачи FIFO свободен - о чем свидетельсьвует установленный TXIF. Во всех сериях Microchipa аналогично организовано (по крайней мере где я пробовал). Передатчик PIC32 имеет несколько вариантов настройки FIFO плюс DMA - посмотрите внимательно инструкцию (она на USART отдельным файлом идет) . Удачи !
  19. UxTXIF - устанавливается если буфер TXREG пуст. Проверте (как было рекомендовано Ruslan1) флаги прерывания и разрешения прерывания. В примере указано - 1 - проверить разрешение прерывания от прердатчика при наличии UxTXIE == 1 проверить UxTXIF == 1 2 - при совпадении этих условий обработать прерывания. точка вызова прерывания передатчика и приемника общие - программа должна выяснять причину вызова. Еще раз рекомендую выложить Ваш обработчик для ознакомления (неудобно обсуждать сферического коня в вакууме - выскальзывает).
  20. Для полноценного ответа желательно фрагменты кода видеть. По памяти - прерывание передатчика генерируется при готовности буфера передачи. При передаче последнего запрещают прерывание передачи, в обработчике 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(); } Из рабочего кода.
  21. Замена pic16f870

    По ногам корпуса совместимы. Но! В зависимости от серии на ноги вешаются различные дополнительные устройства , от серии к серии меняются регистры периферийных устройств, и набор устройств. То-есть в прошивке необходимо учитывать все эти нюансы. Необходимо сравнение мануалов конкретных серий. Из личного опыта - в устройстве последовательно менялись PIC16C74->PIC16F77->PIC16F877->PIC16F877A-PIC16F887 (поставщики предлагали дешевле - руководство радовалось ), при этом каждый раз корректировались прошивки в связи с особенностями серии (изменения незначительные - пара, тройка команд модификации регистров АЦП, компараторов и т.д.), а плата оставалась неизменной . В общем - если прошивка Ваша - сравнивайте даташит, меняйте чип, корректируйте прошивку, получайте удовольствие.
  22. В принципе 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 и плагином для отладки Вашего контроллера (если такой есть). Но это не решает проблемы исходника. Удачи!
  23. Трудно сказать чего-то хорошего. Может хидеры (как device support пак у TMS320 from TI или ARM-GCC ) отдельно грузятся ? Где-то *.h файлы для ЦПУ должны быть. Может недоинсталировалось?
  24. Уточните откуда был взят пример и порт FreeRtos, для какого компилятора. По ссылке первого сообщения предложен пример для ATmega А у Вас AVR32. На сколько я понял из комментария в FreeRTOSV8.0.0\FreeRTOS\Source\portable\GCC\AVR32_UC3\port.c (строка 82, 83)- это стандартные файлы для CPU , должны быть в директориях компилятора или IDE. Порт IAR не содержит таких ссылок. Может это банальность (не хочу обидеть не зная Вашего уровня знаний предмета) но для каждого компилятора свой порт и для одного CPU они могут быть не совместимы. Просто не знаю какие компиляторы в комплекте со студией идут. А port.c содержит именно процессоро- и компиляторозависимые функции . Посмотрите примеры именно для Вашего ЦПУ и компилятора. Удачи !
  25. Может действительно мало кто работает, освоите данный CPU - будете уникальным специалистом . Вам компилятор сообщает - в port.c есть директива на включение некоторых файлов, не обнаруженных по указанным путям проекта и стандартного поиска. Посмотрите стандартные пути поиска компилятора, может необходимо его конкретно носом ткнуть в какую-то директорию (добавить в проект или makefile путь для поиска файлов , смотрите по докам). Я с этим CPU не встречался, но сходная ситуация была - SYS директория была своя для каждого ряда ЦП в линейке производителя и компилятору необходимо было в проекте указывать - где именно файлы искать . Посмотрите Директории самого компилятора, IDE.
×
×
  • Создать...