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

Re: STM32 новичку в ARM что к чему

Вт окт 15, 2019 17:07:21

Нет проблем убрать со "свистка" 3.3 вольт, оставив только 3 провода. А питание пойдёт через разъём USB.

Re: STM32 новичку в ARM что к чему

Вт окт 15, 2019 19:02:12

240265 писал(а):Интересно , чей стабилизатор крепче?
Питание будет от того что выдает большее напряжение, а через другой питание поступать не будет. Это примерно как с двумя диодами.

Re: STM32 новичку в ARM что к чему

Вт окт 15, 2019 19:51:26

Все работает, ничего не греется

Re: STM32 новичку в ARM что к чему

Чт окт 17, 2019 17:26:30

Снова про ST-Link, о котором я писал выше. Он у меня такой как на картинке. Прошивать его не стал. Просто сделал с ним то, что делал раньше с нерабочими флешками, блютуз коннекторами, вайфай свистками, и что порой помогало: погнул немного туда-сюда плату отладчика пальцами. На короткое время помогло, отладчик обнаружился виндой, и последняя поставила к нему драйвера. Непропай, короче. Как будет время, сниму с платы термоусадку и хорошенько пропаяю. Но, сначала накатаю претензию в Алиэкспресс.

Изображение

Снимок.JPG
(29.85 KiB) Скачиваний: 1033

Re: STM32 новичку в ARM что к чему

Пт окт 18, 2019 11:40:58

Ну что, смыл я с платы отладчика какую-то засохшую гадость (вероятно китайский флюс), пропаял с православной спирто-канифолью, убрав попутно лишний припой из под выводов микроконтроллера. Отладчик стал надежно определятся системой, видится из утилиты ST-Link, из Keil. Теперь надо попробовать чего-нибудь отладить.

Re: STM32 новичку в ARM что к чему

Вс окт 20, 2019 10:46:27

Вопрос ко спецам языка C. Конечно процессор не STM32, а MSP432, но тоже ARM. Я тут корректирую программу, чтобы оно работало на двух почти похожих устройствах. И вот мне в ней нужно зажигать и гасить светодиод. Вот только в старом девайсе светодиод один, а в новом их два. И второй светодиод оказался на другом порту.

И сделал я такой дефайн:
Код:
#ifdef RSLK_MAX
    #define IRLED(x)   BITBAND_PERI(P5->OUT, 3) = BITBAND_PERI(P9->OUT, 2) = x
#else
    #define IRLED(x)   BITBAND_PERI(P5->OUT, 3) = x /* port 5 pin 3 */
#endif
 
В скобки заключать не стал, так как оно вызывается само или с параметром 0, или 1.
Так вот меня гложут сомнения. Конечно, результат операции присваивания есть результат правой части, т.е. X должен прописаться в оба регистра. Но так как они волатильные не повлияет ли это на то, что они читаются как 0?

Просто, когда я включил - четные светодиоды странно моргали (или нечетные). поэтому пришлось написать просто:
Код:
#define IRLED(x)      BITBAND_PERI(P5->OUT, 3) = x; BITBAND_PERI(P9->OUT, 2) = x
И вот думаю, где я не понимаю.

Re: STM32 новичку в ARM что к чему

Вс окт 20, 2019 11:18:40

Имхо, x присвоится только порту P9. А уже порту P5 - содержимое P9, через чтение-запись.

Справа налево, в общем.

Re: STM32 новичку в ARM что к чему

Вс окт 20, 2019 19:31:39

Имхо, x присвоится только порту P9. А уже порту P5 - содержимое P9, через чтение-запись.

В С++20 запретили для volatile переменных подобное присваивание как неоднозначное, можно только по отдельности присваивать, так что возможно тут все на усмотрение компилятора.

Re: STM32 новичку в ARM что к чему

Вт окт 29, 2019 19:37:43

Вымучил в конце-концов классический USB CDC. Под приставками еще не проверял - дома такого дерьма не держу, на днях можно будет на работе на чьем-нибудь компьютере проверить.
Вот под андроидом почему-то не работает. Хотя, вроде бы там должны быть абсолютно те же модули ядра! Ан нет, видимо, и это тивоизировали, сволочи!
Где бы достать список VID/PID обычных CDC, чтобы терминал на андроиде "увидел" их?

Re: STM32 новичку в ARM что к чему

Ср окт 30, 2019 12:13:55

Ну что, смыл я с платы отладчика какую-то засохшую гадость (вероятно китайский флюс), пропаял с православной спирто-канифолью, убрав попутно лишний припой из под выводов микроконтроллера. Отладчик стал надежно определятся системой, видится из утилиты ST-Link, из Keil. Теперь надо попробовать чего-нибудь отладить.

Я купил два изолятора для юсб на али. Когда приехали - заработал только один. Разобрал второй - заметил соплю припоя на маске. Легко соскоблилась и платка заработала. А еще китайцы не припаивают крепежные усики юсб разьема...

С чего начать изучение STM32?

Ср окт 30, 2019 19:11:32

Появилась у меня отладочная плата STM32L476G-DISCO. До этого работал только с AVR и решил что надо двигаться вперед. С чего стоит начать?
И что такое MFX и для чего нужен?

Re: STM32 новичку в ARM что к чему

Ср окт 30, 2019 19:28:48

daaar, начинать надо с чего-нибудь простого, вроде STM32F030. А не с cortex-m4, на который один только RM будешь месяц читать...

Re: STM32 новичку в ARM что к чему

Ср окт 30, 2019 19:38:20

Думаю что это не так, я же не собираюсь с ходу лезть в какую-то сложную переферию

Re: STM32 новичку в ARM что к чему

Ср окт 30, 2019 21:53:56

daaar, светодиодом помигать, с чего же ещё :) Что на F0, что на F7 это делается одинаково. Создаём проект, настраиваем систему тактирования, порты, мигаем в цикле, затем медленно переходим к базоваму таймеру и мигаем в прерывании. Прерывание нужно разрешить не только в самом таймере, но и в конроллере прерываний (NVIC), попутно познакомившись и с ним.

Re: STM32 новичку в ARM что к чему

Чт ноя 07, 2019 16:43:46

Уважаемые коты,как переделать настройку АЦП в режим интерлив?
В DUAL MODE переделал без проблем-

Re: STM32 новичку в ARM что к чему

Сб ноя 09, 2019 10:46:51

Уважаемые коты,как переделать настройку АЦП в режим интерлив?
В DUAL MODE переделал без проблем-

Решено,всем спасибо!

Re: STM32 новичку в ARM что к чему

Сб ноя 09, 2019 21:02:07

В кои-то веки решил воспользоваться кубом, чтобы по-быстрому набросать макет обмена данными по параллельному восьмибитному интерфейсу. По-быстрому, впрочем, не получилось, т.к. сразу же налетел на грабли, заботливо подложенные стм-овскими индусами. Итак, по порядку. Беру голубую пилюлю (stm32f103cb), раскидываю ноги в кубе следующим образом:



PA0-PA7 -- все в режиме выхода, состояние у всех высокое (лог. 1). Компилирую код, запускаю в отладку и обнаруживаю, что после выполнения MX_GPIO_Init() все пины продолжают пребывать в состоянии логического нуля. Попытки вразумить куб, перегенерить код и прочее ни к чему не приводят. Лезу в код. С виду все в порядке:

Код:
static void MX_GPIO_Init(void) {
  LL_GPIO_InitTypeDef GPIO_InitStruct = {0};

  /* GPIO Ports Clock Enable */
  LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOC);
  LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOD);
  LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOA);

  LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_0|LL_GPIO_PIN_1|LL_GPIO_PIN_2|LL_GPIO_PIN_3
                          |LL_GPIO_PIN_4|LL_GPIO_PIN_5|LL_GPIO_PIN_6|LL_GPIO_PIN_7);

  GPIO_InitStruct.Pin = LL_GPIO_PIN_0|LL_GPIO_PIN_1|LL_GPIO_PIN_2|LL_GPIO_PIN_3
                          |LL_GPIO_PIN_4|LL_GPIO_PIN_5|LL_GPIO_PIN_6|LL_GPIO_PIN_7;
  GPIO_InitStruct.Mode = LL_GPIO_MODE_OUTPUT;
  GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_LOW;
  GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
  LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}


Выполнение строки
Код:
  LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_0|LL_GPIO_PIN_1|LL_GPIO_PIN_2|LL_GPIO_PIN_3
                          |LL_GPIO_PIN_4|LL_GPIO_PIN_5|LL_GPIO_PIN_6|LL_GPIO_PIN_7);

переводит нужные мне пины в высокое состояние, но длится это не долго, т.к. вызов LL_GPIO_Init(GPIOA, &GPIO_InitStruct); шестью строками ниже возвращает все в исходную. Лезу смотреть, что же там в этом волшебном ините и обнаруживаю совершенно ишемический код и настоящую сокровищницу индусской программистской мысли:



Из вышеприведенного следует, что индусы пребывают в абсолютной уверенности, что подтягивать пины (вверх или вниз) надлежит вне зависимости от того, как сконфигурирован пин: как вход или выход. Это подтверждает вызов

Код:
      /* Pull-up Pull-down resistor configuration*/
      LL_GPIO_SetPinPull(GPIOx, currentpin, GPIO_InitStruct->Pull);

абсолютно для всех инициализируемых пинов. Это не было бы проблемой для F0 или F3-F4 где пуллап/пулдаун задается состоянием отдельного регистра, но на F1 направление подтяжки (вверх/вниз) указывается в регистре ODR. Это если пин в режиме входа. Если пин в режиме выхода, то через этот же самый ODR управляют состоянием выхода. И вот эти белозубые улыбчивые дебилы со всей этой своей первобытной решительностью начинают "подтягивать" выход. Через ODR. К земле. Ну молодцы, фигли.

Re: STM32 новичку в ARM что к чему

Чт ноя 14, 2019 00:28:17

а зачем вызывать SetOutputPin (да и что угодно еще gpio-шное) перед GPIO_Init?

Re: STM32 новичку в ARM что к чему

Чт ноя 14, 2019 07:33:01

Вот и a5021 недоумевает, зачем кодогенератор так делает.

Re: STM32 новичку в ARM что к чему

Чт ноя 14, 2019 20:32:09

Здравствуйте! Подскажите, есть дисплей
Изображение
Хочу заказать МК STM32F407VGT6 но в ДШ примечание
For the LQFP100 and WLCSP90 packages, only FSMC Bank1 or Bank2 are available. Bank1 can only support a multiplexed NOR/PSRAM memory using the NE1 Chip
Select. Bank2 can only support a 16- or 8-bit NAND Flash memory using the NCE2 Chip Select. The interrupt line cannot be used since Port G is not available in this
package.

Будет ли мой дисплей работать с данным МК по FSMC?
Ответить