Jump to content

    

xemul

Свой
  • Content Count

    1907
  • Joined

  • Last visited

Everything posted by xemul


  1. SEGGER_RTT_Conf.h #define SEGGER_RTT_MAX_INTERRUPT_PRIORITY (0x20) // Interrupt priority to lock on SEGGER_RTT_LOCK on Cortex-M3/4 (Default: 0x20) PM00215 STM32F0xxx Cortex-M0 programming manual Table 27. IPR bit assignments The processor implements only bits[7:6]
  2. О подобном (правда, немного наоборот) обычно говорится в примечаниях к параметрам в Absolute Maximum Ratings. Н-р, в ДШ на IRFB7440 (в TO220, ID (Package Limited) 120 A) Если верить нотесам, кристаллы, разварка (bond wires) и компаунды сейчас о-го-го, а вот выводы (leads) хлипковаты.
  3. Согласен. Вряд ли оборудование фирмы ТС расходится миллионными тиражами, и, вероятно, цена изобретаемой унификации на фоне остального для неё не критична. Тогда решение Вы и Plain уже подсказали.
  4. Если бы все ТС придумывали адекватные заголовки... По ходу пьесы ТС признался, что реальные обороты двигателя ему не интересны, из чего у меня получился простой вывод о лишних сущностях. (но обороты я бы таки отслеживал хотя бы по пульсациям тока на переползании щёток по полюсам якоря) Я, честно говоря, тоже не понял, как соотносятся 400-500 Вт с бакбустом на 1.5 кВт, поминавшемся ранее, и сделал неправдоподобное предположение. ПМСМ, это не единственная причина, почему регуляторы оборотов во всякоразных (бытовых в том числе) пылесосах и перфораторах не делают на бакбустах.
  5. Забавно. На второй странице топика удаётся выяснить, что двигатель постоянного тока, хотя в первом посте ТС сразу сказал - двигатель коллекторный. Там же продолжаются рассуждения за форму тока, хотя на 1-ой странице ТС уже отметил слегка фиолетовый оттенок этого аспекта. (если вдруг, то на подумать: какая нагрузка на выходе фазового регулятора наиболее неприятна для формы тока?) И предлагается простое решение с одним неудобством - нужно куда-то пристроить 400-500 Вт, не влезающие в КПД. (если вдруг: нужно будет постараться посеять на симисторе при условиях ТС больше 15 Вт) Желаю плодотворной дискуссии.
  6. Я сразу отметил - "чисто математически". Очевидно, что для измерения в-1000-раз-более-длиньшего интервала с той же разрядностью достаточно в-1000-раз-более-меньшей опорной частоты. В погрешности сейчас лезть смысла чуть.
  7. А есть варианты? Два компаратора, XOR, раздельно считать длительности и 0, и 1 (чтобы упростить себе жизнь и работать в интервале 180..355 градусов). По накоплению требуемого числа периодов производить нехитрые вычисления.
  8. 355 (градусов?) на 7 МГц соответствуют интервалу времени ~ 0.89 мкс. Чтобы "прямо взять и измерить" этот интервал с разрешением, н-р, 16 бит, потребуется частота 2^16/0.89 мкс ~= 7,4E+010 Гц = 74 ГГц. (для 24 бит посчитайте сами) Если допустимо усреднить фазу по, н-р, 1000 периодам, (чисто математически) удастся обойтись частотой 74 МГц.
  9. Ну да, какое ж творчество без еды. Предполагается ли, что мультивольтажное изделие должно работать от сети 220 VAC с двигателем на 110 VAC (и наоборот)? Посмотрите на стародревние U211B2/B3 (выпускаются и используются до сих пор) - уже тогда люди знали, как бороться с "мотор просто не может запуститься", - или поищите их новые инкарнации.
  10. Не пройдёт по какому параметру? По "Мне поставленна задача разработать"?
  11. Что такое "от 50%-60% до мах", пока не понятно, но если оно не имеет отношения к стабилизации скорости, то возьмите какой-нить регулятор оборотов для электроинструмента и срисуйте схему (или просто наклейте свою лейбу).
  12. Варианты сериализации номеров/прошивок в конфе обсуждались неоднократно. В ванварных FC достаточно неиспользуемых кодов. Самописный слэйв-"эмулятор DS2406" легко может отвечать чем-то отличным от 0x12, а самописный мастер - обрабатывать и это отличное, и 0x12 для совместимости.
  13. Если сомневаетесь, загляните в ассемблерный листинг. У меня почему-то есть уверенность, что там ничего лишнего не соптимизировалось. Да и сами говорите "тут вдруг всё работает даже с -O3". Процитированный Вами п.9 о том, что усилия одного оптимизатора могут привести к странноватым результатам, о чём писал Сергей Борщ, а усилия другого - не привести, и что знакомство с "implementation-defined restrictions" приветствуется. В этом смысле volatile на всё, поминаемое в прерываниях - платформо- и компиляторо-независимая панацея. Но мне проще подстелить соломки какого-либо вида.
  14. 1М на неинвертирующем входе подключите к средней точке источника питания ("-", который на схеме справа). Нагуглите "Методы практического конструирования при нормировании сигналов c датчиков.pdf".
  15. ISO9899 Programming Languages C Можно также посмотреть п.п. 4, 5, 9.
  16. Вообще-то, примерно это я и написал (и даже перечислил, то, что не требует объявления volatile, т.к. волатильно _не_изменяется_; даже то, что волатильно изменяется, но опять же не требует volatile). Отквоченная Вами фраза - доказательство (точнее, в данном случае, опровержение другого утверждения) от противного, ПМСМ, довольно очевидное.
  17. Тогда необходимо объявлять volatile любую переменную, которая в одной единице компиляции только читается, а в другой - только пишется.
  18. volatile должны быть объявлены глобальные переменные, которые и _изменяются_ в прерывании, и используются вне прерывания. channels.enabled, channels.top и channels.compare_val в прерывании не изменяются, и им volatile'ность не требуется. Используется ли вне прерывания channels.counter++, не понятно. Тем не менее, прерывание TIMER1_COMPA при исполнении spwm_configchannel() может привести к сбою формирования ШИМ, если не подстелить соломки. (н-р, из приведённого кода не очевидно, что в spwm_configchannel() после "channels.enabled = 0" выполняется что-то, устанавливающее пин в определённое состояние, вроде "*channels.port &= ~(1 << channels.pin);", или что не приключится пропуск такта ШИМ при изменении channels.compare_val, или что ...; но, возможно, оно Вам и не актуально)
  19. Перевожу: [PIC16 MEMORY] PC=0x0015. Попытка записи в несуществующую ячейку памяти 0x0007 ... (PC - Program Counter, указывает адрес исполняемой команды) Вы успели обидеть все онлайн-переводчики? Ошибка в нежелании ознакомиться с ДШ на контроллер (в данном случае с "FIGURE 4-2: DATA MEMORY MAP"), с мануалом на используемый компилятор и с примерами написания/оформления программ, предоставленными производителем контроллера, компилятора или среды разработки (за протеус ничего не скажу, т.к. не знаю). Новичкам обычно приходится много читать. Для оформления кода или логов в сообщении используйте теги CODE (иконка с рулоном бумаги и зелёным треугольником над окном редактирования) или CODEBOX (для длинных простыней). Это написано в правилах конфы. Разбираться в лапше из b'01010101' без комментариев никто (я - точно) не будет.
  20. Вряд ли продолжают. Если закажете какую-нибудь LS (гы-гы) или ALS, сильно сомневаюсь, что получите промаркированную последними годами. Означает, что есть лучше и дешевле для таких применений. Да и дискретную логику в ширпотребе сейчас придётся очень поискать.
  21. Предположу, что (биполярный) транзистор не догадывается, по какой схеме его включили, и будет работать одинаково надёжно, если считалка для схемы была правильная. У биполярной цифры получше будет, н-р, с устойчивостью к ионизирующим излучениям. Но CMOS дешевле в производстве, и как только бо-ме победили родовые болячки технологии (защёлкивание по паразитным диодам, чувствительность к статичеству, скорострельность), шансов в ширпотребе у биполярной цифры не осталось.
  22. Добавьте стабилитрон || резистору затвор-исток. (если нет требований по скорострельности, этот резистор можно сделать и МОм-ным)
  23. По умолчанию д-линковские поделия назначают 192.168.1.1 себе. Проверьте на всяк случай. В настройках сервера DHCP можно задать резервирование IP-адреса по MAC. Это самое прямое решение проблемы. (IP, естесно, должен быть в пределах пула адресов сервера DHCP) Второй вариант - задать одноплатнику ручками IP-адрес в той же подсети, но вне пула адресов сервера DHCP. Дополнительных плясок при этом не потребуется. (если не заработает, сбросьте настройки роутера в умолчательные, обновите фирмварь, ...) Третий вариант - задать ручками IP-адрес в другой серой подсети и добавить соответствующие маршруты роутеру.
  24. Возможно, один из них - что-то вроде MEMR'. Если предположить, что на плате могут стоять и микросхемы ОЗУ, то второй, соответственно, MEMW'. U5 и U6 - буфер, разгружающий шину адреса и развязывающий её от U7, там, где она используется. Есть сомнение, что U6.1, U6.19 сидят на земле. "епромины" адрес не формируют, они его получают. U9(B,C,D) - дешифратор на A12..A15 = 1111. U8(C,D) - формирователь CE' (что прибегает на U8.10, гадать не берусь). U8(A,B ) - формирователь OE'. U7 - защёлка старшего байта адреса (для систем с мультиплексированной шиной адреса/данных). На Вашей картинке входы у неё справа, а выходы - слева. На U7.11 должен приходить сигнал типа ALE'. Схема снята не совсем корректно, имхо. R12 д.б. с другой стороны JP4. Вероятно, не хватает связей между разъёмами (некоторые входы висят в воздухе, если подключается только ER34, или повиснут при разомкнутых перемычках). Заметил ещё что-то, но уже забыл. Ищите сами. Отслеживать шнурки в параллельно-попердикулярной лапше - удовольствия чуть. Знаете, как рисуются шины? Вот и нарисуйте. Самому станет понятней. В качестве замены, имхо, сейчас (удобнее использовать)/(проще найти) flash, а не UVE EPROM. Судя по JP10, U5, U6, U7 можно упростить. (только сравните на всякий случай ёмкости по входам U5, U6 и входам шины адреса предполагаемой памяти) Судя по JP1..8, в памяти используется верхняя половина осьмушки (CE' = 0 только при A12..A15 = 1111). С учётом неиспользуемого A0 достаточно памяти 2^11 x 16 бит. U8, U9 упростить вряд ли удастся. "Не мелочитесь, Киса". JP9 на схеме не нашёл.
  25. Если рассматривать фильтр, как чёрный ящик с некоторой АФЧХ, то он может быть рассчитан и на сто одну вполне определённую частоту. Можно (попробовать) разделить фильтр о сто одной частоте на сто один фильтр об одной частоте, но смысл порядка будет один и тот же. Угу, невнимательно поразглядывал. Меня учили не так.