Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Re: Stm32 с чего начать изучение...

Сб авг 27, 2016 19:50:53

Andrew Martin писал(а):Я в отличие от вас не смешиваю мухи с котлетами и не задаюсь вопросом совместимости по периферии и миграции с относительно новых (хотя и "нижних", на ядре М0) F0хх до древних (хотя и на ядре М3) F100. Одно дело разделение на линейки, а другое - хронология их появления.

Мне всё равно что происходит в вашем придуманном вами мире. Есть градации от производителя. Вот их и придерживайтесь, во избежание самонепонимания.
Правильная аналогия - это сравнение, например, ATMEGA8/16/32 и ATMEGA88/168/328. Последние - это результат эволюции первых, ядро у всех AVR, а по периферии (и особенно по доступу к ней) отличия существенные. Здесь как раз проблему совместимости может решить HAL, чтобы код для Меги8 работал на Меге88.

Не надо выдумывать. ХАЛ может решить только железонезависимые решения. Другое дело,что в меге нет железа как такового, там и переносить то особо нечего. ХАЛ, как средство универсальности, не может предусмотреть все различия в железе и все его нюансы, а следовательно и все варианты решения задачи. Это по любому ложится на плечи кодера, а следовательно и преимущества ХАЛа изначально являются преувеличенными.

Re: Stm32 с чего начать изучение...

Вс авг 28, 2016 15:00:26

Уважаемые, эта тема для начинающих.

Может хватит уже тут мерятся кошачьими яичками ...

Re: Stm32 с чего начать изучение...

Пн авг 29, 2016 08:23:19

Значит решил я с SPL начать. Делаю вот настройку своего АЦП. Залез в инет, нашел пример настройки, создал структуру, записал туда поля типа - "ADC_InitStruct.ADC_Mode = ADC_Mode_RegInjecSimult;".
И начал разбираться что же оно пытается сделать.
В итоге, ADC_Init(ADC1,&ADC_InitStruct) пытается записать в регистр ADCx->CR1 поле ADC_Mode_RegInjecSimult, которое равно 0x00010000, что в двоичной системе b10000000000000000, что означает что мы пишем ЗАРЕЗЕРВИРОВАНЫЕ биты в CR1???
Структуры и функции находятся в stm32f10x_adc.h и stm32f10x_adc.c. Заранее благодарю за ответ.

Re: Stm32 с чего начать изучение...

Пн авг 29, 2016 08:41:23

Ярослав555 писал(а):Значит решил я с SPL начать


Ну вот, начали за здравие, а кончили... :(
Найдите STM32Snippets для вашего МК, там море примеров уже готового, работающего кода. А ещё есть RM.

Re: Stm32 с чего начать изучение...

Пн авг 29, 2016 09:22:40

да тут на стороне HAL советуют :( а меня только от вида этого джава-куба жрущего 800МБ оперативки тошнит... скачал с сайта STM32F0xx_Snippets_Package_V1.2.0 (у меня f100rb на платке, даж не знаю подойдет ли). Спасибо за совет, пошел код смотреть.
P.S. Пока что понятно что снипеты явно не под мой МК. А на сайте только F0 и L0 есть.
P.P.S Две недели головной боли, курения даташита, каша в голове. Только что куб сгенерил проэкт, закинул туда пару функций из инета и МК начал работать с АЦП. Как же сладок этот запретный плод :? Но это до первой нестандартной задачи, где потребуется тонкая настройка и ясность работы, я так думаю.

Re: Stm32 с чего начать изучение...

Пн авг 29, 2016 10:45:42

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

Re: Stm32 с чего начать изучение...

Пн авг 29, 2016 14:47:01

Мурик писал(а):Ярослав555, вы бы код выложили того что не получается и написали бы что хотите получить в конечном итоге.

Я хотел ручной запуск АЦПшки, уход в прерывание, снова ручной запуск.
вот что из последнего spl
Спойлер#include <stm32f10x.h>
#include <stm32f10x_conf.h>
volatile int val=-1;
void ADC1_IRQHandler(void){
if (ADC_GetITStatus(ADC1, ADC_IT_EOC)) {
ADC_ClearITPendingBit(ADC1, ADC_IT_EOC);
// Функцию нашел в stm32f10x_adc.h
val = ADC_GetConversionValue(ADC1);
};
}

void GPIO_Config (void){
GPIO_InitTypeDef PORTC;
PORTC.GPIO_Pin=GPIO_Pin_9|GPIO_Pin_8;
PORTC.GPIO_Mode=GPIO_Mode_Out_PP;
PORTC.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOC,&PORTC);

GPIO_InitTypeDef PORTA;
PORTA.GPIO_Pin=GPIO_Pin_0;
PORTA.GPIO_Mode=GPIO_Mode_AIN;
GPIO_Init(GPIOA, &PORTA);
}

void ADC_Config(void){
ADC_DeInit(ADC1);//сброс настроек АЦП

ADC_InitTypeDef ADC_InitStruct;
ADC_InitStruct.ADC_Mode = ADC_Mode_Independent;
ADC_InitStruct.ADC_ScanConvMode = DISABLE;
ADC_InitStruct.ADC_ContinuousConvMode = DISABLE;
ADC_InitStruct.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
ADC_InitStruct.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStruct.ADC_NbrOfChannel = 1;
ADC_Init(ADC1,&ADC_InitStruct);

ADC_Cmd(ADC1, ENABLE);//включение АЦП
ADC_ITConfig(ADC1, ADC_IT_EOC, ENABLE);//разрешение прерывания по зав. преобраз.
/*калибровка*/
ADC_ResetCalibration(ADC1);
while (ADC_GetResetCalibrationStatus(ADC1)) { };
ADC_StartCalibration(ADC1);
while (ADC_GetCalibrationStatus(ADC1)) { };

ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_1Cycles5);
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
}

void NVIC_Config(void){
__enable_irq ();//глобальное разрешение на прерывания
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
// Создал структуру NVIC и заполнил ее значениями
// Название константы ADC1_IRQn взял из stm32f10x.h
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannel=ADC1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStructure);
}

void main(void)
{
NVIC_Config();
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
GPIO_Config();
ADC_Config();

while(1){
GPIO_SetBits(GPIOC, GPIO_Pin_9|GPIO_Pin_8);
GPIO_ResetBits(GPIOC,GPIO_Pin_9);
}
}

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

Re: Stm32 с чего начать изучение...

Пн авг 29, 2016 14:59:32

Тактирование АЦП не включено.
Код:
RCC_ADCCLKConfig(RCC_PCLK2_Div4);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);

Re: Stm32 с чего начать изучение...

Пн авг 29, 2016 15:21:47

BorisSPB писал(а):Тактирование АЦП не включено.
Код:
RCC_ADCCLKConfig(RCC_PCLK2_Div4);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);

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

Re: Stm32 с чего начать изучение...

Чт сен 08, 2016 12:12:32

Любителям ардуиноподобних плат, авто прошивок, и тому подобного
https://st-videos.s3.amazonaws.com/vd_Getting_Started_opamp_X-NUCLEO_IKA01A1.mp4

PS: а от амплифаер TSZ122 за $1 мне понравился, вот только купить сие негде :cry:

Re: В каком направление смотреть новичку или с чего начать?

Ср окт 26, 2016 17:13:14

может быть... stm32 ? :))

Re: В каком направление смотреть новичку или с чего начать?

Ср окт 26, 2016 17:34:02

Morroc писал(а):может быть... stm32 ? :))
Честно говоря, на данный момент как раз на них почему-то и засматриваюсь. Вначале хотел продолжить начинания по Atmega, но внутренний голос подсказывает, что если и начинать изучать, то из относительно современного на данный момент, а PIC и Atmel уже лет 15-20 на слуху.

Re: В каком направление смотреть новичку или с чего начать?

Пт окт 28, 2016 10:26:12

Morroc, раз Вы советуете stm32, значит программируете их, подскажите, с чего начать, какой программатор сделать?




Сюда перенес.
aen

Re: В каком направление смотреть новичку или с чего начать?

Пт окт 28, 2016 11:21:03

Kotitto, JLinkOB 072...

Re: В каком направление смотреть новичку или с чего начать?

Пт окт 28, 2016 13:07:38

Kotitto писал(а):какой программатор сделать?
Проще купить готовый за 130 рублей. https://ru.aliexpress.com/item/new-ST-L ... 48606.html
Изготовление выйдет дороже.

Re: В каком направление смотреть новичку или с чего начать?

Пт окт 28, 2016 14:39:43

Мурик писал(а):Проще купить готовый за 130 рублей. https://ru.aliexpress.com/item/new-ST-L ... 48606.html
130 рублей :shock: , да что же за люди эти китайцы. Только хотел сам плату сделать, попаять, вспомнить молодость, а тут сразу 130 рублей. Мурик, а данный программатор рабочий? Какие постельки к нему надо спаять/докупить?

Re: Stm32 с чего начать изучение...

Пт окт 28, 2016 15:08:40

Kotitto писал(а):Только хотел сам плату сделать, попаять, вспомнить молодость
Никто же не запрещает самому спаять. :) http://we.easyelectronics.ru/STM32/sozd ... nk-v2.html
https://geektimes.ru/post/255338/
http://bovs.org/post/107/programmator-o ... m8-i-stm32
http://www.avrki.ru/articles/content/sa ... t_link_v2/
Понадобится STM32F103C8T6 и пара деталек. Проблемы "курицы и яйца" (т. е. чтобы прошить программатор нужен программатор) не возникнет, т. к. в МК находится USART загрузчик через который заливается прошивка прогой FlashLoaderDemonstrator.
Честно говоря, программатор для STM32 не особо нужен, ведь в МК при производстве зашит загрузчик. :)
Другое дело если нужна отладка.

Kotitto писал(а):а данный программатор рабочий?
Он есть почти у всех кто так или иначе прошивает STM8 или STM32. Если не считать небольшой вероятности дефектов при изготовлении (бывают, но редко), можно утверждать что программатор на 100% рабочий. Бывает что китайцы неправильно маркируют выводы и распиновка отличается от той что на корпусе, но обычно все ОК.

Kotitto писал(а):Какие постельки к нему надо спаять/докупить?
Обычно не нужно. ST-Link в большинстве случаев используют для внутрисхемной прошивки / отладки (да, это не только программатор, но и отладчик). :)

Re: Stm32 с чего начать изучение...

Пт окт 28, 2016 16:21:34

Мурик писал(а):Честно говоря, программатор для STM32 не особо нужен, ведь в МК при производстве зашит загрузчик. :) Другое дело если нужна отладка.
Благодарю за столь подробный ответ, но чутка запутался :dont_know: . Если программатор не нужен, как тогда прошивку заливать? А отлаживать (перезаписывать прошивку) как я понял, можно прямо на впаянном микроконтроллере?
К, сожалению, пока не нашел на просторах интернета простенькой статьи для новичка от подключения к ПК, написания программы (Привет Мир), прошивки и показания результата.

Re: Stm32 с чего начать изучение...

Пт окт 28, 2016 16:36:31

Kotitto писал(а):Если программатор не нужен, как тогда прошивку заливать?
http://www.radiohlam.ru/teory/stm32_5.htm

Kotitto писал(а):А отлаживать (перезаписывать прошивку) как я понял, можно прямо на впаянном микроконтроллере?
Да. :)

Kotitto писал(а):пока не нашел на просторах интернета простенькой статьи для новичка от подключения к ПК, написания программы (Привет Мир), прошивки и показания результата.
В сети много статей. :) Одна их них - мигание светодиодом.

Re: Stm32 с чего начать изучение...

Пт окт 28, 2016 19:39:28

Мурик, www.radiohlam.ru - твое???
Ответить