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

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

В общем, весть этот трэш решился так:

Код: Выделить всё

void dma1_channel5_isr(){
    if(DMA1->ISR & DMA_ISR_TCIF5){ // transfer complete - stop
        TIM1->SR = 0;
        TIM1->CR1 |= TIM_CR1_OPM;
        TIM1->CCR1 = 0;
    }
    DMA1->IFCR = DMA_IFCR_CGIF5;
}
    
uint8_t dmabuff[] = {3,6,3,3,6,6,3,6};
    
static void sendone(){
    TIM1->CR1 = 0; // stop
    DMA1_Channel5->CCR &= ~DMA_CCR_EN; // disable DMA to reconfigure
    TIM1->DIER = TIM_DIER_UDE; // enable DMA requests
    DMA1->IFCR = DMA_IFCR_CGIF5;
    DMA1_Channel5->CNDTR = 8;
    DMA1_Channel5->CMAR = (uint32_t)dmabuff;
    DMA1_Channel5->CCR |= DMA_CCR_EN; // start DMA
    TIM1->CR1 = TIM_CR1_CEN | TIM_CR1_URS;
}

В прерывании по завершению передачи можно и так написать: TIM1->CR1=0 — ничего не изменится. Устанавливать линию в 0 внутри прерывания таймера нельзя: слишком медленно, в итоге получается лишний короткий импульс.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Реклама
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

У TIM1 же есть RCR, пишешь в него количество периодов а сам таймер конфигурируешь в режиме OPM.
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Сообщение Ярослав555 »

Котаны здарова. Столкнулся с тем что мой китайский J-Link V8 не поддерживает Cortex M7. Перешитый свисток поддерживает. Но встроенный в кубиде софт джилинка не знает H743IG. Кароче пришлось откатиться на стлинк. Я думаю со временем кубиде обновят.

Вопрос вот в чем - у китайцев есть некий отладчик J-Link V11. Кто-то пользовался?
afz
Опытный кот
Аватара пользователя
Сообщения: 744
Зарегистрирован: Сб дек 22, 2012 08:17:42
Откуда: Караганда, Казахстан

Сообщение afz »

Коллеги, напомните, плз.
Кейл, на одном компе v5.28, на втором - 5.29. Делаю билд/ребилд проекту, все ОК, собрался. Давлю LOAD, загружается, говорит

Код: Выделить всё

Erase Done.
Programming Done.
Verify OK.
Application running ...
Flash Load finished at 19:17:11
и тишина. МК висит. Нажмешь кнопик RESET, заводится и работает. Выключишь и включишь питание - тоже работает.

Галочка Reset and Run стоит это та, которая Flash -> Configure Flash toold... в открывшемся окне "Options for Target 'xxxx'" вкладка Debug, педаль Setting возле окошка Use ST-link Debugger и там на вкладке Flash Download в окошке Download Function Я ПОСТАВИЛ галочку Reset and Run, а эта скотина ее игнориоует. Не помню, вроде-бы, начиная с 5.25 или 5.26 надо было ставить еще галочку Enable на следующей закладке - Pack, но (не то с 5.27, не то с 5.28) эта скотина на нее тоже не реагирует.

Вопрос стандартный: что я делаю не так?
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Реклама
Эиком - электронные компоненты и радиодетали
Встал на лапы
Сообщения: 149
Зарегистрирован: Вс окт 23, 2016 17:37:09

Сообщение leha_m1986 »

Здравствуйте! Прошу помощи по считыванию stm32f303rct6. С stm никогда не сталкивался, st-link нет. Знаю, что можно считать через бутлоадер по USART. Подскажите с подключением и подтяжкой boot0 (и я так и не понял по поводу boot1 в этом мк).
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3386
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

leha_m1986 писал(а):Подскажите с подключением и подтяжкой boot0 (и я так и не понял по поводу boot1 в этом мк).
BOOT0 - 1.
BOOT1 - 0.

Если не поняли 1 это 3.3В. 0 это общий провод.
Реклама
Встал на лапы
Сообщения: 149
Зарегистрирован: Вс окт 23, 2016 17:37:09

Сообщение leha_m1986 »

boot1 в нем нет. а boot0 подтянут к 3,3 через 1 ком. usb-uart рабочий. скорость минимальная.
в dfu по usb определяется как неизвестное устройство. а по usart - нет связи.
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

Товарищи, а где стырить вменяемую реализацию работы с DHT22 на STM32F103 — без калокуба, на таймере с DMA (либо, на худой конец, на UART в полудуплексном режиме с DMA). Лень самому городить, когда столько людей этим пользуется…
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Прорезались зубы
Сообщения: 213
Зарегистрирован: Пт июл 03, 2020 22:09:02

Сообщение Loyso Pondohva »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3986327#p3986327"]Товарищи, а где стырить вменяемую реализацию работы с DHT22 на STM32F103 — без калокуба, на таймере с DMA (либо, на худой конец, на UART в полудуплексном режиме с DMA). Лень самому городить, когда столько людей этим пользуется…[/uquote]

Есть для blue pill под Arduino IDE - написал и собрал метеостанцию. Работает. Правда там DHT11 а не 22 ( и BME280) но скорее всего - пойдет без переделок. Замените только DHTTYPE на DHT22.

И не понимаю зачем DMA - DHT же дико медленный, нельзя (вроде бы) опрашивать чаще, чем раз в секунду. Если нужно - вот ссылка на библиотеку DHT.h работающую под blue pill и код (не последняя, но рабочая версия).
https://disk.yandex.ru/d/oj-14yE3TmGfnw
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

Да не надо, я уже сделал на таймере с DMA. А нужно DMA именно потому, что датчик крайне медлительный. Да, судя по тестам, DHT22 годится лишь как показометр, a DHT11 даже в этой роли нельзя использовать (врет ужасно).
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 7043
Зарегистрирован: Сб янв 28, 2006 22:47:24

Сообщение Asmodey »

Пытаюсь выяснить, какой из документов на STM32F042K6 безбожно звиздит (и не краснеет), референс мануал или даташит? В RM присутствует TIM15, на картинке разрисован вывод сигналов этого таймера на TIM15_CH1. В даташите ни слова про TIM15_CH1, ни в описании выводов микросхемы, ни в таблице альтернативных функций. Я по неопытности не нахожу инфы по TIM15_CH1 или это очередная "веселая" шутка ST?
Астролябия-сама меряет, было бы что мерять!!!
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Сообщение Ярослав555 »

[uquote="Asmodey",url="/forum/viewtopic.php?p=3992738#p3992738"]Пытаюсь выяснить, какой из документов на STM32F042K6 безбожно звиздит (и не краснеет), референс мануал или даташит? В RM присутствует TIM15, на картинке разрисован вывод сигналов этого таймера на TIM15_CH1. В даташите ни слова про TIM15_CH1, ни в описании выводов микросхемы, ни в таблице альтернативных функций. Я по неопытности не нахожу инфы по TIM15_CH1 или это очередная "веселая" шутка ST?[/uquote]
Неплохо было бы ссылки на документы. Посмотрите название вашего референса, возможно он описывает семейство. А даташит более узко - конкретный чип. Поэтому есть вероятность что никто не звиздит, а кто-то не умеет читать :)))
Согласно CubeMx у F042K6T нет TIM15.
Друг Кота
Аватара пользователя
Сообщения: 7043
Зарегистрирован: Сб янв 28, 2006 22:47:24

Сообщение Asmodey »

[uquote="Ярослав555",url="/forum/viewtopic.php?p=3992751#p3992751"]Поэтому есть вероятность что никто не звиздит, а кто-то не умеет читать :)))[/uquote]
Или писать. Индусы пишут много, но не всегда по делу.

В шапке RM0091 указано:
It applies to the STM32F031x4/x6, STM32F051x4/x6/x8, STM32F071x8/xB, STM32F091xB/xC, STM32F042x4/x6, STM32F072x8/xB, STM32F038x6, STM32F048x6, STM32F058x8, STM32F078xB and STM32F098xC devices.
В описании TIM15 в том же RM0091 конкретно прописано TIM15 is not available on STM32F03x devices.

Об отсутствии TIM15 в 042K6 НИЧЕГО НЕТ.

[uquote="Ярослав555",url="/forum/viewtopic.php?p=3992751#p3992751"]Согласно CubeMx у F042K6T нет TIM15.[/uquote]Согласно чему??? Я надеялся найти исчерпывающую инфу в документации, а не в черт знает в чем.

P.S. посмотрел в stm32f042x6.h, там ни одного упоминания про TIM15. Вывод - RM0091 писали питарасы.
Последний раз редактировалось Asmodey Сб мар 06, 2021 20:39:25, всего редактировалось 1 раз.
Астролябия-сама меряет, было бы что мерять!!!
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Сообщение Ярослав555 »

Ну вы же должны понимать, что референс описывает все семейство, а детали должны уточняться в даташите. А в даташите TIM15 нет в принципе. Т-е вся ваша притензия, что в референсе вам сноску не сделали? Ну ок. Позор ST.
Друг Кота
Аватара пользователя
Сообщения: 7043
Зарегистрирован: Сб янв 28, 2006 22:47:24

Сообщение Asmodey »

[uquote="Ярослав555",url="/forum/viewtopic.php?p=3992778#p3992778"]Т-е вся ваша притензия, что в референсе вам сноску не сделали?[/uquote]
Сделали, я же писал выше "TIM15 is not available on STM32F03x devices". Вот если бы они этого не сделали, я бы давно разобрался что к чему. Здесь же конкретно написано, что TIM15 отсутствует только в STM32F03x. Впрочем, что там думают индусы когда пишут на инглише, одному Кришне ведомо... Зато понятно, о чем думает манагер ST, заставляя индийских программистов писать про железо - как пару сотен баксов скрысить и в карман положить, сэкономив на нормальном специалисте-электронщике.
Последний раз редактировалось Asmodey Сб мар 06, 2021 20:49:53, всего редактировалось 1 раз.
Астролябия-сама меряет, было бы что мерять!!!
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Сообщение Ярослав555 »

[uquote="Asmodey",url="/forum/viewtopic.php?p=3992781#p3992781"]Сделали, я же писал выше "TIM15 is not available on STM32F03x devices". Вот если бы они этого не сделали, я бы давно разобрался что к чему. Здесь же конкретно написано, что TIM15 отсутствует только в STM32F03x. Впрочем, что там думают индусы когда пишут на инглише, одному Кришне ведомо... Зато понятно, о чем думает манагер ST, заставляя индийских программистов писать про железо - как пару сотен баксов скрысить и в карман положить, сэкономив на нормальном специалисте-электронщике.[/uquote]
Нет, логика у вас на двоечку. Там написано что таймер отсутствует у STM32F03x. Слово только вы сами себе додумали.

Добавлено after 1 minute 25 seconds:
Так что по сути никто никого в заблуждение не вводил
Друг Кота
Аватара пользователя
Сообщения: 7043
Зарегистрирован: Сб янв 28, 2006 22:47:24

Сообщение Asmodey »

У меня с логикой все в порядке. Если написано, что в этом нет, значит во всех других есть. И, перенимать образ мышления индусских STшных программеров я не намерен. Следуя их логике можно далеко зайти, так, что мочиться в унитаз станешь через плечо, искренне веря, что это в порядке вещей.

Не понимаю, о чем тут спорить? Документация у ST ублюдочная, это же всем ясно как белый день.
Астролябия-сама меряет, было бы что мерять!!!
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Сообщение Ярослав555 »

[uquote="Asmodey",url="/forum/viewtopic.php?p=3992797#p3992797"]Не понимаю, о чем тут спорить? Документация у ST ублюдочная, это же всем ясно как белый день.[/uquote]
Аааааа! Я понял. Вы сюда просто поплакаться пришли. Ну ок.
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

[uquote="Asmodey",url="/forum/viewtopic.php?p=3992738#p3992738"]В RM присутствует TIM15[/uquote]
И что? RM пишется на семейство, а в даташите явно присутствует табличка, где его нет!
Вложения
no.png
(58.79 КБ) 195 скачиваний
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 7043
Зарегистрирован: Сб янв 28, 2006 22:47:24

Сообщение Asmodey »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3992892#p3992892"]RM пишется на семейство[/uquote]
На кой тогда было писать в даташите написанном на семейство исключение "TIM15 is not available on STM32F03x devices"? В документе написанном трезво мыслящим человеком было бы перечисление всех исключений, либо их не было бы вовсе дабы не вводить читающего в заблуждение. Допускаю, что могу ошибаться, и для английского или хинди такие фигуры речи норма. Но я все же склоняюсь к мысли, что RM писал человек нанятый за сотку рупий.
Астролябия-сама меряет, было бы что мерять!!!
Ответить

Вернуться в «ARM»