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

Vitёk

Свой
  • Постов

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

  • Посещение

Репутация

0 Обычный

Информация о Vitёk

  • Звание
    Местный
    Местный
  • День рождения 26.08.1972

Информация

  • Город
    Array

Посетители профиля

1 652 просмотра профиля
  1. Спасибо за ответ. Стало интересно: как будет вести себя STM с прошивкой от GD. Не пытались проверить?
  2. Прошу прощения за реанимацию старой ветки. У меня такая же проблема на GD32F105RB. Я пробовал использовать как код, сгенерённый кубом для STM32F105, так и библиотеку tinyUSB - в обоих случаях подведение такое же, как вы описали. Скажите, вам удалось решить эту проблему? Или может быть есть у кого положительный опыт переезда с STM32F105 на GD32F105, что бы работал USB device? Уточню: можно ли переделать HAL от STM, что бы это без проблем работало на GD?
  3. Снова нет. Диалог был следующий: k155la3: Ограничение (без отключения) тока, LM317 + (переменный) резистор. См. в datasheet Current-Limiter пример включения. Vitёk: Такой вариант вполне приемлем. Только ограничиваемый ток должен быть пропорционален напряжению на выходе, и при КЗ составлять например 1/10 от номинального, что бы не перегреть регулирующий элемент. Это чуть сложнее, чем LM317. И остаётся вопрос, как оно будет стартовать на нагрузках разного характера. wim: Не получится, если не ограничить диапазон емкостей нагрузки. И понеслась... Будьте внимательней.
  4. Нет. Вероятно, Вы неправильно поняли идею. Ключевым моментом здесь является прямая (ну почти) пропорция между током и напряжением на нагрузке. При нулевом напряжении на выходе (режим КЗ) ток поддерживается в районе 1/10 - 1/20 от максимального, и таким образом нагрев регулирующего элемента снижается до терпимого уровня. На картинке результаты измерения, полученные на макете, нагруженном на переменный резистор. Нижний левый конец графика - это и есть КЗ. По мере роста напряжения на нагрузке - ток через неё тоже растёт, и в случае чисто ёмкостной нагрузки напряжение на ней будет расти почти по экспоненте. Благодарю Вас!
  5. Получится, от величины ёмкости зависит только время, требуемое на её зарядку. По мере зарядки и увеличения напряжения на ней, ток зарядки будет пропорционально расти. Т.о., график напряжения на ёмкости будет похож на экспоненту.
  6. Спасибо всем откликнувшимся! Такой вариант вполне приемлем. Только ограничиваемый ток должен быть пропорционален напряжению на выходе, и при КЗ составлять например 1/10 от номинального, что бы не перегреть регулирующий элемент. Это чуть сложнее, чем LM317. И остаётся вопрос, как оно будет стартовать на нагрузках разного характера. Боюсь, Вы правы. На напряжения до 5.5в (для защиты USB выхода) на рынке представлены сотни наименований, на любой вкус и почти бесплатно. А как только шаг вправо или влево - добро пожаловать в клуб "сделай сам". Немного не то, но с удовольствием ознакомился бы более подробно. Навскидку не нашёл, можете поделиться ссылкой? С уважением, Виктор.
  7. Добрый день! Есть задача защитить выходы источника питания от перегрузок. При обнаружении таковой, выход должен отключаться, и через время пытаться включиться снова. Выходное напряжение - до 20в, ток срабатывания желательно регулировать от десятков до сотен мА. Отключать можно как "+", так и "-", без разницы. Просмотрел множество готовых решений, из подходящих нашёл только TPS1H000, но у него почти нулевая доступность. Есть вариант на рассыпухе, но он громоздок. Подскажите, есть ли доступное интегральное решение с небольшой обвязкой?
  8. AVI-crak, спасибо, ответил в ЛС.
  9. Очень близко к тому, что я ищу. Но, к сожалению, компилятор выдаёт ошибку: Error: bad arguments to instruction -- smull r4,r5 Видимо, в регистровые пары (или что значит Rp) ассемблер не умеет.
  10. По сути я так и делаю - получаю доступ к половинкам через юнион.
  11. Forger, штатные библиотеки устраивают, умножение 32х32 приведено в качестве примера. Вопрос в том, что бы обойтись без структур, объединений и прочего. Что бы объявить переменную long long, и разбить её на 2 половинки. В avr-ском ассемблере, емнип, были директивы hi/lo, которые позволяли получить доступ к 8-битным половинкам 16-битной переменной.
  12. Добрый день! Что бы передать внутрь ассемблерной вставки половинки 64-битной переменной, использую union, примерно вот так: union u_i64 { int64_t i64; int32_t i32[2]; }; int64_t mul64(int32_t m1, int32_t m2) { register union u_i64 ret; asm volatile ( "smull %0, %1, %[m2], %[m1] \n" : "=r" (ret.i32[0]), "=r" (ret.i32[1]) : [m1] "r" (m1), [m2] "r" (m2) ); return ret.i64; } Но хотелось бы, что бы можно было на входе/выходе asm'а указывать непосредственно половинки большой переменной, что-то вроде "res.H" и "res.L". Или объявлять переменную с явным указанием пары регистров, примерно как register uint64_t res asm ("r0:r1"), тогда можно было бы скормить указанную пару r0 и r1. Беглый просмотр документации ответа не дал. Это вообще возможно? Заранее благодарю за ответ. Компилятор arm-none-eabi-gcc 5.4.1 из состава embitz 1.11, проект для Cortex-M3, если что.
  13. OMG... Я, канэшна, подозревал, что освоение новой САПР и перенос проектов не будет безболезненным. Но чтоб через такую ж..... :crying: PS: Спасибо за информацию. :)
  14. Спасибо, получилось. Успешно импортировал ячейки в central library. Только вот вопрос остался. Скачанные с сайта мегратека трансляторы OrCAD->PADS и PADS<->Expedition не очень дружат друг с другом - первый создаёт файлы типа *.??4, а второй требует файлы *.??07. Это в пределах нормы (и их просто нужно переименовать), или я что-то не так сделал?
×
×
  • Создать...