Черная бригада
Sun 31 декабря 2017 г. 15:54
Моя плата использует кристалл 16 МГц, и я не хочу его менять.
это STM32F103VET6, и я хочу использовать Rogers Core
Как лучше всего внедрить его в мои дополнительные определения доски & файлы для ядра ?
(Конечно, было бы неплохо, если бы модификация была сделана в некоторых файлах в моей папке с добавленным вариантом вместо изменения файлов основных
здесь есть предложение от Роджера -> ViewTopic.PHP?P = 13842#P13842
Чтобы изменить boards_setup.CPP, поэтому я попытался вставить что -то подобное
это STM32F103VET6, и я хочу использовать Rogers Core
Как лучше всего внедрить его в мои дополнительные определения доски & файлы для ядра ?
(Конечно, было бы неплохо, если бы модификация была сделана в некоторых файлах в моей папке с добавленным вариантом вместо изменения файлов основных
здесь есть предложение от Роджера -> ViewTopic.PHP?P = 13842#P13842
Чтобы изменить boards_setup.CPP, поэтому я попытался вставить что -то подобное
#ifdef XTAL16M
// 16MHz crystal (HSE)
// in this case we set additionally the Bit 17 (PLLXTPRE=1) => then HSE clock is divided by 2 before PLL entry
static stm32f1_rcc_pll_data pll_data = {BOARD_RCC_PLLMUL | (0x1 << 17) };
#else
// default 8MHz crystal
static stm32f1_rcc_pll_data pll_data = {BOARD_RCC_PLLMUL};
#endif
Пито
Солнце 31 декабря 2017 г., 17:03
Это может работать, когда вы делаете в Arduino_stm32/STM32F1/Cores/Maple/Libmaple/RCC_F1.C линия 107:
RCC_BASE->CFGR = pll_src | pll_mul | (0x3<<22) | (0x1<<17);
Rogerclark
Солнце 31 декабря 2017 г. 8:18 вечера
Как говорит Пито.
Вам нужно только изменить множитель часов PLL
Если вы посмотрите на вариант GD32 (который больше не является опцией в меню, но код все еще включен), он использовал кристалл 12 МГц, так что вы можете сравнить с чем -то вроде общего варианта STM32C8, а не разница в настройках PLL
Вам нужно только изменить множитель часов PLL
Если вы посмотрите на вариант GD32 (который больше не является опцией в меню, но код все еще включен), он использовал кристалл 12 МГц, так что вы можете сравнить с чем -то вроде общего варианта STM32C8, а не разница в настройках PLL
Пито
Пн, 01 января 2018 г., 2:59
PF 2018!
72/16 = 4.5 Таким образом, единственный способ - установить ПРИ -ПРИКЛАР, как указано выше (бит 17). Множество целочисленных PLL не будут работать на 72 МГц и 16 МГц xtal.
72/16 = 4.5 Таким образом, единственный способ - установить ПРИ -ПРИКЛАР, как указано выше (бит 17). Множество целочисленных PLL не будут работать на 72 МГц и 16 МГц xtal.
Rogerclark
Пн, 01 января 2018 г., 3:06 утра
[Пито - Пн, 01 января 2018 2:59] - PF 2018!Хороший момент
72/16 = 4.5 Таким образом, единственный способ - установить ПРИ -ПРИКЛАР, как указано выше (бит 17). Множество целочисленных PLL не будут работать на 72 МГц и 16 МГц xtal.
3 X PLL можно использовать, чтобы дать 48 МГц и при этом поддерживать USB
Альтернатива The OP должен будет использовать 64 МГц, чтобы оставаться в пределах спецификации или 80 МГц, чтобы работать прямо за пределами спецификации
(В нормальных внутренних условиях я обнаружил, что 128 МГц работал нормально)
Но для всех этих вариантов необходимо изменить F_CPU, а на частотах, отличных от 72 МГц, не было тщательно протестировано.
КСТАТИ. Я помню, как кто -то еще разместил подобный вопрос, но я думаю, что они могли использовать еще более высокую частоту кристалл
Черная бригада
Пн, 01 января 2018 10:00 утра
[Пито - Sun 31 декабря 2017 г., 17:03] -
Это может работать, когда вы делаете в Arduino_stm32/STM32F1/Cores/Maple/Libmaple/RCC_F1.C линия 107:
RCC_BASE->CFGR = pll_src | pll_mul | (0x3<<22) | (0x1<<17);
Пито
Пн, 01 января 2018 г., 11:52
К сожалению, тогда я буду менять основные файлы, это то, чего я хотел избежать ...
(Было бы лучше, если бы модификация может быть сделана в некоторых из файлов в моей папке с добавленным вариантом вместо изменений файлов основных Есть RCC_CFGR_PLLXTPRE, определенный в RCC F1.H, но не используется.
Он должен быть добавлен в ядро, чтобы использовать его в вашем варианте (boards_setup.CPP), кажется..
(Было бы лучше, если бы модификация может быть сделана в некоторых из файлов в моей папке с добавленным вариантом вместо изменений файлов основных Есть RCC_CFGR_PLLXTPRE, определенный в RCC F1.H, но не используется.
Он должен быть добавлен в ядро, чтобы использовать его в вашем варианте (boards_setup.CPP), кажется..
Черная бригада
Пн, 01 января 2018 г., 19:11
Пито написал:Это может работать, когда вы делаете в Arduino_stm32/STM32F1/Cores/Maple/Libmaple/RCC_F1.C линия 107:
Mrburnette
Пн, 01 января 2018 г., 19:34
[Черная бригада - Пн, 01 января 2018 г., 19:11] - Как вы думаете, это может быть добавлено в ядро?... Почему ядро должно быть изменено для одноразовой инициативы?
Вопрос был бы, если бы форум хотел полностью поддержать ссылочную доску, то, как мы делаем черные, синие, красные и кленовые мини.
Пример: http: // wiki.STM32duino.com/index.PHP?title = blue_pill
Я рад, что у вас функционирует ваш блок с кристаллом 16 МГц, и этот поток документирует, как вы достигли решения. Пожалуйста, не стесняйтесь просить привилегии вики и документировать перезагрузку. Тем не менее, основные изменения вводят много проблем даже для вещей, которые кажутся слишком простыми, как можно увидеть из количества бросков в прошлом году.
Моя рекомендация состоит в том, чтобы использовать Post Note-It, чтобы напомнить себе о том, чтобы внести локальный изменение в вашей системе каждый раз, когда вы обновляете свой компьютер с Master GitHub.
Луча
Черная бригада
Пн, 01 января 2018 г., 21:10
Mrburnette написал:Почему ядро должно быть изменено для одноразовой инициативы ?
Mrburnette
Пн, 01 января 2018 11:41
Черная бригада написал: ↑Пн, 01 января 2018 г., 21:10
ZMEMW16
Вторник 02 января 2018 12:04
Можем ли мы изменить это и спросить, как сделать это таким ?
Направить его из ядра ?
Может ли это сделать таким образом, чтобы ядра использовал c.F Связанная библиотека, построенная просто на кристаллической частоте.
Новый год, новые идеи, хорошо, может быть
Стивен
Направить его из ядра ?
Может ли это сделать таким образом, чтобы ядра использовал c.F Связанная библиотека, построенная просто на кристаллической частоте.
Новый год, новые идеи, хорошо, может быть
Стивен
Черная бригада
Ср. 03 января 2018 г. 9:52 утра
[Mrburnette - Пн. 1 января 2018 г. 23:41] - абсолютно разумно, что все участники понимают, что этот форум является частным предприятием, а не коммерческим, спонсируется и поддерживается по существу одним человеком, который стремится «иметь жизнь» за пределами форум.ага,
Я абсолютно согласен и понимаю, что *Thumbsup *
[Mrburnette - Пн. 1 января 2018 г., 23:41] - или, создайте параллельную филиал GitHub и синхронизирована только по мере необходимости...да, ты прав, я уже сделал это.
(Хотя я не имею никаких знаний об использовании GIT/GitHub правильно )
.
. ZMEMW16 написал:Можем ли мы изменить это и спросить, как сделать это таким ?
Направить его из ядра ?
Пито
Ср. 03 января 2018 г. 10:52
Это будет правильным способом (не нужно касаться ядра) ...
В \ stm32f1 \ variants \ generic_stm32f103v \ wirish \ boards.CPP есть (строка 129)
// Configure AHBx, APBx, etc. prescalers and the main PLL.
wirish::priv::board_setup_clock_prescalers();
rcc_configure_pll(&wirish::priv::w_board_pll_cfg);
Черная бригада
Ср. 03 января 2018 г. 13:18
Ааа, да, это может сработать
Я проверю это ...
Я проверю это ...
Черная бригада
Чт, 04 января 2018 13:13
Пито, я проверил это, и это работает
[Редактировать] Есть только одна дополнительная линия,
Итак, окончательное решение (в "..\ Stm32f1 \ variants \ your_board \ wirish \ boards.CPP "):
[Редактировать] Есть только одна дополнительная линия,
Итак, окончательное решение (в "..\ Stm32f1 \ variants \ your_board \ wirish \ boards.CPP "):
// Configure AHBx, APBx, etc. prescalers and the main PLL.
wirish::priv::board_setup_clock_prescalers();
rcc_configure_pll(&wirish::priv::w_board_pll_cfg);
#ifdef XTAL16M
// 16MHz crystal (HSE)
// in this case we additionally set the Bit 17 (PLLXTPRE=1) => then HSE clock is divided by 2 before PLL entry
RCC_BASE->CFGR |= RCC_CFGR_PLLXTPRE;
#endif
Пито
Чт, 04 января 2018 г., 13:34
uint32 cfgr = rcc_base->CFGR;
Rcc_base->Cfgr = cfgr | RCC_CFGR_PLLXTPRE;
Rcc_base->Cfgr = cfgr | RCC_CFGR_PLLXTPRE;
RCC_BASE->CFGR |= RCC_CFGR_PLLXTPRE;
Черная бригада
Чт, 04 января 2018 13:51
Да, это также работает (но без места между '|' и '=' (была опечатка в вашем посте выше)),
Я отредактировал свой пост выше соответственно ...
Я отредактировал свой пост выше соответственно ...
Пито
Чт, 04 января 2018 г., 13:55
Теперь следующим шагом является создание дерева решений для xTals 8/10/12/16/20/25 МГц (настройка множителя в Prescaler и OFF и PLL), добавьте опцию меню XTAL, и вы можете выдать пиар
Ходидас11
Сб 27 января 2018 г., 5:33 утра
Привет
Я добавил эту линию на 16 МГц, она сработала
Rcc_base->Cfgr | = rcc_cfgr_pllxtpre;
Можете ли вы помочь на 12 МГц, так как я хочу запустить свою систему на ней.
Я добавил эту линию на 16 МГц, она сработала
Rcc_base->Cfgr | = rcc_cfgr_pllxtpre;
Можете ли вы помочь на 12 МГц, так как я хочу запустить свою систему на ней.
Ходидас11
Сб 27 января 2018 г., 7:07
Привет
Сделано с 12 МГц также,
Нашел помощь от https: // github.com/rogerclarkmelbourne/ ... _настраивать.CPP
Я наблюдал, как мой множитель PLL был на 3, который дает периферийные устройства так 36 МГц
Я сделал множитель PLL как 2, поэтому PLL работает на 24 МГц сейчас. И сейчас работает все периферийные устройства сейчас.
Сделано с 12 МГц также,
Нашел помощь от https: // github.com/rogerclarkmelbourne/ ... _настраивать.CPP
Я наблюдал, как мой множитель PLL был на 3, который дает периферийные устройства так 36 МГц
Я сделал множитель PLL как 2, поэтому PLL работает на 24 МГц сейчас. И сейчас работает все периферийные устройства сейчас.
Rogerclark
Сб 27 января 2018 г. 11:10
PLL настроен на умножение на 9 обычно.
Вам нужно будет умножить на 6
Я не уверен, что фактические значения, которые вы записываете в регистр управления PLL для любого множителя PLL
Вам нужно будет умножить на 6
Я не уверен, что фактические значения, которые вы записываете в регистр управления PLL для любого множителя PLL