Покупка STM32.. Некоторые советы нужны

michael_l
Вторник 25 августа 2015 13:03
Всем привет! Приятно найти этот форум..

В настоящее время я работаю с Arduino Nano и сделал «небольшой проект». Но у меня заканчивается вспышка..

Мои проблемы: Flash Space закончилось, и я хочу заменить Softwareserial на реальное оборудование UART. Мне нужно 2 uart: s.
В Arduino я использую: Acdentinterrup. OLED LIB может быть любым другим, так как я отображаю только базовый текст

Отладка HW для работы с Arduino Nano невозможно (или не легко) и включает в себя покупку Avrdragon и некоторые моды для Nano.. Итак, я хотел бы попробовать это с STM32.

Какую доску вы предлагаете, если я хочу:


1. иметь доску с поддержкой того, что использует мой проект, и отладки HW. Я посмотрел на Nucleo F103RB, который имеет Stlink
2. наименьший коэффициент размера с минимум 2 HW UART. Maple Mini ?

Другие вопросы:

Могу ли я отладить код в STM32, написанный с Arduino Libs пошаговым в IDE ? Трудно ли настроить, и это работает как отладка с ПК.. я.эн. Нажмите одну кнопку. Я не боюсь нажать две кнопки, но ... Вы поняли идею :-)


Спасибо!

Mrburnette
Вторник 25 августа 2015 14:00
Мы (форум) обычно рекомендуем Maple Mini для вашего 1 -го проекта STM32, потому что все, кажется, работает должным образом, а документация очень близко следует за доской. Однако, если вам нужно больше ввода/вывода или более 20 тыс. Срам, то вы должны перемещаться вверх по пищевой цепи.

Чтобы понять отладку, вам нужно будет просмотреть некоторые статьи на форуме:
https: // www.Google.com/webhp?SourceId = c ... 2duino.компонент
Я бы не стал помещать BMP в «легкую» категорию, но это не так уж сложно. Если вы довольно хороши в Arduino, вы можете обнаружить, что просто используя серийный.print () - лучший подход, так как отладка может быть сложной для сложного применения... или, чтобы перефразировать: сложность отладки следует за сложностью применения.

Все На этом форуме индексируется Google, поэтому поиск с использованием сайта: STM32Duino.com » - отличный способ быстро найти вещи.

Посмотрите на несколько моих простых (примеров) Maple Mini Projects STM32, если вам нравится посмотреть, соответствуют ли они вашей потребности:
https: // www.хакерс.io/rayburne


Луча

Fredbox
Вторник 25 августа 2015 г. 15:43
Maple Mini немного длиннее нано. Нано имеет 15 булавок вниз с каждой стороны, а Maple Mini имеет 20.
Они оба имеют одинаковый разъем Mini-USB и хорошо вписываются на макет.

В дополнение к порту USB есть три аппаратных последовательных порта.
Видеть ViewTopic.PHP?F = 27&t = 68 Для номеров PIN.

Maple Mini напоминает мне о Леонардо в семье Ардуино.
Для базовой работы устройства необходимо много накладных расходов, поэтому минимальный эскиз составляет около 15 тыс., А V2 загрузчика занимает еще 8K. Это все еще оставляет 100 тыс. Доступно для вашего приложения.

Другое дело, что Maple Mini 3.3 В, пока нано 5 В. Вам нужно убедиться, что любые внешние устройства совместимы с более низким напряжением.

michael_l
Вторник 25 августа 2015 г., 19:33
Спасибо Рэй и Фредбокс!'

Рэй: У вас есть несколько интересных проектов для STM32 - помогает мне начать. Также приятно видеть, что вы используете Arduino Libs!

Похоже, я закажу Maple Mini и Nucleo-F103RB, чтобы начать с. Это значительное улучшение для меня, так как Maple Mini имеет 3 порта USART по сравнению с 1 Nano 1. Два для коммунируемых и один для отладки. Это здорово - простая серийная отладка работает в 99% случаев.

BMP выглядит мило, да. Наверное, я хотел бы сначала оценить бесплатные альтернативы. Я только что прочитал статью о OpenOcd и настроите ее с Eclipse: http: // www.Carminenoviello.com/en/2015/ ... EO-Part-2/ <-- Я нахожу это довольно легким.

Есть ли другие альтернативы, кроме BMP и OpenOCD. РЕДАКТИРОВАТЬ: Извините, если это звучит как глупый вопрос, но это обязательно необходимо Openocd. Что он обеспечивает по сравнению с утилитами STLINK ?

Mrburnette
Чт 27 августа 2015 г. 12:30
michael_l написал: <...>
Рэй: У вас есть несколько интересных проектов для STM32 - помогает мне начать. Также приятно видеть, что вы используете Arduino Libs!
<...>
Есть ли другие альтернативы, кроме BMP и OpenOCD. РЕДАКТИРОВАТЬ: Извините, если это звучит как глупый вопрос, но это обязательно необходимо Openocd. Что он обеспечивает по сравнению с утилитами STLINK ?

Rogerclark
Чт 27 августа 2015 г., 21:31
Nucleo F103 не обязательно лучший вариант.

Если вы хотите получить лучшую доску на платы серии F103RC или F103V или F103Z.

RB намного ближе к функциональности CB, чем RC.

Я помню, как @Madias опубликовал ссылку на действительно хорошую доску RC несколько недель назад.

Я бы посоветовал вам посмотреть, сможете ли вы найти его пост и познакомить эту доску в предпочтении Nucleo

Мадиас
Чт 27 августа 2015 г., 21:40
Между тем (через более чем полгода я начал с поддержки Nucleo), я бы сказал: Nucleo F103RB скучно. Есть действительно лучшие доски. Только интересные вещи (почти...) Совместимые с Arduino заголовки и бесплатный ST-Link 2.1 единица.
Моя рекомендация для людей, которым нужна «большая», все включающая плата: ViewTopic.PHP?F = 28&t = 490 --> Ссылка, которую вспомнил Роджер :)

Rogerclark
Чт 27 августа 2015 г., 22:15
Спасибо, Матиас

victor_pv
Пт 28 августа 2015 г. 12:04
Мадиас написал:Между тем (через более чем полгода я начал с поддержки Nucleo), я бы сказал: Nucleo F103RB скучно. Есть действительно лучшие доски. Только интересные вещи (почти...) Совместимые с Arduino заголовки и бесплатный ST-Link 2.1 единица.
Моя рекомендация для людей, которым нужна «большая», все включающая плата: ViewTopic.PHP?F = 28&t = 490 --> Ссылка, которую вспомнил Роджер :)

michael_l
Пт 28 августа 2015 г., 13:46
Мадиас написал:Между тем (через более чем полгода я начал с поддержки Nucleo), я бы сказал: Nucleo F103RB скучно. Есть действительно лучшие доски. Только интересные вещи (почти...) Совместимые с Arduino заголовки и бесплатный ST-Link 2.1 единица.
Моя рекомендация для людей, которым нужна «большая», все включающая плата: ViewTopic.PHP?F = 28&t = 490 --> Ссылка, которую вспомнил Роджер :)

Martinayotte
Пт 28 августа 2015 г. 14:46
michael_l написал:Есть ли у этого 103vet6 ST-Link V2 на борту ?

Стевех
Пт 28 августа 2015 г., 17:25
michael_l написал:Мадиас написал:Между тем (через более чем полгода я начал с поддержки Nucleo), я бы сказал: Nucleo F103RB скучно. Есть действительно лучшие доски. Только интересные вещи (почти...) Совместимые с Arduino заголовки и бесплатный ST-Link 2.1 единица.
Моя рекомендация для людей, которым нужна «большая», все включающая плата: ViewTopic.PHP?F = 28&t = 490 --> Ссылка, которую вспомнил Роджер :)

Мадиас
Пт 28 августа 2015 г., 17:41
Есть ли у этого 103vet6 ST-Link V2 на борту ? Майкл: Пожалуйста, прочитайте мою ссылку о 103VET6 осторожно:
У него нет ST-Link, но второй USB-заглушка, он подключен к Serial1 через USB-сериал-конвертер. Таким образом, вы можете полностью отладить устройство через сериал.
Если вы собираетесь экспериментировать с STM32, внешняя ST-Link-это «должно быть», они так дешевы и полезны! :)

Rogerclark
Пт 28 августа 2015 г., 21:24
Имхо, вам лучше с внешней платой Stlink, так как вы можете использовать булавки SWD для других вещей позже.

Обратите внимание, что, хотя можно отладить с помощью Stlink, мы не смогли найти графический интерфейс для Windows для GDB, поэтому в Windows вам нужно использовать отладчик командной строки.

На Linux и, возможно, OSX, GDB GDB GUI, возможно, является вашим лучшим вариантом.

michael_l
Сб 29 августа 2015 г. 6:56 утра
Спасибо за помощь!

Я только что купил R103RB Nucleo, потому что они были доступны в местном магазине и не хотели ждать много недель, пока Maple Mini. Успешно закончила настройку для Arduino IDE. Компиляция и загрузка работает. Очень хорошо. Теперь пытаюсь найти правильный GPIO для этой доски 103RB-нуклео, чтобы получить мигание работы : D

РЕДАКТИРОВАТЬ: По какой -то причине я не вижу мигающих светодиодов. Есть ли что -то не так с номерами пин -пин (PA5, PB13). Я имею в виду

Руководство пользователя: http: // www.ул.com/st-web-ui/static/acti ... к, 124 556
bool CLedTask::handleEvent(Event& event) { switch(event.event) { case EventID::LedTaskLedOn: digitalWrite(BOARD_LED_PIN, HIGH); event.handle_id = EHandleID::LedTask; event.event = EventID::LedTaskLedOff; WaitMgr.await(ledduration,event,false); break; case EventID::LedTaskLedOff: digitalWrite(BOARD_LED_PIN, LOW); event.handle_id = EHandleID::LedTask; event.event = EventID::LedTaskLedOn; WaitMgr.await(ledduration,event,false); break; default: break; } return true; }

Мадиас
Сб 29 августа 2015 г. 8:03
Майкл, вы читали все мои документы для нуклео F103RB?
https: // github.com/rogerclarkmelbourne/ ... /infos_pdf

michael_l
Сб 29 августа 2015 г. 8:49
Мадиас написал:Майкл, вы читали все мои документы для нуклео F103RB?
https: // github.com/rogerclarkmelbourne/ ... /infos_pdf

Мадиас
Сб 29 августа 2015 г., 9:37
Я думаю, что есть небольшая ошибка, так что ты прав. Первый вопрос - что эти модификации делают ? Сначала:
Почти все совместимые с STM32DUINO Платы имеют свой собственный генератор 8 МГц. К сожалению, ST сохранил несколько центов и не соответствовал 8 МГц OSC («HSE») на главном MCU . Может быть, есть некоторые возможности для настройки (неточного!) высокоскоростной OSC в файле конфигурации. Но я этого не сделаю. Самый простой способ-«Highjack» OSC 8 МГц из блока ST-Link (тот, который над синей кнопкой) и использовать его как HSE. Это можно сделать с
- Desolder 0-Ohm-Resistors на SB55 и SB54 (справа внизу), чтобы сократить трассировку.
- Припаять маленький мост на: SB16 (MCO) (вверху слева) и SB50 (нижняя середина)
Так что это единственный необходимый шаг, используя ядро ​​для STM32duino, и вы получите свой первый магнитный рисунок!

Все остальные моды предназначены для маршрутизации серийных материалов. Может тебе это нравится - или нет.

Только изменение OSC не повредит вашему ядрео в других IDE - наоборот: теперь у вас есть выбор использовать точный основной HSE OSC!

michael_l
Сб 29 августа 2015 г. 9:54
Мадиас написал:Я думаю, что есть небольшая ошибка, так что ты прав. Первый вопрос - что эти модификации делают ? Сначала:
Почти все совместимые с STM32DUINO Платы имеют свой собственный генератор 8 МГц. К сожалению, ST сохранил несколько центов и не соответствовал 8 МГц OSC («HSE») на главном MCU . Может быть, есть некоторые возможности для настройки (неточного!) высокоскоростной OSC в файле конфигурации. Но я этого не сделаю. Самый простой способ-«Highjack» OSC 8 МГц из блока ST-Link (тот, который над синей кнопкой) и использовать его как HSE. Это можно сделать с
- Desolder 0-Ohm-Resistors на SB55 и SB54 (справа внизу), чтобы сократить трассировку.
- Припаять маленький мост на: SB16 (MCO) (вверху слева) и SB50 (нижняя середина)
Так что это единственный необходимый шаг, используя ядро ​​для STM32duino, и вы получите свой первый магнитный рисунок!

Все остальные моды предназначены для маршрутизации серийных материалов. Может тебе это нравится - или нет.

Только изменение OSC не повредит вашему ядрео в других IDE - наоборот: теперь у вас есть выбор использовать точный основной HSE OSC!

Мадиас
Сб 29 августа 2015 г., 10:12
НЕТ! (Следуя)!!!

ОК: Вам просто нужно закрыть каждый из двух джемпер с небольшим проводом - см. Фото:

Изображение

michael_l
Сб 29 августа 2015 10:27 утра
Мадиас написал:НЕТ! (Следуя)!!!

ОК: Вам просто нужно закрыть каждый из двух джемпер с небольшим проводом - см. Фото:

Изображение

Мадиас
Сб 29 августа 2015 10:38 утра
Да, это серийный мод. Но не используйте его пока.
Сначала используйте мой тестовый эскиз, чтобы выяснить, что подключено «последовательный», если мод не установлен (должен быть «serial1» или «serial2)

stm32f1-----------cmsis | -----hal

michael_l
Сб 29 августа 2015 г., 11:23
Мадиас написал:Да, это серийный мод. Но не используйте его пока.
Сначала используйте мой тестовый эскиз, чтобы выяснить, что подключено «последовательный», если мод не установлен (должен быть «serial1» или «serial2)

#include #define LED PB1 int c=0; void setup() { pinMode(LED,OUTPUT); Serial.begin(115200); } void loop() { Serial.println(c++); HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET); delay(100); HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET); delay(500); }

michael_l
Сб 29 августа 2015 12:28
ОК, попробовал ваш эскиз. Вот результаты.

D8/PA9 --> Serial2
D31/PC10 --> Serial0
D0/PA3 --> Нет вывода (потому что серийный HW мод не сделан :-)

Мадиас
Сб 29 августа 2015 12:30
Таким образом, ваш USB-сериал показан как в мониторе Arduino?
РЕДАКТИРОВАТЬ: Если это не показано как "serial0", вы можете изменить доску Nucleo.Файл CPP:
Arduino/armware/arduino_stm32/stm32f1/variants/ucleo_f103rb
С последними записями (прокручивать вниз) вы можете установить последовательный порт, показанный как USB-сериал (serial0): #define HAL_MODULE_ENABLED #define HAL_ADC_MODULE_ENABLED //#define HAL_CAN_MODULE_ENABLED //#define HAL_CEC_MODULE_ENABLED //#define HAL_CORTEX_MODULE_ENABLED //#define HAL_CRC_MODULE_ENABLED //#define HAL_DAC_MODULE_ENABLED //#define HAL_DMA_MODULE_ENABLED //#define HAL_ETH_MODULE_ENABLED //#define HAL_FLASH_MODULE_ENABLED #define HAL_GPIO_MODULE_ENABLED #define HAL_I2C_MODULE_ENABLED //#define HAL_I2S_MODULE_ENABLED //#define HAL_IRDA_MODULE_ENABLED //#define HAL_IWDG_MODULE_ENABLED //#define HAL_NOR_MODULE_ENABLED //#define HAL_NAND_MODULE_ENABLED //#define HAL_PCCARD_MODULE_ENABLED #define HAL_PCD_MODULE_ENABLED //#define HAL_HCD_MODULE_ENABLED //#define HAL_PWR_MODULE_ENABLED //#define HAL_RCC_MODULE_ENABLED //#define HAL_RTC_MODULE_ENABLED //#define HAL_SD_MODULE_ENABLED //#define HAL_SDRAM_MODULE_ENABLED //#define HAL_SMARTCARD_MODULE_ENABLED #define HAL_SPI_MODULE_ENABLED //#define HAL_SRAM_MODULE_ENABLED #define HAL_TIM_MODULE_ENABLED #define HAL_UART_MODULE_ENABLED //#define HAL_USART_MODULE_ENABLED //#define HAL_WWDG_MODULE_ENABLED #define HAL_CORTEX_MODULE_ENABLED #define HAL_DMA_MODULE_ENABLED #define HAL_FLASH_MODULE_ENABLED #define HAL_GPIO_MODULE_ENABLED #define HAL_PWR_MODULE_ENABLED #define HAL_RCC_MODULE_ENABLED

michael_l
Сб 29 августа 2015 12:33
Мадиас написал:Таким образом, ваш USB-сериал показан как в мониторе Arduino?

Мадиас
Сб 29 августа 2015 12:35
Смотрите мою редактирующую запись! :)

michael_l
Сб 29 августа 2015 12:49
Мадиас написал:Смотрите мою редактирующую запись! :)

Мадиас
Сб 29 августа 2015 г. 14:52
как в
доска.CPP C:\Users\\STM32Cube\Repository

michael_l
Сб 29 августа 2015 г., 17:38
Мадиас написал:как в
доска.CPP SerialUSB.print("Leitura ADC: \t"); SerialUSB.println(analogRead(PA1));

Sheepdoll
Сб 29 августа 2015 г., 17:54
Мадиас написал:как в
доска.CPP /* * Watchdog Sleep Example * Demonstrate the Watchdog and Sleep Functions * LED on digital pin 0 * * KHM 2008 / Lab3/ Martin Nawrath [email protected] * Kunsthochschule fuer Medien Koeln * Academy of Media Arts Cologne * * Modified on 5 Feb 2011 by InsideGadgets (www.insidegadgets.com) * to suit the ATtiny85 and removed the cbi( MCUCR,SE ) section * in setup() to match the Atmel datasheet recommendations */ #include #include #ifndef cbi #define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) #endif #ifndef sbi #define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) #endif int pinLed = 0; volatile boolean f_wdt = 1; void setup(){ pinMode(pinLed,OUTPUT); setup_watchdog(8); // approximately 4 seconds sleep } void loop(){ if (f_wdt==1) { // wait for timed out watchdog / flag is set when a watchdog timeout occurs f_wdt=0; // reset flag digitalWrite(pinLed,HIGH); // let led blink delay(1000); digitalWrite(pinLed,LOW); pinMode(pinLed,INPUT); // set all used port to intput to save power system_sleep(); pinMode(pinLed,OUTPUT); // set all ports into state before sleep } } // set system into the sleep state // system wakes up when wtchdog is timed out void system_sleep() { cbi(ADCSRA,ADEN); // switch Analog to Digitalconverter OFF set_sleep_mode(SLEEP_MODE_PWR_DOWN); // sleep mode is set here sleep_enable(); sleep_mode(); // System sleeps here sleep_disable(); // System continues execution here when watchdog timed out sbi(ADCSRA,ADEN); // switch Analog to Digitalconverter ON } // 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms,5=500ms // 6=1 sec,7=2 sec, 8=4 sec, 9= 8sec void setup_watchdog(int ii) { byte bb; int ww; if (ii > 9 ) ii=9; bb=ii & 7; if (ii > 7) bb|= (1<<5); bb|= (1<

Maple Mini + ESP8266 Любой успех?

STM8S003F3P6 - ESP8266 ESP -14