Например TDA7294

Форум РадиоКот • Просмотр темы - STM32 новичку в ARM что к чему
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Вт июл 16, 2019 07:47:26

Часовой пояс: UTC + 3 часа [ Летнее время ]


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 5586 ]     ... , , , 272, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт мар 29, 2019 13:11:32 
Собутыльник Кота
Аватар пользователя

Карма: 4
Рейтинг сообщений: 136
Зарегистрирован: Пн окт 11, 2010 20:00:08
Сообщений: 2546
Рейтинг сообщения: 0
Sergeba писал(а):
"аппаратной поддержке" пофиг и она пропускает пакет?
А вы включили эту аппаратную поддержку? В кубе это "Hardware Flow Control (RS485)".

Для этого МК я бы не стал использовать куб как кодогенератор. Если нужно упростить работу, лучше используйте SPL. Она требует меньше ресурсов и больше контроля над кодом.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт мар 29, 2019 20:21:39 
Родился

Зарегистрирован: Пт мар 29, 2019 00:41:10
Сообщений: 8
Рейтинг сообщения: 0
[/quote]А вы включили эту аппаратную поддержку? В кубе это "Hardware Flow Control (RS485)".


Да, в том то и дело, что включил. И теперь пакеты летят через порт несмотря на то, как я дёргаю ногу. Причём всё ещё хуже... У меня на плате разведен сигнал DE+RE на ногу PA0, хотя по умолчанию в Кубе DE резервирует ногу PA1. После генерации кода, я вручную меняю на PA0 - пакеты идут - я их вижу, далее становиться вообще грустно (т.к. не втыкаю почему...) - один раз забыл поправить, в тексте остался PA1 и пакеты продолжили проходить не взирая на какие-то там сигналы и ноги... Такое впечатление, что я подключился не через "адаптер" RS485, а напрямую, через UART... Где же пропало управление потоком?

Добавлено after 5 hours 19 minutes 58 seconds:
Попробовал разные варианты. Получилось так:

1. Включаю аппаратную поддержку. Пакеты идут невзирая на дрыганье сигналом DE+RE
2. Выключаю аппаратную поддержку. Выход для DE не назначаю. Пакеты продолжают проходить. Предполагаю из-за того, что соответствующий выход имеет неопределённое значение.
3. Выключаю аппаратную поддержку. Назначаю выход для DE. Теперь всё в порядке - работает софтовое управление потоком.

Вот теперь вопрос. Как мне портировать Modbus? Тут, немного выше писали, что F0 имеет аппаратную поддержку Modbus, но что-то я не нашёл в RM такого...


Вернуться наверх
 
JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн апр 01, 2019 16:14:02 
Друг Кота
Аватар пользователя

Карма: 28
Рейтинг сообщений: 144
Зарегистрирован: Пн июл 28, 2008 23:12:01
Сообщений: 3474
Рейтинг сообщения: 0
но что-то я не нашёл в RM такого...

Чип полностью озвучьте...


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $88 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт апр 04, 2019 15:41:49 
Опытный кот
Аватар пользователя

Карма: 7
Рейтинг сообщений: 48
Зарегистрирован: Вт июн 17, 2014 01:34:26
Сообщений: 743
Рейтинг сообщения: 0
Добрый день, у меня модуль SDIO и дисплей используют один вывод и подключены через мультиплексор. Так как они не работают одновременно предполагалось изменять конфигурацию этого вывода по необходимости. С AF на PP конфигурация изменяется и работает без проблем, а вот обратно конфигурация изменяется, а пакетов нет. Подскажите пожалуйста, можно ли вообще так делать?

Код:
#define    PD2_TFT_ON      GPIOE->BSRR = GPIO_BSRR_BR_5;\
                  GPIOD->MODER &= ~GPIO_MODER_MODE2;\
                  GPIOD->MODER |= GPIO_MODER_MODE2_0;
                                    
#define   PD2_SDIO_ON      GPIOE->BSRR = GPIO_BSRR_BS_5;\
                  GPIOD->MODER &= ~GPIO_MODER_MODE2;\
                  GPIOD->MODER |= GPIO_MODER_MODE2_1;


Пробовал так же отключать тактирование SDIO пока оно не работает, не помогает.


Последний раз редактировалось baghear Чт апр 04, 2019 16:52:21, всего редактировалось 1 раз.

Вернуться наверх
 
Материалы вебинара: "Литиевые ХИТы FANSO или что нужно знать инженеру о батарейках"

На сайте Компэл доступны материалы вебинара, посвященного литиевым батарейкам FANSO. На мероприятии говорилось о том, на какие параметры следует обращать внимание, выбирая литиевый ХИТ, и как избежать некоторых проблем, затрагивались вопросы тестирования и пассивации батареек, и мн. др.
Вы можете посмотреть видеозапись вебинара, ознакомиться с презентацией и ответами на вопросы.
Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт апр 04, 2019 15:58:05 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 66
Зарегистрирован: Вт май 01, 2018 20:44:47
Сообщений: 621
Рейтинг сообщения: 0
Можно, конечно. Только отключать тактирование сконфигурированному и включенному модулю нехорошо. Лучше в настройках самого модуля его отключать.

А вот над этим стоит хорошенько задуматься.
Код:
GPIOE->BSRR |= GPIO_BSRR_BR_5;

Впрочем, и над этим тоже
Код:
GPIOD->MODER &= ~GPIO_MODER_MODE2;
GPIOD->MODER |= GPIO_MODER_MODE2_1;


Вернуться наверх
 
Конденсаторы Panasonic. Часть 1. Алюминий

Известная своими инновациями компания Panasonic даже в столь традиционные изделия как алюминиевые электролитические конденсаторы ухитряется вносить оригинальные и полезные конструктивные дополнения.
Отдельно можно выделить инновационное направление Panasonic, занимающееся разработкой и производством решений по отводу тепла, основу которого составляют специальные графитовые листы (семейство PGS). Емкостное направление Panasonic выпускает полимерные, пленочные и классические электролитические конденсаторы, о которых пойдет речь.
Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт апр 04, 2019 16:16:18 
Опытный кот
Аватар пользователя

Карма: 7
Рейтинг сообщений: 48
Зарегистрирован: Вт июн 17, 2014 01:34:26
Сообщений: 743
Рейтинг сообщения: 0
Опечатка, я не отключал тактирование модулю отключал сам модуль

Код:
RCC->APB2ENR &= ~RCC_APB2ENR_SDIOEN;


Поясните пожалуйста, почему над кодом выше надо задуматься?


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт апр 04, 2019 17:25:38 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 66
Зарегистрирован: Вт май 01, 2018 20:44:47
Сообщений: 621
Рейтинг сообщения: 0
Поясните пожалуйста, почему над кодом выше надо задуматься?
Во-первых, все эти значки около операции присваивания что-то да значат. Во-вторых, как следствие первого, регистр BSRR только для чтения, зачем его читать?


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт апр 04, 2019 17:31:45 
Друг Кота
Аватар пользователя

Карма: 76
Рейтинг сообщений: 782
Зарегистрирован: Чт апр 11, 2013 12:19:59
Сообщений: 3894
Откуда: Минск
Рейтинг сообщения: 0
VladislavS: А он его только пишет, не читая, если верить коду (исправленному?)


Вернуться наверх
 
Prist.ru предлагает скидку всем частным лицам при покупке приборов АКИП, GW Instek, APPA (кроме осциллографов АКИП-4115/1А, GDS-71102)!

Интересные новинки уже на складе:

Осциллограф АКИП-4126Е

Многоканальные источники питания серии GPP

Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Чт апр 04, 2019 19:32:44 
Опытный кот
Аватар пользователя

Карма: 7
Рейтинг сообщений: 48
Зарегистрирован: Вт июн 17, 2014 01:34:26
Сообщений: 743
Рейтинг сообщения: 0
Ребята все заработало, проблема была в том, что по окончанию работы с дисплеем эта ножка устанавливается в низкое состояние. Установил в высокое и все заработало.


Вернуться наверх
 
Купить электронные компоненты в LCSC

Отправка со склада через 4 часа после заказа!
900 000 пользователей, 3000+ заказов в день!
Зарегистрируйтесь сегодня и получите скидку 8 долларов на первый заказ!
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт апр 05, 2019 09:21:57 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 66
Зарегистрирован: Вт май 01, 2018 20:44:47
Сообщений: 621
Рейтинг сообщения: 0
Поясните пожалуйста, почему над кодом выше надо задуматься?
Над BSRR, вижу, поработали. А дальше? По коду вижу задачу поменять значения битов GPIO_MODER_MODER2_0 и GPIO_MODER_MODER2_1 на противоположные. Давай сравнивать.

Код:
//  GPIOD->MODER &= ~GPIO_MODER_MODER2;
        MOVS     R0,#+48
        MVNS     R0,R0            ;; #-49
        LDR      R1,??main_0      ;; 0x48000c00
        LDR      R2,[R1, #+0]
        ANDS     R2,R2,R0
        STR      R2,[R1, #+0]
//  GPIOD->MODER |= GPIO_MODER_MODER2_1;
        MOVS     R2,#+32
        LDR      R3,[R1, #+0]
        ORRS     R3,R3,R2
        STR      R3,[R1, #+0]

Код:
//  GPIOD->MODER = GPIOD->MODER & ~GPIO_MODER_MODER2 | GPIO_MODER_MODER2_1;
        LDR      R0,??main_0      ;; 0x48000c00
        LDR      R1,[R0, #+0]
        MOVS     R2,#+48
        BICS     R1,R1,R2
        MOVS     R2,#+32
        ORRS     R2,R2,R1
        STR      R2,[R0, #+0]

Код:
//  GPIOD->MODER ^= GPIO_MODER_MODER2;
        LDR      R0,??main_0      ;; 0x48000c00
        LDR      R1,[R0, #+0]
        MOVS     R2,#+48
        EORS     R2,R2,R1
        STR      R2,[R0, #+0]


Последний вариант, правда, надо применять очень "строго" и я бы его не рекомендовал. Зато, если режим работы других ножек на GPIOD не меняется, то рекомендовал бы просто запись новой константы в MODER.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт апр 05, 2019 14:31:54 
Опытный кот
Аватар пользователя

Карма: 7
Рейтинг сообщений: 48
Зарегистрирован: Вт июн 17, 2014 01:34:26
Сообщений: 743
Рейтинг сообщения: 0
VladislavS СПАСИБО!!!!Но армовский асм не мой конек да и кот должен быть читабельный)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт апр 05, 2019 14:59:40 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 66
Зарегистрирован: Вт май 01, 2018 20:44:47
Сообщений: 621
Рейтинг сообщения: 0
То есть, ты ничего не понял? Асм там только для демонстрации во что выливается С-ный код.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт апр 05, 2019 16:11:46 
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватар пользователя

Карма: 127
Рейтинг сообщений: 718
Зарегистрирован: Чт апр 21, 2011 18:55:50
Сообщений: 4688
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
А разве не в этой теме недавно обсуждали эти конструкции, где не надо отдельно каждый бит выписывать, что лучше делать сразу все? И тоже ассемблер приводили.

Добавлено after 1 minute 26 seconds:
Я бы тоже написал в две строки... Может не совсем рационально, но зато понятнее. )))

_________________
Станислав


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт апр 05, 2019 16:36:03 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 66
Зарегистрирован: Вт май 01, 2018 20:44:47
Сообщений: 621
Рейтинг сообщения: 0
А разве не в этой теме недавно обсуждали
Да где только не обсуждали, а толку?
Вон в соседней теме пишет
Код:
I2C1->DR |= data;
и сожалеет что приходится "выкручиваться" вот так
Код:
I2C1->DR = data;


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Вт апр 09, 2019 00:26:53 
Потрогал лапой паяльник
Аватар пользователя

Карма: 3
Рейтинг сообщений: 79
Зарегистрирован: Пт июл 25, 2014 00:09:23
Сообщений: 338
Откуда: Киев
Рейтинг сообщения: 0
Подскажите как более правильно писать volatile перед типом переменной
Переписываю чужой проект, меняю его структуру, избавляюсь от глобальных переменных.
И столкнулся с одним моментом, который не совсем понятен и в гугле не знаю как правильно найти интересующий вопрос.
Есть два варианта, оба работают, но хотелось бы выбрать более правильный.

В первом варианте я пишу volatile перед названием структуры,
во втором пишу volatile перед типом каждой переменной в самой структуре
Абстрактный пример кода набросал, который передает суть
Код:
// Вариант 1
// file *.h
typedef struct
{
  uint16_t current_temperature;
  uint16_t round_temperature;
  uint16_t voltage;
  uint16_t power;
} parameter_st;

void func(volatile parameter_st *param);

// file *.c
volatile parameter_st parameter = {10, 20, 30, 40};

void func(volatile parameter_st *param)
{
   if(param->voltage > 1000) param->power = 80;
   else param->power = 0;
   
   if(param->voltage < 0xFFFF) param->voltage++;
   else param->voltage = 0;
}
void ***_IRQHandler(void)
{
   func(&parameter);
}



// Вариант 2
// file *.h
typedef struct
{
  volatile uint16_t current_temperature;
  volatile uint16_t round_temperature;
  volatile uint16_t voltage;
  volatile uint16_t power;
} parameter_st;

void func(parameter_st *param);

// file *.c
parameter_st parameter = {10, 20, 30, 40};

void func(parameter_st *param)
{
   if(param->voltage > 1000) param->power = 80;
   else param->power = 0;
   
   if(param->voltage < 0xFFFF) param->voltage++;
   else param->voltage = 0;
}

void ***_IRQHandler(void)
{
   func(&parameter);
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Вт апр 09, 2019 06:36:43 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 66
Зарегистрирован: Вт май 01, 2018 20:44:47
Сообщений: 621
Рейтинг сообщения: 0
hosturik, а нет никакого "как правильно", есть как надо вам в вашей программе. Что вы хотите от этой структуры?
1. Все структуры данного типа будут volatile как, например, регистры периферии в CMSIS.
2. Только конкретный экземпляр структуры будет volatile и возможно обычное её применение.
Нам то откуда знать? Ваша программа, вам и решать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Вт апр 09, 2019 08:03:37 
Потрогал лапой паяльник
Аватар пользователя

Карма: 3
Рейтинг сообщений: 79
Зарегистрирован: Пт июл 25, 2014 00:09:23
Сообщений: 338
Откуда: Киев
Рейтинг сообщения: 0
VladislavS, Поскольку почти все элементы структуры будут изменятся в прерывании, важно чтобы программа работала правильно.
Структуры в моем случае нужны чтобы не плодить глобальные переменные. Я создаю переменную типа структуры в одном сишном файле и все нужные функции вызываю в нем, передавая в них указатель на структуру.
Итог - с более чем 30 глобальных переменных, их не стало вообще. И код стал намного чище. Под глобальными имею ввиду когда в хедере пишется extern uint8_t val; а в си файле то же самое но без extern.
И эта переменная будет видна везде где подключается этот хедер.
Такой стиль написания мне не понравился решил все переписать, чтобы было красиво.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Вт апр 09, 2019 08:13:33 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1416
Зарегистрирован: Чт дек 28, 2006 09:19:56
Сообщений: 13685
Откуда: Новочеркасск
Рейтинг сообщения: 2
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
typedef volatile struct {} my_struct_type; определит тип my_struct_type, который будет соответствовать вашей структуре с префиксом volatile.
все экземпляры структур этого типа будут исключены из оптимизации компилятора, т.е. доступ к ним и всем их полям будет, как к volatile-переменным.
можно создавать указатели на этот тип (в параметрах функций, например) и т.п.

но если вам вдруг потребуется создать, например, локальный экземпляр такой структуры (не-volatile то есть), типа для этого не найдется. вам об этом говорили.

поэтому лучше (имхо) определять алиас типа структуры, а префикс volatile указывать при определении конкретного экземпляра - если надо, конечно.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Вт апр 09, 2019 08:33:41 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 66
Зарегистрирован: Вт май 01, 2018 20:44:47
Сообщений: 621
Рейтинг сообщения: 6
hosturik, вы практически пришли к первому постулату ООП - инкапсуляция. Если ещё вспомнить, что в С++ struct и class это практически одно и то же, то можете смело перемещать функции в структуры, обзывать их методами и вместо структур создавать объекты.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Вт апр 09, 2019 22:22:57 
Первый раз сказал Мяу!

Зарегистрирован: Сб янв 24, 2015 22:07:59
Сообщений: 20
Рейтинг сообщения: 0
Пытаюсь освоить stm32f100. Что значат эти цифры?
Program Size: Code=612 RO-data=304 RW-data=0 ZI-data=1632
На пустом проекте реально занято 1632 байт озу? Может я, по не знанию, что то не то подключил? Или это не ОЗУ?


Вложения:
keil.png [51.3 KiB]
Скачиваний: 92
Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 5586 ]     ... , , , 272, , , ...  

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y