ART_ME

STM32 для чайника

1 914 сообщения в этой теме

В 19.10.2018 в 18:32, mail_robot сказал:

Так что работа на серьезных проектах с серьезными камнями

В 19.10.2018 в 18:32, mail_robot сказал:

Без HAL работа к примеру с USB это чистейшей воды мазохизм.

о есть еще одна тема с тем же холиваром :D а я думал я первый породил этот холивар. конечно крутой камень надо убить крутыми либами для школьников)

47 минут назад, Taicho сказал:

Какую плату взять для начала? Дискавери или Нуклео? Какую из серий?

Честно говоря никогда не понимал нужды в плате. Может потому что я люблю паять) для авр я вообще не брал, там можно на салфетки код написать, и будет работать)

Для стм взял такую, что бы удобно было подключить dht11, nrf24l01, lcd или дисплей 1602a

с головой хватает оттестить, стоит копейки.

а зачем отдавать 100500 рублей за всякие крутые платы? если делать потом девайс то я предпочитаю голый мк впаять. я не представляю девайса в который нужно было бы всунуть огромную плату отладочную.

Но это только мое скромное мнение.

stm32f103c8t6-board.jpg

А, стоп, я немного не уточнил что у меня еще есть макетная плата с дырочками куда я все это втыкиваю. Ну она уже была) Удобно тем что можно еще и микросхемы каки нить воткнуть)

 

 

Вот как раз вчера делал набросок кода для будущего инкубатора) но в инкубатор я плату сувать не буду)

UMh0lUeDSik.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Taicho    1
2 часа назад, DrobyshevAlex сказал:

Честно говоря никогда не понимал нужды в плате.

Ключевые слова в моем сообщении -"для начала"

Разобраться хочу что к чему. Потому что уже голова кругом идет. 

А Ардуино - грубо говоря 3 платы, Уно, Мега и Микро. Все. Выбирай из трех. Есть блокнотик для написания скетчей и прошивки, инфы в нете море, примеров, книг, и тд и тп. Наигрался с ардуино? - стер и пиши на голую Атмегу.

У ST - куча чипов, 100500 плат, 100500 IDE, Cube, RTOS, HAL, CMSIS - че к чему вообще? Инфы толковой нет, все собирается по крупицам из 100500 всяких референс мануалов.

 

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

Поделиться сообщением


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

Это и было для начало, я сам только неделю как начал рыть стм. Я не понимаю нужды в разных мк, код может быть переносимым, а регистры подправите.

19 минут назад, Taicho сказал:

У ST - куча чипов, 100500 плат, 100500 IDE, Cube, RTOS, HAL, CMSIS - че к чему вообще?

А Вы собираетесь на всех чипах платы купить?

Про IDE и HAL можно почитать тут :D

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Taicho    1

Все в духе российских форумов.

Сам ничего пока еще не знаю но совет дам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
16 минут назад, Taicho сказал:

Все в духе российских форумов.

Сам ничего пока еще не знаю но совет дам.

я так то году в 1991 примерно первую схему спаял, тогда же занялся и программированием. и сейчас работаю программистом.

Деньги Ваши, мне не жалко, по этому купите всех плат по одной если вы такого совета ждали.

 

то что я не работаю по пайке и программированию микросхем, так это потому что программистом обычным проще) я работаю не только на россиян) сидя дома

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

я так то году в 1991 примерно первую схему спаял, тогда же занялся и программированием. и сейчас работаю программистом.

хотя это ни о чем не говорит :D может я тогда и бросил паять :)

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
mail_robot    1 452
1 hour ago, Taicho said:

Сам ничего пока еще не знаю но совет дам.

таких тут хватает. С вашей стороны надо просто задать правильные вопросы, и внимательно выслушать ответы

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
54 минуты назад, mail_robot сказал:

С вашей стороны надо просто задать правильные вопросы, и внимательно выслушать ответы

полностью согласен) а тот тут хватает еще тех кто на оборот очень много знает :D

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
my504    369
17 часов назад, Taicho сказал:

У ST - куча чипов, 100500 плат, 100500 IDE, Cube, RTOS, HAL, CMSIS - че к чему вообще? Инфы толковой нет, все собирается по крупицам из 100500 всяких референс мануалов.

Референс мануал для семейства ТОЛЬКО ОДИН.

То есть для работы с выбранным МК, строго говоря, необходимо и достаточно всего ТРЕХ документов - даташита, референсного мануала на семейство и эрраты на этот МК.

Поскольку ARM по архитектуре и возможностям много богаче АВР, то и количество инструментов для написания кода так же гораздо больше.  Ну а среду разработки так же не запрещено создавать разным компаниям,  поскольку ядро ARM собственно к ST имеет косвенное отношение.

Поделиться сообщением


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

Изучаю сейчас STM32F769NI(discovery), появилось много проблем, самая непонятная проблема это работа АЦП, пытаюсь PA6 использовать как АЦП, без прерываний, без ДМА,  без континиуса, без FREERTOS, запуск по софтстарту, вот инициализация, как для регулярного, так и для инжекторного канала, но не так не так не работает, точнее как, показания 15-20мВ, пробовал HALом там значения наоборот -19000-60000тыс. показания, тоже странно. Так же вопрос как использовать прерывания в FREERTOS, использую прерывание на прием по ЮАРТ, делал просто прием данных во вторую задачу, а в первой обрабатывал tcp, но думаю что это не правильно, а использование стандартной NVIC_EnableIRQ(USART6_IRQn); USART6_IRQHandler нее работает. Так же интересует дисплей который идет с этой платой, из примеров на freertos работает, а вот кто-то пробовал использовать его без freertos? И есть ли смысл настроить FREERTOS регистрами, или FREERTOS, это ж я как понимаю ОС, и ее только кубом и заливают, или файлы подкидывают? И есть ли какое-то описание freertos попроще, а то не совсем все понятно?

Скрытый текст

void ADC_Init_inject()
{ 
RCC->AHB1ENR |=RCC_AHB1ENR_GPIOAEN; //GPIOA clock 
// тактирование ног порта А

GPIOA->MODER |=  GPIO_MODER_MODER6_1|GPIO_MODER_MODER6_0;//PA6 аналоговая функция

RCC->APB2ENR |= RCC_APB2ENR_ADC1EN;// тактированиеАЦП
ADC1->SMPR2 &=~ADC_SMPR2_SMP6_0|ADC_SMPR2_SMP6_1|ADC_SMPR2_SMP6_2;//время преобразования 1-го канал 3
ADC1->JSQR|=ADC_JSQR_JSQ2_1;//номера каналов

ADC1->CR1 = 0;// обнуление флага


ADC1->CR2 |= ADC_CR2_JEXTSEL_3|ADC_CR2_JEXTSEL_2|ADC_CR2_JEXTSEL_1|ADC_CR2_JEXTSEL_0;//|ADC_CR2_DMA;//EXTSEL - перезапуск по soft SWSTART,EXTTRIG без этого не работает

ADC1->CR2 |= ADC_CR2_ADON;// вкл. АЦП 
}




void ADC_Init_regular1()
{ 
RCC->AHB1ENR |=RCC_AHB1ENR_GPIOAEN; //GPIOA clock 
// тактирование ног порта А

GPIOA->MODER |=  GPIO_MODER_MODER6_1|GPIO_MODER_MODER6_0;//PA6 аналоговая функция

RCC->APB2ENR |= RCC_APB2ENR_ADC1EN;// тактированиеАЦП
ADC1->SMPR2 &=~ADC_SMPR2_SMP6_0|ADC_SMPR2_SMP6_1|ADC_SMPR2_SMP6_2;//время преобразования 1-го канал 3
//ADC1->SMPR2 &=~ADC_SMPR2_SMP2_0|ADC_SMPR2_SMP2_1|ADC_SMPR2_SMP2_2;//время преобразования 2-го канал 3

ADC1->SQR3 |=ADC_SQR3_SQ2_1;// номера каналов регулярной группы PA6


ADC1->CR1 = 0;// обнуление флага

ADC1->CR2 |= ADC_CR2_JEXTSEL_3|ADC_CR2_JEXTSEL_2|ADC_CR2_JEXTSEL_1|ADC_CR2_JEXTSEL_0;//|ADC_CR2_DMA;//EXTSEL - перезапуск по soft SWSTART,EXTTRIG без этого не работает

ADC1->CR2 |= ADC_CR2_ADON;// вкл. АЦП
 
}

 uint16_t datavolt=0;

ADC1->CR2 |= ADC_CR2_JSWSTART;
while(!(ADC1->SR & ADC_SR_JEOC)); 
datavolt = ADC1->JDR1/1.26;   

 

ADC1->CR2 |= ADC_CR2_SWSTART;
while(!(ADC1->SR & ADC_SR_EOC)); 
datavolt = ADC1->DR/1.26;   

 

 

Изменено пользователем Электронщик

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Oxford    38

И вы решили сейчас на форуме мне решат все мои проблемы? STM32F769 это уже не для начинающих. Начинать обучение надо с F030 или F103

Совет вместо кучи писанины, опишите конкретную ОДНУ проблему и ее решайте.

Потому что для людей проверка вашего кода занимает время. И если каждый будет такие куски просить проверить мы утонем в этих проверках. А опытные люди только и будут заниматься тем что проверять код начинающих.

Если бы вы были на моем канале я там подробно разложил работу ADC и ее настройка на CMSIS. Вам нужно обучение и тренинги это все занимает время. Ищите обучающие материалы.

 

 

ADC1->SMPR2 &=~ADC_SMPR2_SMP6_0|ADC_SMPR2_SMP6_1|ADC_SMPR2_SMP6_2;//время преобразования 1-го канал 3

Вот это что программирует строка? 3 цикла семплирования для 6 канала? Регистр по умолчанию 0 и для всех каналов настроено 3 цикла. Для увеличения точности нужно увеличивать количество циклов семплирования и программировать так

ADC1->SMPR2  |= ADC_SMPR2_SMP6_0 | ADC_SMPR2_SMP6_1 | ADC_SMPR2_SMP6_2; //480 cycles

ADC1->JSQR |= ADC_JSQR_JSQ2_1; //программирует 16 канал во 2 конверсии. При этом задана 1 конверсия и в первой конверсии запрограммирован 0 канал.

Изучайте ADC с начало полное незнание работы периферии.

 

 

 

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Taicho    1
Цитата

Референс мануал для семейства ТОЛЬКО ОДИН.

А апликейшинов сколько?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Oxford    38

Application Note это уже вторичное это уже вспомогательная документация.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, Электронщик сказал:

Изучаю сейчас STM32F769NI(discovery), появилось много проблем,

Кхе... странно. У меня первой задачей было подключить по интерфейсу dsi экран от нетбука, которых у меня много и даже один целый. Получилось коряво и нежизнеспособно, ширина памяти имеет значение в таких вопросах.

Использование прибываний без ос - оно должно быть в зоне видимости майна. С ос - нужно прочитать соответствующий раздел доков выбранной ос. Там много нюансов, не вижу смысла перепечатывать. С ADC всё намного проще, прерывания от него есть - но использовать нет смысла. Зато у ADC море вариантов запуска, прямо-таки на все случаи жизни. Само ADC прекрасно умеет дёргать dma. А вот у dma уже есть нормальное прерывание - когда всё что требуется уже в памяти.   

Поделиться сообщением


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

Ну я все МК вначале стараюсь по регистрам настроить перефирию, и какие-то маленькие задания сделать для себя, так как начал с АВР, потом СТМ, на СТМ цеплял 1602 по 4 битам, и по I2C, датчики токовый ACS712, DHT11 - 1WIRe дисплей Nokia, дисплей 128*64, дисплей ILI9341(по SPI), радиомодули NRF24, так же подкидывал ESP8266 Q12( на нем веб-сервер) по SPI и UART(+ написал прогу для андроида голосовое управление без нажатия чисто по ключевой фразе), энкодер, ну и соотвественно порты ввода-вывода и внешние прерывания, ну и АЦП, так же по I2C FLASH- память подкидывал, и часы 1307 и 3221, и этого хватает в основном для проектов которые я делал для себя. в принципе 4 серия и 7 похожи, 769 пока что АЦП инжекторные и регулярные каналы настроил(спасибо Oxford направил, так как каждый раз забываю записать как я АЦП настраивал), запустил дисплей на библиотеке BSP из примера, UART на прием по прерыванию и передача, тактирование камня, порты ввода-вывода, LWIP tcp server и к нему на комп написал прогу по приему и сохранению данных в текстовый документ по времени и дате, прощупаю еще SPI и I2C, и займусь более детальным изучением FREERTOS и хочу развернуть свой веб-сервер на 769 попробовать. Смысла  цеплять большие дисплеи, или использовать HDMI с переходником за кучу денег, да и еще использовать сторонний софт для написания изображения, не вижу смысла, с этим камнем, как по мне лучше перефирию обработать СТМкой, а графику и систему на Распберри повесить, ну и связать их к примеру по SPI LAN UART.

Поделиться сообщением


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

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

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

  Разрешено не более 75 смайлов.

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

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

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

Загрузка...

  • Сообщения

    • @kotenok Андрей! Увидел на снимке знакомые места! Всё на карте искал эту базу. Похоже на Гаджиев. Три года вахтовым методом обслуживали две ЕС-1036 и стыковали их с ПК. И это было с 1989-1991. Шли утром на работу, на улице  - 25 градусов, и рукой можно было потрогать лодку! В это время, ( 07.04.1989г )  как раз затонул "Комсомолец".( 42 человека погибло ). Погиб, в основном, из-за бездарности командования, как и его собрат "Курск" ( 12.08.2000г ) Погиб  весь экипаж. Все 118 человек. Некоторые, молодые матросы, только закончившие школу,  не успели пожить! Рано оборвалась их жизнь! И не один адмирал не ответил за это преступление в мирное время! Американцы боялись не качества наших лодок, а их количества. Это и были секретные данные, с которыми нам приходилось работать!
      P.S. Грустно как-то на душе! За всё что творилось, творится и происходит. Близко я к сердцу всё принимаю! 
    • Я так говорю про все, что мне понравилось
    • Определить получится если срисовать схему вручную.
    • Банальщина. Подобное мы писали на заборах лет 35 назад, будучи школьниками. И тоже с глупыми ошибками.
    • Здесь речь не о стабилизации напряжения БП, а о компенсации падения на проводах под нагрузкой. На измерительных проводах ток на порядки меньше, соответственно и падение мизерное, этим можно пренебречь.
      Но, боюсь,, для @Yurec66 всё это будет слишком сложно реализовать. Без обид. Чтобы этот вопрос более не мусолить, предлагаю замерить напряжение имеющегося БП непосредственно на нём и на контактах шуруповёрта, чтобы выяснить, так ли уж много падает на этих конкретных проводах . Под максимальной нагрузкой разумеется.
       
    •   U5 это сам мозг, максимум что он может - индикацию выводить. Инфу о напряжении должен брать с входа U6. Какое напряжение на 4 ноге U5? По идеи, когда на 4 ноге напряжение уменьшится ниже 2.3В, должна загореться индикация низкого напряжения. (удобно мерить на конденсаторе С32, делителем R32-R33 задаётся напряжение срабатывания). Однако, данная функция могла быть отключена в прошивке.  Если на 4 ноге напряжение в заряженном 3В, в разряженном около 2.3В и индикация не работает, то эта функция отключена (или красные светодиоды не работают).