Nucleo-F030R8 Поддержка ARDUINO_CORE_STM32

Рик Кимбалл
Пн 12 июня 2017 г., 17:29
Я взял первый проход, добавив новый вариант с новым комбинированным ядром. Доска, которую я использую,-это Nucleo-F030R8, у нее меньший чип Cortex-M0, который имеет только 64 тыс. Флэш и 8 тыс. ОЗУ.

Вы можете найти код здесь:
https: // github.com/rickkimball/arduino_core_stm32

Если вы выполните шаги, которые я изложил в этом посте http: // www.STM32duino.com/viewtopic.PHP ... 172#P29377 (Извините за угнание конца вашей ветки @joelcrouch), вы можете увидеть, как я создал файлы в каталоге Variant/ucleo_f030R8.

Чтобы сделать это, мне пришлось взломать STM32/Analog.C, чтобы избежать всех функций ЦАП. Это может быть лучше. Я просто хотел выбросить это здесь, чтобы другие могли попробовать это.

Одно изменение, которое я сделал, потому что этот чип имеет такое небольшое количество оперативной памяти, я ограничил вариант одним серийным портом. Вы можете условно включить Serial1, если добавите определение в плату.txt file (-denable_serial1). Это изменение сокращает использование оперативной памяти, не добавив буфер USART, используемый вторым портом Serial1. Вы, вероятно, все равно не будете использовать это большую часть времени. Сериал подключен к VCP платы Nucleo и подключен к Cortex-M0 на USART2 (PA2/PA3). См. UM1724 для картирования штифта.

Я решил сделать осциллятор по умолчанию высокоскоростной внутренней один такта на 48 МГц с помощью PLL. Я играл со значением значения внутреннего генератора и измерил его с помощью применения. Значение 15 дает наиболее точные часы 48 МГц для меня. Вам, возможно, придется отрегулировать это, если ваша тактовая скорость не подходит.

https: // github.com/rickkimball/arduino_ ... Т.CPP#L152

Вы можете измерить тактовую скорость, добавив эту строку ниже в функцию setup (). Затем измерьте PA8 с областью применения, чтобы узнать свою реальную частоту Sysclk. HAL_RCC_MCOConfig(RCC_MCO, RCC_MCO1SOURCE_SYSCLK, RCC_MCODIV_1);

fpistm
Пн 12 июня 2017 г. 9:36 вечера
Привет, Рик,

Спасибо за ваш отзыв.
Я сделал запрос на то, чтобы исправить, когда DAC недоступен:
https: // github.com/stm32duino/arduino_c ... 32/тяга/28

Я также создаю вариант для Nucleo F030R8:
https: // github.com/stm32duino/arduino_c ... 32/тяга/29

Одна странная вещь, точка горы моей доски называется "node_f030r8".

О вашем варианте, в периферических.C, лучше всего сохранить только одно определение PIN -кода для той же функции (комментируя): {PA7, TIM14, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_TIM14, 1, 0)}, // TIM14_CH1 {PA7, TIM17, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_TIM17, 1, 0)}, // TIM17_CH1 {PA7, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM1, 1, 1)}, // TIM1_CH1N {PA7, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM3, 2, 0)}, // TIM3_CH2

Рик Кимбалл
Вт 13 июня 2017 г. 14:26
Fpistm написал:...
Одна странная вещь, точка горы моей доски называется "node_f030r8".

fpistm
Вт 13 июня 2017 г. 14:36
Рик Кимбалл написал: Может быть, нам следует изменить приложение Massstoragepopy, чтобы сначала попробовать NODE_XXXX, и если оно не найдено, то ищите ядра?

Рик Кимбалл
Вт 13 июня 2017 г. 14:57
Fpistm написал:Рик Кимбалл написал: Может быть, нам следует изменить приложение Massstoragepopy, чтобы сначала попробовать NODE_XXXX, и если оно не найдено, то ищите ядра?

Рик Кимбалл
Вт 13 июня 2017 г. 15:11
Fpistm написал: Рик Кимбалл написал: Как вы собираете подходящий таймер? Это кажется довольно произвольным. Я заметил в вашей версии периферинов.C в случае выше, вы выбрали последнюю запись PA7 с помощью TIM3_CH2 и прокомментировали все остальные.

fpistm
Вт 13 июня 2017 г. 15:31
То же самое для LSUB: $ lsusb -d 0483: -v | head -40 Bus 004 Device 014: ID 0483:374b STMicroelectronics ST-LINK/V2.1 (Nucleo-F103RB) Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 239 Miscellaneous Device bDeviceSubClass 2 ? bDeviceProtocol 1 Interface Association bMaxPacketSize0 64 idVendor 0x0483 STMicroelectronics idProduct 0x374b ST-LINK/V2.1 (Nucleo-F103RB) bcdDevice 1.00 iManufacturer 1 STMicroelectronics iProduct 2 STM32 STLink iSerial 3 0672FF485550755187054539 bNumConfigurations 1

fpistm
Вт 13 июня 2017 г. 15:34
Для этого случая я думаю, что это выбор пользователя/разработчика. Имеет смысл следовать.
Он обеспечивает конфигурацию сопоставления контактов, но ничто не останавливает пользователя использовать еще один таймер.

Рик Кимбалл
Вт 13 июня 2017 г. 16:04
Fpistm написал: Для этикетки у меня есть хорошо "node_f030r8" Вот почему у меня есть это как имя Mount Point. Как у вас есть «нуклео», он использует «нуклео». Это нормально, что я пытаюсь понять, это почему у вас есть этот ярлык.

Рик Кимбалл
Вт 13 июня 2017 г. 16:09
Fpistm написал:Для этого случая я думаю, что это выбор пользователя/разработчика. Имеет смысл следовать.
Он обеспечивает конфигурацию сопоставления контактов, но ничто не останавливает пользователя использовать еще один таймер.

fpistm
Вт 13 июня 2017 г., 17:17
Да, так же, как mbed. Для вашей версии (без комментариев) первый в массиве.
GenpinMap Extract все возможные значения PIN для MCU. Не связан с досками.
Он не мог выбрать, какой из них использует вместо еще одного. Пользователь должен выбрать свои конфигурации.

О узле вы найдете причину.
У меня есть: od -t x1 -c -A x

Рик Кимбалл
Ср 14 июня 2017 г., 2:52
Я бы подумал, что запустить ту же прошивку, что у нас было бы тот же загрузочный сектор. Я предполагаю, что должны быть биты на более новых пересмотрах совета директоров, которые позволяют Stlink Side of Poard знать, какое ядро ​​должно быть. У меня была эта доска долгое время. Это, наверное, один из первых.

fpistm
Ср 14 июня 2017 г., 6:54
Я перенес проблему в репо arduino_tools.
https: // github.com/stm32duino/arduino_tools/weleps/6

Рик Кимбалл
Ср 14 июня 2017 г. 12:21
Из UM1724 написал: "Плата, отмечающая MB1136 C-01, соответствует плате, настроенной как HSE не используется.
Плата, отмечающая MB1136 C-02 (или выше), соответствует плате, настроенной на использование
ST-Link MCO в качестве ввода часов."

fpistm
Ср 14 июня 2017 г. 12:26
Нет Рика.
Это должно быть хорошее улучшение.

fpistm
Пт 16 июня 2017 г. 15:51
Привет, Рик,

У меня есть Massstoragescript:
https: // github.com/stm32duino/arduino_tools/pull/8

Все еще нужно построить двоичный файл для macosx, но это нормально для Linux32/64 и Windows.

Рик Кимбалл
Пт 16 июня 2017 г., 16:11
Спасибо @fpistm отлично работает!