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

tar

Members
  • Постов

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

  • Посещение

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

  1. Под мак успешно настроил VSCode работает и прошивка и дебаг Если коротко то делается это так: Ставится brew Потом через brew ставится openOCD GNU Arm Embedded Toolchain После этого в VSCode ставится https://marketplace.visualstudio.com/items?itemName=bmd.stm32-for-vscode Там же в описании написано как нужно генерить проект и дополнительные плагины для работы (типа Cortex-Debug extension) Потом суть в том что нужно найти targets и конфиги для программатора, они лежат что то типа в /usr/local/share/openOCD или как то так и скопировать их себе в проект и настроить проект правильно Желательно найти гайд как это все сделать. Но я могу точно сказать что эта связка работает и работает хорошо вместе с дебагером
  2. В ПИДБП для того что бы стабилизация хорошо работала, вся схема перенесена за шунт, то есть вначале стоит шунт, потом вся схема. Тут вариантов не много, диф усилители клепать либо на получение напряжения с шунта либо на напряжение выхода, ну или как сделано в ПИДБП выносить схему за шунт. Сколько лет уж прошло, до сих пор всяких говносхем пилят тоннами. Хоть бы уж собрались да сделали что то нормальное. Одна только PSL серия и еще пару схема чего то стоит, все остальное хлам.
  3. Можно попробовать сам кварц поменять часовой и потом глянуть оцилом частоту, если она задается правильно то надо в логике работы искать проблемы. Если осцила нету то просто попробовать несколько кварцев. Delay использовать для определения времени не корректно. После того как получите стабильную работу от часового кварца, переходите на прерывания от часов, можно использовать будильник для этого
  4. Делал ДХО одному хорошему человеку, по принципу дальние в 20-30% накала. Он заменял релюху собой и полностью не нарушал работу обычного дальнего света. Контроллер был на Attiny13 он следил за напряжением сети и если двигатель был заведен, включал дальний свет в 20-30% накала ламп (настраивалось) (абсолютно не слепит и тп) выключалось при включении ближнего. Человек до сих пор ездит и его все устраивает. На старых машинах вижу только такой нормальный вариант ДХО, все остальное жуткие костыли, а тут только релюху заменить и настроить(настраивается при включении зажигания миганием дальнего света).
  5. Есть у меня дешевое решение, без всяких плк и тп ненужной тут. Если интересно можете в личку мне написать, обрисую в в двух словах.
  6. tar

    STM32 для чайника

    В интернете есть несколько гайдов на эту тему, можете попробовать. Я настраивал себе по mac и там в принципе оказалось все не сложно. Если вам по win то я вообще ничем помочь не смогу. Единственное что недавно всплыло, что не компилится исходник под l0 серию типа l011d3, но пока руки так и не дошли написать об этом разработчикам. Так что если вы пишите под L0 с малым количеством памяти на хале то скорее всего возникнут проблемы (хотя может и нет)
  7. tar

    STM32 для чайника

    Просто создается makefile проект. Работает без проблем, с перегенерацией тоже проблем небыло
  8. tar

    STM32 для чайника

    Давно знал что можно использовать в качестве IDE под STM32 - VS Code с определенным набором плагинов. Для меня основная проблема с IDE заключается в том, что Eclipse- подобные IDE меня не устраивают, под мак они очень сильно тормозят (как и весь Eclipse в приципе под мак тормозит). Win решения проходим стороной. Решил попробовать VS Code настроить. Промучался не так долго, в принципе гайды в интернете есть. Делаю это уже не первый раз, как то пробовал уже такое вполне успешно. Но в этот раз я решил полностью перевести проект под новую IDE. Как оказалось это заняло мало времени и теперь я даже не смотрю в сторону старых IDE. Что работает: Подсветка и все такое, естественно Сразу проверяет возможные ошибки. Статический анализатор слабоват но достаточен Автодополнение, полноценно подсказывает константы, функции и тп Есть дебагер, такой, какой меня в принципе устраивает При желании можно и просто сбилдить и прошить, прошивает быстро Можно писать код полноценно во время отладки, работает подсветка и автодополнение, бесило в keil что это не работало при отладке Что действительно радует - скорость работы, интерфейс отзывчивый и работает действительно быстро. Что не радует - один раз надо настроить IDE. Вообщем требуется соврешить ряд не очень очевидных действий. Возможно информация кому то окажется полезной и кто то обратит внимания и в конце концов останется доволен
  9. А от HAL до CMSIS сколько шагов? Приехали. HAL такой же абстрашн лейр что и SPL. Причем SPL как и HAL построены по одной идеологической архитектуре. Те же структуры, те же функции. Иногда при беглом взгляде даже не сразу заметишь что это SPL а не HAL. Или что по вашему HAL оперирует не регистрами а магическими шарами?
  10. Главный вопрос - зачем нужен SPL когда есть HAL? Человек же написал что на HAL все работает, но он хочет получить результат на цимисе.
  11. Я бы взял без проблем STM32 + REF196 + делитель + повторитель Много вариантов и комбинаций есть. У автора непонятки только какие то.
  12. Ну тогда тут можно брать RTR ОУ типа MCP6022 Получается ИОН на 2 вольта + переменник + ОУ + делитель на 10 + ОУ ХЗ как на самом деле MCP6022 ведет себя при напряжении близком к 0, но поите RTR должен работать адекватно в этой ситуации Я так то в принципе понимаю что можно обойтись одним ОУ и переменником, но мне не нравится такое решение, как по мне напряжение которое приходит на делитель должно быть охвачено ООС да бы гарантировать напряжение на делителе. А управлять напряжением на делителе именно с опорника. Но подобную схему естественно можно упростить.
  13. Поэтому я и предложил сразу же сделать выходной буфер ОУ. По сути выходной ОУ можно усилить парой транзисторов со стабилизацией тока Какой должна быть схема тут, как по мне - Источник напряжения 0-15V (можно взять LM723 или ОУ + ИОН) -> делитель на 100 -> повторитель на ОУ при желании можно умощнить транзисторами Вот пример выходного каскада
  14. Решал я уже похожую проблему https://www.radiokot.ru/forum/viewtopic.php?p=2830240 Тут можно почитать как сделать нормальный делитель, и про точность там тоже немного есть.
  15. Тут главные вопрос - насколько долго нужно держать заданное напряжение? Если подключить и настроить то можно просто использовать переменик с делителем. Но я бы сделал по другому - верный делитель на 100, просто подавал на него напряжение с какого нибудт блока питания. Еще конечно же вопрос выходного сопротивления, в принципе можно сделать повторитель на OP07
  16. Может вы поясните, ну так, насколько рационально использовать в подобных конструкциях такие кольца? Пробежался по небольшой кучке фоток концертников и домашних усилителей и не нашел, что бы кто то их использовал. Собственно даже не удивлен, фильтровать высокочастотный сигнал или синфазку после низкочастотного трансформатора - таким даже профессиональный источники питания не страдают. Но я понял уже, что у вас в аудио это очень "важно". Не дай бог конечно не поставить - не православно. Особенно в усилитель та на lm3886. Ну я думаю вам есть смысл на него равняется. Встанете в один ряд с такими вот ребятами Не холивара раде. Но надо все же понимать границы адекватности.
  17. tar

    STM32 для чайника

    А там что, написано что: Я же выше привел пример что если я это делаю на x86 у меня никаких проблем нету. И в принципе что то подобное и ожидал.
  18. tar

    STM32 для чайника

    В чем конкретно проблема? Я не понимаю. Я присваиваю адрес ссылке на структуру, предпологая что дальше в памяти расположатся данные моей структуры
  19. tar

    STM32 для чайника

    Отчасти вопрос по поводу структур решился, может кому то поможет https://habr.com/ru/post/142662/
  20. tar

    STM32 для чайника

    Кстати обратил внимания что на четных все так же после 2 байт идет 2 чистых байта ни к чему не привязаны, откуда они там берутся?
  21. tar

    STM32 для чайника

    Не стал создавать новую тему, может все же я чего то не догоняю Собственно столкнулся недавно вот с какой ситуацией: Расписал я память, начал ее мапить ссылками на структуры, и внезапно часть структур мапится и работает корректно а часть при маппиге и использовании сваливает проц в HardFault_Handler IDE Keil если что Начал разбираться, и откровенно говоря вообще ничего не понял. Возьмем кусок памяти: uint16_t modbus_data[32]; Есть у нас структура такого типа: typedef struct vb_counter_unit { uint8_t init; uint8_t reserve; uint32_t counter; double counter_real; float counter_offset; float pulse_weight; } vb_counter_unit; Структура как структура, создадим ссылку: vb_counter_unit *cu_counters; По сути я привожу пример с чистого проекта под STM32F072C8T6 + CubeMX Далее в main у нас начинается мап+фид: cu_counters = (vb_counter_unit*) &modbus_data[1]; cu_counters->init = 1; cu_counters->reserve = 2; cu_counters->counter = 3; cu_counters->counter_real = 4.4; cu_counters->counter_offset = 5.5; cu_counters->pulse_weight = 6.6; Во время выполнения он заполняет только первые два поля, после чего дропается в HardFault_Handler Начал смотреть память а там ваще котовасия какая та Запускаем и смотрим Видим что у нас заполнился только первые 2 байта, после чего проц ушел в HardFault_Handler Хорошо, в ручную меняем значение поля cu_counters->counter = 0x21; И получаем очень странную картину: Видно что между counter и reserve есть целых 2 байта, откуда они там взялись??? Провожу еще один эксперемент, и начинаю мапить данные не с 1 а с 0 адреса cu_counters = (vb_counter_unit*) &modbus_data[0]; До этого я указывал modbus_data[1]; И о чудо: Все работает правильно. После чего я провел некоторые тесты и выяснилось что если мап я назначаю с четного индекса массива то все работает, если же назначаю с нечетного то он крашится в HardFault_Handler Может кто то ответить что я упустил в этой всей истории? Я взял тут же накидал такой же пример на Xcode что по сути является GCC Вот код: #include <stdio.h> uint16_t modbus_data[32]; typedef struct vb_counter_unit { uint8_t init; uint8_t reserve; uint32_t counter; double counter_real; float counter_offset; float pulse_weight; } vb_counter_unit; vb_counter_unit *cu_counters; int main(int argc, const char * argv[]) { cu_counters = (vb_counter_unit*) &modbus_data[19]; cu_counters->init = 1; cu_counters->reserve = 2; cu_counters->counter = 3; cu_counters->counter_real = 4.4; cu_counters->counter_offset = 5.5; cu_counters->pulse_weight = 6.6; while (1){ } return 0; } И он полноценно смапил все как надо и заполнил Может кто скажет что я упустил?
  22. На самом деле довольно странно что при нынешних ценах на те же MK типа STM32F030F4P6 которые на Алике стоят копейки наблюдать схемы с кучей делителей и многооборотных резисторов. На МК по сути это все решается гораздо удобнее. Настроить АЦП, вычисление конечного вольтажа и можно спокойно переключать с любой логикой хоть 10 реле. При желании можно еще накинуть каких нибудь защит или еще чего типа сбора данных с блока по току и напряжению.
  23. Да поглядел уже- по сути то что они купили оформили в виде CubeMX + IDE что кстати отчасти удобно. Но вот с дебаггером у меня все никак под мак не заведется. Приходится запускать паралельку, а с паралелькой и кайл неплохо работает. Наверное пользователи win торжествуют.
  24. Да у меня все так как у вас было по схеме которую вы же мне и скинули. После чего выяснилось, что на схеме в симуляции у вас номинал один а в перечне номиналов другой. После замены на правильные номиналы - все заработало но стабильность по току была никакая, потому что при нагевании выходного транзистора меняется выходной ток. Если у вас не меняется - я рад за вас. Но я бы на вашем месте "проверился" хотя бы 4.5 мультиметром. А симуляцию мне показывать не надо, она у меня как бы тоже есть. В симуляции у меня ничего не плывет, что как бы ожидаемо.
×
×
  • Создать...