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

koyodza

Свой
  • Постов

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

  • Посещение

Репутация

0 Обычный

Информация о koyodza

  • Звание
    Местный
    Местный

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

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

2 492 просмотра профиля
  1. Использовал МСО для тактирования внешнего АЦП частотой 12МГц (выход HSE), был задействован USART1, всё отлично работало. Правда, на F103, но это скорее всего не важно. Проверьте, не установлен ли бит CLKEN в USART1->CR2 Если на пин выведены альтернативные функции от нескольких модулей, нужно быть внимательным и не допускать одновременной работы таких модулей либо блокировать работу альтернативной функции в одном из модулей. В Вашем случае выход CLK у USART1 должен быть запрещен. Чтобы так говорить, нужно вначале самому их видеть. В приведенном топикстартером фрагменте использованы не стандартные библиотечные функции, а свои. Как раз при отказе от библиотечных функций часто и возникают ошибки, связанные с неправильной инициализацией периферии. Поэтому прежде, чем писать свои функции, напрямую работающие с регистрами, лучше вначале взять и разобраться со стандартными, понять где и что не нравится, и только потом уже писать свои
  2. Ещё бы размер страницы флеша узнать. Не общий размер, а именно размер страницы. Хотя его можно вычислить зная общий размер, но может он где-то хранится? И размер ОЗУ до кучи :) Для F103 в errata пишут о недоступности DBGMCU_IDCODE: The DBGMCU_IDCODE and DBGMCU_CR debug registers are accessible only in debug mode (not accessible by the user software). When these registers are read in user mode, the returned value is 0x00. Спасибо, интересная идея - через проверку возможности тактирования модулей.
  3. STM32 автоопределение типа

    Нужно определить тип чипа, на котором выполняется прошивка. Есть CPUID base register (SCB_CPUID) Reset value: 0x411F C231 (STM32F1 series) Reset value: 0x412F C230 (STM32F2 and STM32L series) но здесь недостаточно информации. Конкретно нужно отличить F100 и F103, однако не помешал бы и более общий алгоритм. Понятно, что можно обратиться к периферии, которая есть только в одном МК, и при её отсутствии получить HardFault, но хотелось бы обойтись без этого
  4. Вылетают ATMega 8

    Для начала не мешало бы это почитать http://eewiki.ru/wiki/%D0%9F%D0%BE%D0%BC%D...%82%D0%B2%D0%B0
  5. Т.е. это всё-таки изучение, но до этого даже AVR не было. Тогда Вам должно быть легче отказаться от приёмов работы, используемых там, но неэффективных здесь. Укажите место "в доках на stm", где описано то, что Вы пытались сделать :) Вообще использование DMA не обязательно, можно и по прерываниям, частота 100 Гц совсем не высокая, но с буфером даже на 10 значений и DMA может оказаться удобнее, особенно если в конечном итоге Вас интересует только площадь, произведение значения на время. Хотя если Вы так ещё не делали, то по началу может показаться неудобно. Основной тезис: делайте запуск преобразований по таймеру для regular, а редкие преобразования с софтварным стартом или от другого, более медленного источника для injected, а не наоборот, и будет вам счастье :)
  6. Ранее Вы, видимо, работали с AVR :) Попробуйте сделать не так, а как более удобно делать на таких МК То, что Вы делаете сейчас - это чесание пяткой за ухом. Раз хотите измерять 100 раз в секунду ток, то настройте regular channel на преобразование по таймеру 100 раз в секунду, и пусть по DMA данные складываются в буфер, прерывания от АЦП не нужны, нужны прерывания по половине буфера и по полному буферу. А когда хотите измерить напряжение, дёргайте ножкой и запускайте программно преобразование для injected channel, полученные данные после преобразования можете обрабатывать по поллингу готовности или по прерыванию от АЦП Кстати, если измерение напряжения хотите повторять несколько раз, можно настроить цепочку injected каналов (до 4), при этом канал на самом деле может опрашиваться один, но в JDR1..JDR4 будут результаты отдельных преобразований, и готовность АЦП и прерывание получите в конце
  7. Речь идёт о схеме из первого поста или о чём? Если о ней, то впервые опубликовал я её где-то в 2006г на телесистемах, немного раньше это решение я применил в серийном изделии. Потом ув. Леонид Иванович немного поменял номиналы и опубликовал в виде небольшой заметки, с этими номиналами схема и кочует теперь по разным ресурсам. Порог отключения с указанными номиналами где-то 9,2В На самом деле это вырванный из контекста кусок, который в принципе довольно самодостаточен. Всю тему не перечитывал, сформулируйте чётко что Вы хотите, я подскажу как это реализовать
  8. А Вас не смущает, что в окне справа и в tooltip при наведении курсором не совпадают и другие регистры? Ищите, Вы или не тот SPI мониторите, или не туда пишете
  9. SWD vs JTAG

    Не совсем понятно, зачем здесь внешний супервизор. Внутренний работает нормально. Производитель рекомендует только ставить небольшой (0,1мкФ примерно) конденсатор с ноги сброса на землю, но не для начального сброса, а чтобы нога не ловила иголок. Этот конденсатор никому не мешает, ни отладчику, ни собственно сбросу. Резисторы не нужны, внешний супервизор обычно тоже
  10. Это где такие разделы? На сахаре Вы таки не бываете, разделы там совершенно другие: •Микроконтроллеры •ARM •AVR •PIC •MSP •Кибернетика (тут в основном вопросы постороения систем) •Программируемая логика •DSP •Схемы, платы, компоненты •Средства и методы разработки •Мобильная и беспроводная связь •Технологии Есть ещё "О смысле всего сущего", "Объявления" и "0xFF", куда ж без этого :)
  11. Лучше всего по-моему использовать два канала любого таймера, один в режиме ШИМ, второй в TOGGLE Выход первого подключается ко входу SD драйвера типа IR2104, выход второго - ко входу IN Если драйвер не нужен, вместо этого можно использовать любую внешнюю логику, достаточно половинки 74х139, одной 74х138, трёх элементов 74х00 / 74х02 или массы других вариантов. Преимущество такого способа - генерирование происходит аппаратно, без использования DMA, ширина импульсов одинакова (если не происходит изменения), изменение скважности происходит записью только в один регистр, изменение частоты повторения также только одним регистром. Если где-то будете использовать, особенно в публикациях, не забывайте правильно упоминать авторство ;)
  12. STM32F415RG

    Вполне возможно. Вот там http://caxapa.ru/343417.html я выкладывал результаты измерения входного тока АЦП при разных входных напряжениях, частоте сэмплирования и времени выборки. Правда, это для F1 и эти цифры вряд-ли соответствуют F4, но сама тенденция наверняка сохраняется
  13. Видимо, на сахаре Вы не бываете, раз назвали её радиолюбительским сайтом
  14. Нужно ремапить и сам SPI1, и JTAG, иначе ничего не получится. Перед этим не забудьте повключать тактирование портов, AFIO, SPI1, часто причина в этом. На F103 у меня такой ремап работает
×
×
  • Создать...