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

STM32F407G-DISC1(M997D) не работыет таймер с использованием внешнего кварца


Hors

Рекомендуемые сообщения

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

4 минуты назад, mail_robot сказал:

обязано. Если не работает, то проблема в самих платах

А могу ли я подключить генератор к ножкам, не выпаивая тот, что в плате для проверки? Или это мёртвому припарки?

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

1 минуту назад, mail_robot сказал:

нет

не проще кварц заменить?

 

Да боюсь плату повредить. Но видимо выбора нет. Могу ли я впаять туда 16 мегагерц?

Ссылка на комментарий
Поделиться на другие сайты

запросто. Не забудь только при настройке эту частоту указать в поле кварца

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

2 минуты назад, mail_robot сказал:

запросто. Не забудь только при настройке эту частоту указать в поле кварца

Попробую. Надеюсь поможет.

2 минуты назад, Hors сказал:

Попробую. Надеюсь поможет.

http://andybrown.me.uk/2015/03/03/modding-the-stm32-f4-discovery-with-a-25mhz-clock/

Мне тоже нужно конденсаторы перепаивать?

Ссылка на комментарий
Поделиться на другие сайты

вообще да. У меня единственный раз в жизни был случай, когда генератор не запускался. На самопальной правда плате и контроллер был STM32F030F4P6. Проблема была в говенных конденсаторах кварца. Перепаял на нормальные по номиналу и все заработало. Кварц был 24 МГц демонтированный с платы промышленного контроллера, так что к нему претензий небыло

Очень странно что у вас такая ситуация с диско. Обычно это одни из самых беспроблемных плат. Разве что китайцы начудили конкретно...

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

3 минуты назад, mail_robot сказал:

Очень странно что у вас такая ситуация с диско. Обычно это одни из самых беспроблемных плат. Разве что китайцы начудили конкретно...

А не может глючить куб? Может мне попробывать напрямую запрограммировать его, а не через HAL?

Ссылка на комментарий
Поделиться на другие сайты

Сейчас только подумал - не мешало бы запустить отладку и посмотреть - а не сваливается ли код в обработчик ошибки. При запуске генератора производится проверка его пуска перед тем как отключить внутренний генератор (запуск всегда на нем). Если так, то можно выловить код ошибки и понять в чем проблема точнее

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, mail_robot сказал:

Сейчас только подумал - не мешало бы запустить отладку и посмотреть - а не сваливается ли код в обработчик ошибки. При запуске генератора производится проверка его пуска перед тем как отключить внутренний генератор (запуск всегда на нем). Если так, то можно выловить код ошибки и понять в чем проблема точнее

А отладчик через usb работает?

Ссылка на комментарий
Поделиться на другие сайты

вот с этого места не должно быть сваливания в ошибку.

if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK)
  {
    Error_Handler();
  }

 

Только что, Hors сказал:

А отладчик через usb работает?

а как еще? У вас же STLink на борту

вот. Код проверки запуска генератора. Скорее всего отсюда будет выдаваться ошибка, если не запущен генератор

while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_HSI48)
      {
        if((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE)
        {
          return HAL_TIMEOUT;
        }
      }

 

пардон, это для HSI

вот для PLL

while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_PLLCLK)
      {
        if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE)
        {
          return HAL_TIMEOUT;
        }

 

в принципе не важно. Проверка там одна и та же для всех типов генераторов. Так что если вернет HAL_TIMEOUT, то стопудов гена молчит

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

21 минуту назад, mail_robot сказал:

Сейчас только подумал - не мешало бы запустить отладку и посмотреть - а не сваливается ли код в обработчик ошибки. При запуске генератора производится проверка его пуска перед тем как отключить внутренний генератор (запуск всегда на нем). Если так, то можно выловить код ошибки и понять в чем проблема точнее

Знать бы ещё какой регистр ловить.

Ссылка на комментарий
Поделиться на другие сайты

нафига ловить регистр? Вы вообще с отладкой на STM знакомы? Или это первый в жизни камень после AVR? Если так, то вам бы для начала что нибудь попроще освоить

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, mail_robot сказал:

нафига ловить регистр? Вы вообще с отладкой на STM знакомы? Или это первый в жизни камень после AVR? Если так, то вам бы для начала что нибудь попроще освоить

К сожалению не знаком. И да это первый камень после AVR.

Ссылка на комментарий
Поделиться на другие сайты

в ErrorHandler дописывается своя проверка нужных флагов и ставится точка останова. Если точка сработает, то выясняется почему по значению этих флагов. Но я не думаю что вам это сильно поможет. Слишком мало опыта. Начинайте таки не торопясь. Четырехсотка шибко хитрый камень для вас, и я очень сомневаюсь, что после AVR у вас получится загрузить его реальной работой хотябы на 1% мощности. Даже простейший STM32F103C8T6 выдает в 50 раз бОльшую производительность чем ATMega328. А 407 по сравнению с мегой это вообще звездолет по сравнению с кукурузником. Вам что, реально столько надо?

Купите простейшую отладочную плату за 2 бакса или диско M0. Хватит с головой

ну и как бы никто не запрещает работать с внутренним генератором. Он точно так же разгонит ваше ядро до 168 МГц через PLL. И стабильность у него не многим хуже чем у кварца с характеристикой 20PPM. Так что можно с пайкой пока не заморачиваться, если речь идет только об освоении камня. Путь у вас верный, опыт придет со временем

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

Выставил breakpoint на указанную вами функцию, перешёл к её выполнению и началось сумасшествие. LD1 мигает красным и зелёным и далее ничего не происходит.

Ссылка на комментарий
Поделиться на другие сайты

Я к сожалению не знаю что такое LD1, у меня нет такой платы. А "ничего не происходит" это тоже может чтото означать. Но надо видеть своими глазами что именно происходит. Чтобы подсказать мне надо почитать мануалку на плату, взглянуть на монитор, что там пишется. А так это гадание по фотографии

Работайте на внутреннем генераторе и осваивайте камень. Будет опыт, придет и понимание

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

41 минуту назад, mail_robot сказал:

Я к сожалению не знаю что такое LD1, у меня нет такой платы. А "ничего не происходит" это тоже может чтото означать. Но надо видеть своими глазами что именно происходит. Чтобы подсказать мне надо почитать мануалку на плату, взглянуть на монитор, что там пишется. А так это гадание по фотографии

Работайте на внутреннем генераторе и осваивайте камень. Будет опыт, придет и понимание

HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_SET);

Забавно, что даже это не работает, если выбран внешний генератор

Ссылка на комментарий
Поделиться на другие сайты

Вобщем нашёл в даташите, что нужно выпаивать резисторы R25 и R68, чтобы кварц работал, как собственно кварц. Сейчас они оба припаяны и пины работают, как обычные. Интересно то, что если я это сделаю то не смогу использовать внутренний генератор. Вот она и новая версия. Попробую выпаять. О результатах отпишусь.

 

 

Изменено пользователем Hors
Ссылка на комментарий
Поделиться на другие сайты

Внутренний генератор вообще никоим образом не зависит от конфигурации внешних пинов.

Если плата настоящая F4 Discovery, а не китайский клон, то никаких резисторов-перемычек, для использования портов PH0, PH1 как обычных GPIO там не уставлено изначально. Есть только площадки для их запайки.

И да, на приведенном скриншоте не видно  что там и где зависло. Поставьте точку остановки на начало main функции и пошагово пройдите процесс настройки и запуска тактирования до зависания. 

Ссылка на комментарий
Поделиться на другие сайты

Не торопитесь паять, посмотрите схему, кажется там кристалл стоит в другом месте. Где то на вспомогательном, на ст-линке или типа того, а центральный надо ставить в тактирование по бай-пассу а не кристаллу, ему приходит готовая тактовая на пин МСО.

У меня на нуклее стм32Ф303 вчера выяснил что так сделано.

Схема

 

Ссылка на комментарий
Поделиться на другие сайты

29 минут назад, Вуйко сказал:

Внутренний генератор вообще никоим образом не зависит от конфигурации внешних пинов.

Если плата настоящая F4 Discovery, а не китайский клон, то никаких резисторов-перемычек, для использования портов PH0, PH1 как обычных GPIO там не уставлено изначально. Есть только площадки для их запайки.

И да, на приведенном скриншоте не видно  что там и где зависло. Поставьте точку остановки на начало main функции и пошагово пройдите процесс настройки и запуска тактирования до зависания. 

Останавливается на фигурной скобке, где error_handler(). Прикладываю скриншот:

 

screen5.png

Попробывал по байпассу и получил ошибку об отсутствии файла stm32_hal_legacy.h.

 

Изменено пользователем Hors
Плохой скриншот
Ссылка на комментарий
Поделиться на другие сайты

HAL ошибку выдает. Пройдите по программе пошагово (кнопка. где стрелка внутрь фигурных скобок указывает) и определите что вызывает ошибку.

 

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...