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

ELEKTROS

Участник
  • Постов

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

  • Посещение

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


  1. Модули используем 2MBI1400VXB-170E-50 (название немного поменялось щас парой букв, но впринципе тоже самое), драйвера к модулям же готовый, в модуле используется один транзистор и один диод (чоперов небыло подходящих на момент разработки). Номинал снаберов не помню, там сборка конденсатор-диод в одном корпусе. Осцилом смотрели на ключах со снабером и без - разницы не увидели, выбросов нету (может актив кламп. с шиной басбар дал эффект). Все опыты были только на двигателе под нагрузкой. По памяти в режиме ШИМ 1 кГц амплитуда тока в части фазы двигателя (через модули) была под 900 ампер (предел токоограничения), в режиме одноимпульсном ток примерно столько же был (частота в пять раз меньше только). Напряжение 900-1200 вольт.
  2. Драйвер транзистора штоли сделать не можете? Возмите готовый к соответствующему IGBT модулю. Что значит демфирующие цепочки, снаберы штоли? Мы их вообще поснимали , мощность привода 1300 кВт (трёхфазный SRM).
  3. Они дают в нагрузку библиотеку API функций(на сайте скачать можно даже), через них и работаю. Некоторые как устройство USB (чёрные) некоторые как COM порт (белые), может конечно от дров зависит, да это и без разницы, если работаешь через библиотеки ихнии. Если цена увелицилась сильно, то марафоновский лучше купить, там два CAN в одной коробке и стоит 6 рублей судя по сайту.
  4. Я использую вот такой, версия USB: http://www.slavna.ru/stran/ucc06.htm. Хотя он мне не нравиться, есть косяки в его работе. Можно наверное у китайцев глянуть подешевле.
  5. У меня есть своя секция, она с константами, обьявлена на PAGE0 во FLASHH, при трансляции в hex всё нормально, теперь переношу FLASHH на PAGE1 и всё, пишет такое же предупреждение, но она же не пустая, может нужно что то дополнительно прописать в командном файле для трансляции в hex c PAGE1? А APP_FLASH1 задал специально большой, чтобы покрыло все сектора FLASH, потому что используется А, B, D, E, H, и чтобы не писать несколько строк вообщем-то.
  6. Turnaev Sergey, если у меня линкер почти стандартный допустим: MEMORY { PAGE 0 : /* Program Memory */ /* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE1 for data allocation */ RAML0 : origin = 0x008000, length = 0x000800 /* on-chip RAM block L0 */ RAML1 : origin = 0x008800, length = 0x000400 /* on-chip RAM block L1 */ OTP : origin = 0x3D7800, length = 0x000400 /* on-chip OTP */ FLASHH : origin = 0x3D8000, length = 0x004000 /* on-chip FLASH */ FLASHG : origin = 0x3DC000, length = 0x004000 /* on-chip FLASH */ FLASHF : origin = 0x3E0000, length = 0x004000 /* on-chip FLASH */ FLASHE : origin = 0x3E4000, length = 0x004000 /* on-chip FLASH */ FLASHD : origin = 0x3E8000, length = 0x004000 /* on-chip FLASH */ FLASHC : origin = 0x3EC000, length = 0x004000 /* on-chip FLASH */ FLASHA : origin = 0x3F4000, length = 0x003F80 /* on-chip FLASH */ CSM_RSVD : origin = 0x3F7F80, length = 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */ BEGIN : origin = 0x3F7FF6, length = 0x000002 /* Part of FLASHA. Used for "boot to Flash" bootloader mode. */ CSM_PWL_P0 : origin = 0x3F7FF8, length = 0x000008 /* Part of FLASHA. CSM password locations in FLASHA */ FPUTABLES : origin = 0x3FD860, length = 0x0006A0 /* FPU Tables in Boot ROM */ IQTABLES : origin = 0x3FDF00, length = 0x000B50 /* IQ Math Tables in Boot ROM */ IQTABLES2 : origin = 0x3FEA50, length = 0x00008C /* IQ Math Tables in Boot ROM */ IQTABLES3 : origin = 0x3FEADC, length = 0x0000AA /* IQ Math Tables in Boot ROM */ ROM : origin = 0x3FF3B0, length = 0x000C10 /* Boot ROM */ RESET : origin = 0x3FFFC0, length = 0x000002 /* part of boot ROM */ VECTORS : origin = 0x3FFFC2, length = 0x00003E /* part of boot ROM */ PAGE 1 : /* Data Memory */ /* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE0 for program allocation */ /* Registers remain on PAGE1 */ BOOT_RSVD : origin = 0x000000, length = 0x000050 /* Part of M0, BOOT rom will use this for stack */ RAMM0 : origin = 0x000050, length = 0x0003B0 /* on-chip RAM block M0 */ RAMM1 : origin = 0x000400, length = 0x000400 /* on-chip RAM block M1 */ RAML2 : origin = 0x008C00, length = 0x000400 /* on-chip RAM block L2 */ RAML3 : origin = 0x009000, length = 0x001000 /* on-chip RAM block L3 */ RAML4 : origin = 0x00A000, length = 0x002000 /* on-chip RAM block L4 */ RAML5 : origin = 0x00C000, length = 0x002000 /* on-chip RAM block L5 */ RAML6 : origin = 0x00E000, length = 0x002000 /* on-chip RAM block L6 */ RAML7 : origin = 0x010000, length = 0x002000 /* on-chip RAM block L7 */ RAML8 : origin = 0x012000, length = 0x002000 /* on-chip RAM block L8 */ USB_RAM : origin = 0x040000, length = 0x000800 /* USB RAM */ FLASHB : origin = 0x3F0000, length = 0x004000 /* on-chip FLASH */ } SECTIONS { /* Allocate program areas: */ .cinit : > FLASHA, PAGE = 0 .pinit : > FLASHA, PAGE = 0 .text : > FLASHB, PAGE = 1 codestart : > BEGIN, PAGE = 0 ................................................................................ } Конфигурация командного файла для генерации hex: card.out --intel --image --map=card.mxp --order=MS --romwidth=16 --memwidth=16 --fill=0xFFFF ROMS { APP_FLASH1 : origin = 0x300000, length = 0x40000, files = { card_new.hex } } И при компиляции hex секция .text: warning: section card.out(.text) at "адрес секции" falls in unconfigured memory (skipped), т.е. секция пропущена, а если перенести FLASHB в PAGE0 или назначить секцию .text в разделе FLASH объявленном в PAGE0, то всё нормально компилисься без предупреждений при генерации hex. Сталкивались с таким?
  7. Ну так combobox как на первой картинке (Create flash image: Intel-HEX) выбираю и всё остальное пишеться автоматом. В частности в командная строка заполняется: "${CG_TOOL_HEX}" -i "${BuildArtifactFileName}" -o "${BuildArtifactFileBaseName}.hex" -order MS -romwidth 16 А в вашем cmd смотрю есть еще какие границы во flash использовать. Как вариант возможно используется где-то cmd по умолчанию и в нём эти границы прописаны не все (это подтвердило бы почему на некоторых проектах не сильно больших hex генерируется правильно у меня). Спасибо за наводку, теперь хоть есть направление куда копать.
  8. выяснил наконец-то, что hex генерируется неправильно, но почему понять не могу, там настроек то и нету для этого, чтобы что то было не так.
  9. AlexPlasma, нормальную первую схему привели, по ней и делайте (на ножку МК керамику я бы повесил еще), только не понятно что за резистор в цепи питания датчика (если это эквивалент сопротивления линии, то почему нету в цепи сигнала такого же). И почему желание чтобы срабатывание было 6-12 вольт, в данном случае датчик холла это пороговый элемент? Если нужна точность то лучше оптодатчики ставить, датчики хола по разному реагируют на переход (железо-ничего и ничего-железо), т.е. момент перехода на какие-то значения будет отличаться в одну или в другую сторону (может не критично), знаю это по использованию в качестве датчиков положения ротора в электрических машинах. Используем датчики типа OPB616 (666) инфракрасные. У вас если пыль конечно забивать шель будет, то не вариант, а если во взвешенном состоянии - нормально пробивает. Я бы платы вообще не заземлял (зло это, особенно если по земле пускают питание, на заводах так любят делать), а полностью гальванически отвязался от всего, соответственно питание должно быть везде своё.
  10. Ну от помех избавляться: пускайте токовые сигналы а не потенциальные, отпоразвязки и конденсаторы керамику. Да и вообще это слова, конкретную схему покажите.
  11. В общем тема не новая, но в реализации есть кое что интересное. Валялась у меня приборка VDO с десятки, думаю дай при колхожу туда подсветку, сначало мысль была поставить RGB, потом посмотрел во что это выходит и подумал дороговато для простого увлечения. В итоге стрелки подсветил красными цокольными светодиодами, на всё остальное поставил белые и красные smd светодиоды. Соответственно каждый канал управляется независимо от контроллера (поставил мегу8, которая была под рукой), в итоге получилось 12 каналов управления светодиодами (4-ре стрелки и по два цета на каждый прибор), также сделал пять входов (датчик скорости, датчик частоты вращения, сигнал габаритов, сигнал дальнего света и сигнал ручника для программирования настроек больше). Контроллер уместился на плате тахометра думаю понятно по колличеству проводов на ней :). Мыть платы было лень после всего, потому как внутренности всё равно никто не видит. Вот несколько фото плат уже в приборке: Снял пару видео, ссылки на туб ниже. Генератор для подачи импульсов собрал из ЛА7, деталей хватило только на один канал. Суть работы такая при превыщении какой то границы оборотов или скорости загорается красная подсветка соответствующего прибора (тахометр или скорость), а при превышении второго предела стрелка моргает (соответственно есть режим настройки в котором можно настроить эти пределы), чтобы небыло мерцания между цветами в точке перехода есть также настраиваемый гистерезис. Также притухание подсветки при включении габаритов, можно делать еще большее притухание при включении дальнего (но это не делал). Да вообще, раз есть контроллер можно наворотить что хочешь. https://www.youtube.com/watch?v=qHXTitiOtMc https://www.youtube.com/watch?v=WD7OHbD9bcY
  12. 450 Ватт(ну или сколько там получается номинальный режим) это далеко не мощная машина (если смотреть по терминологии советских книжек), а помоему относиться к машинам малой мощности. Наличие мозгов проверяли как, просто осмотром или всё разбирали и смотрели (бывают и в электрическую машину встраивают, так что и не увидишь пока не разберёшь)?
  13. Есть команда которая занимается разработкой электроприводов, каков бюджет, на каких условиях работать с вами (вы ИП, фирма или ...)? И конечно же нужна конкретика (номинальные и максимальные параметры)
  14. Вот два файла *.out и *.hex. Сгенерированные из одного проекта, но hex толи не так зашивается, толи неправильно сгенерирован. Кто проверит может соответствие. pack.zip
  15. У BLDC обмотка сосредоточенная вроде как, у PMSM распределённая (как у ассинхронника или синхронной классической машины).
  16. Поставте реле какое-нибудь недорогое и шунтирующий транзистор например, чтоб цепь рвать и замыкать не реле.
  17. Да простят меня за ссылки, вот здесь посмотрите, думаю для старта подойдёт: we.easyelectronics.ru/electro-and-pc/podklyuchenie-mikrokontrollera-k-lokalnoy-seti-rabotaem-s-enc28j60.html, хоть и не С2000 серия, но приделать можно. Тоже задался вопросом эзернета для С2000 серии, пока думаю что для старта применить wifi (есть возможность WizFi 210 погонять взять) или провод.
  18. Да дело в том что там всего один комбобокс выбрать надо чтобы hex генерился, вот и думаю может есть еще какие настройки, которых я не вижу в CCS v5 (если проблема в этой части конечно). Прошить могу и с помощью Uniflash, который кстати встроен в CCS, но допустим я хочу чтобы какой нибудь техник-программист мог прошивать контроллеры без моего участия или обновлять софт при необходимости, не разворачивать же ему на ноуте всю среду с проектами чтобы это делать, а C2prog проще некуда, чтобы ему это сделать. Конечно в этом случае самый оптимальный вариант написать свой загрузчик по какому нибудь интерфейсу, но особого времени на это нету, да и проблема остро не стоит, а готового нету тоже (такого чтобы можно было прикрутить к своему проекту без особого гемороя).
  19. PrSt, т.е. вы считаете что CCS неправильно генерирует hex файл, правильно я понял? Зачем мне bin to hex, если я получаю сразу hex при соответствующей настройке проекта? Бинарник я залить с помощью C2prog не могу, там только hex.
  20. Flash не затёрта если вы об этом. Вопрос в другом совсем: C2prog что то не дошивает, либо hex неправильно скомпиленный, хотя hex нормально компилиться с меньших проектов и зашивается. Проблема чисто програмная, но вот в каком месте?
  21. 1) При построении проекта в CCS поставил генерацию *.hex файла прошивки. 2) До какого то момента (пока проект не стал большим) *.hex файл прошивал сторонним загрузчиком C2Prog. 3) После того как проект стал больше (насколько незнаю не уловил этот момент) *.hex файл зашивается в контроллер, но контроллер после сброса запускать программу отказывается. (пробывал отмечать все 8-мь секторов памяти в ручную для прошивки) 4) Запуская прошивальшик UniFlash подсовывая ему файл прошивки но в формате *.out всё прошивается и контроллер нормально запускается после сброса. Кто нибудь сталкивался с такой проблемой? Может в C2prog есть ограничение в бесплатной версии на размер прошиваемого файла или hex в CCS не всегда корректно компилируетcя?
  22. Контроллер если сдохнет, вся надежда только на тормозной резистор, как защита от перенапряжения, и в этом случае по звену DC получиться может колебательный режим, т.е. напруга превысила значение, транзистор открылся, напруга уменьшилась, транзистор закрылся, напруга вырасла и т.д. если частота включения транзистора будет сильно большой то сами понимаете к чему это может привести. Но может параметры силовой части такие что частота переключений естественно не получиться большой просто.
  23. Для тормозной цепи хорошобы сделать ограничения по частоте или сделать гистерезис хотябы (а то транзистор спалить можно), хотя нужно посчитать отнощения нагрузки к ёмкости в звене DC, может гистерезис там сам собой получиться.
  24. Вы не поняли мой предыдущий пост, вы получаете стабильное напряжение при нагрузке от нуля (или почти) до номинальной при постоянных оборотах генератора, если правильно управляете BLDC мотором (вот в каком плане я имел ввиду управляемый выпрямитель, поэтому и написал что подобие), во всяком случае я так понял наспех об управлении BLDC, хотя могу и ошибаться. Поищите кто то тут на форуме замимается приводами на основе BLDC (гоночную машину сделал даже с данным приводом), там точно есть и двигательный и генераторный режимы, думаю он вам ответит получше на этот вопрос. Ну а если генератор без управления, а только выпрямитель, то да при увеличении мощности потребителя напруга просаживаться будет.
×
×
  • Создать...