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

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2411
Зарегистрирован: Ср фев 23, 2011 12:12:31

Сообщение AndTer »

pvit, ты что правда говорил о недостаточности для этого f0?
Глупый не задает вопросы. Глупый и так все знает.
Реклама
Друг Кота
Сообщения: 6457
Зарегистрирован: Пт сен 13, 2013 13:11:31

Сообщение a5021 »

Кстати, кто мне объяснит, нафига там ПИД ? ПИД в условиях случайных воздействий извне вроде ж не самый лучший регулятор.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

a5021, а там многое под большим вопросом.
А все происходящие смахивает на саморекламу себя и платформио ...
Нашел транзистор. Понюхал.
Сообщения: 191
Зарегистрирован: Вт июн 05, 2018 00:18:01

Сообщение pvit »

[uquote="AndTer",url="/forum/viewtopic.php?p=3459070#p3459070"]pvit, ты что правда говорил о недостаточности для этого f0?[/uquote]
https://radiokot.ru/forum/viewtopic.php ... 6#p3443376
https://radiokot.ru/forum/viewtopic.php ... 5#p3445575

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

Добавлено after 22 minutes 15 seconds:
[uquote="AndTer",url="/forum/viewtopic.php?p=3458934#p3458934"]А на сколько реально нужно сваливать с куба? Назрело? Какие аргументы?[/uquote]
Ни на сколько. Просто не нравится что он генерит код с main, который надо править руками. Типа, личная непризнь. Но я не настолько упорот, чтобы из-за нее придумывать себе трудности. Как изолировать это страховидло от основного кода я для себя решил. Если не найдется чего-то поприличнее - переживу. Найдется - поменял бы.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Сообщения: 6457
Зарегистрирован: Пт сен 13, 2013 13:11:31

Сообщение a5021 »

[uquote="pvit",url="/forum/viewtopic.php?p=3459128#p3459128"]Как изолировать это страховидло от основного кода я для себя решил.[/uquote]
Я поглядел и теперь думаю, что лучше бы не делал этого. Вы точно уверены, что это хорошая идея, закопать main.c глубоко внутрь каталога /lib? Вы когда нибудь видели, чтобы кто-то еще так делал?
Я поделился информацией по тому вопросу, в котором неплохо разбираюсь.
На гитхабе вы пишете, что только еще собираетесь попробовать М0, но здесь убеждаете, что этот вариант точно ни в какую не годится. Вы где врете?
Реклама
Мучитель микросхем
Сообщения: 446
Зарегистрирован: Вс ноя 01, 2015 09:15:16
Откуда: 69.Ржев

Сообщение a797945 »

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

[uquote="VladislavS",url="/forum/viewtopic.php?p=3458996#p3458996"]...
Не мешайте компилятору работать.[/uquote]
я не компилятор собирался учить, а себя.
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

[uquote="a797945",url="/forum/viewtopic.php?p=3459622#p3459622"]я не компилятор собирался учить, а себя.[/uquote]"Premature optimization is the root of all evil"©
Друг Кота
Аватара пользователя
Сообщения: 7383
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Сообщение uldemir »

Вопрос к спецам CubeMX, остальные могут выдохнуть и расслабиться. Что нужно еще сделать, чтобы таймер сконфигурённый в кубе запустился? Вот, сконфигурил его - а ничего не происходит. Зашел отладчиком - прескалер, коэффициент деления появились, а вот CEN и еще кое что, никто не взвёл.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Мучитель микросхем
Сообщения: 446
Зарегистрирован: Вс ноя 01, 2015 09:15:16
Откуда: 69.Ржев

Сообщение a797945 »

VladislavS
Вы обо мне слишком высокого мнения, со мной все гораздо проще (бывает по несколько недель за компом не бываю)

вот это для меня была новость:
написано if((Count != 0) & ((tmp1 == 0xFF) | (tmp1 != (Status |0x80))))
по сути, если первое сравнение "лож", то остальные проверки можно не делать,
но железяка собирает по написанному, как апп. схему, сказано три входа - значит три надо опросить.
теперь надо пошурупить, где я смогу такие свои конструкции разветвить на коротких проверках.
теперь понятно что значит "писать простые алгоритмы" :)))
а ведь в какой-нибудь умной книжке про это написано.
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

Для вас будет ещё большим открытием, что & и && это разные операции :)
Мучитель микросхем
Сообщения: 446
Зарегистрирован: Вс ноя 01, 2015 09:15:16
Откуда: 69.Ржев

Сообщение a797945 »

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

:) Спасибо

uldemir
я не знаком с кубом, но и Вы не озвучили - что должно пинать таймер (какое событие) или "вручную".
Друг Кота
Аватара пользователя
Сообщения: 7383
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Сообщение uldemir »

a797945 писал(а):я не знаком с кубом
тогда выдохните.
ок, я уже добрался до номального тырнета и нашел ответ на свой вопрос.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Встал на лапы
Аватара пользователя
Сообщения: 134
Зарегистрирован: Пн ноя 07, 2016 12:14:14

Сообщение bezzabotna »

Здравствуйте.
Проблема с FatFS
Сначала все было ок, данные на cd карту записывались нормально, но в один не прекрасный момент при отладке забыла написать f_close. После этого все сломалось, данные больше не записывались через мк, доступ к карте через юсб просил форматирования.
Ок. Отформатировала, уже отдельно через другой картридер(FAT 32 размер кластера 4096). Поставила соответствующую настройку кластера в ffconf.h. Раньше до моего косяка он был 512 байт и все работало, но мне в любом случае надо бы размер кластера побольше. Данных будет много и надо их побыстрее записывать.
После форматирования доступ к карте по юсб работает корректно, но доступ через мк (SDIO) так и не работает. Даже не монтируется.
Как решить проблему?
Я конечно все понимаю, но этого я не понимаю.
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="bezzabotna",url="/forum/viewtopic.php?p=3460241#p3460241"]Раньше до моего косяка он был 512 байт и все работало, но мне в любом случае надо бы размер кластера побольше. Данных будет много и надо их побыстрее записывать.[/uquote]
Верни 512, на физическом уровне у карт все равно блоки именно такого размера, так что быстрее вряд ли будет, а вот не работать вообще может запросто.
Встал на лапы
Аватара пользователя
Сообщения: 134
Зарегистрирован: Пн ноя 07, 2016 12:14:14

Сообщение bezzabotna »

Вернула. Но этого оказалось недостаточно. Файл все равно не монтировался. В общем проблема решилась откатом программы к работающему состоянию. И форматирование с кластером 2048.
Я конечно все понимаю, но этого я не понимаю.
Вымогатель припоя
Сообщения: 574
Зарегистрирован: Вт ноя 02, 2010 17:46:37

Сообщение pokk »

Подскажите если в каком нибудь stm32Fx возможность, подключить событие(изменения состояния на выводе) как запрос DMA в режиме память-память ? Хочу что бы автоматически(без вхождения в обработчик прерываний) получилось , по выводу INT DMA получила запрос на считывание и по (FSMC) из периферии считался/записался блок данных.
Пролистал stm32f103, там DMA(память память ) запускается только битом EN. :(
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="pokk",url="/forum/viewtopic.php?p=3460753#p3460753"]Пролистал stm32f103, там DMA(память память ) запускается только битом EN. :([/uquote]
При копировании из памяти в память не обязательно выбирать режим Mem2Mem, например, если частота опроса порта задается таймером, то источником будет периферия. Тут главное понять, что один запрос DMA не инициирует всю передачу целиком(если не считать режим Burst), нужно много таких запросов, т.е. таймер должен работать пока вся передача не завершится.
Вымогатель припоя
Сообщения: 574
Зарегистрирован: Вт ноя 02, 2010 17:46:37

Сообщение pokk »

[uquote="Reflector",url="/forum/viewtopic.php?p=3460808#p3460808"]например, если частота опроса порта задается таймером, то источником будет периферия.[/uquote]
Эх увы, одиночный импульс, точнее уровень 1/0
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="pokk",url="/forum/viewtopic.php?p=3460832#p3460832"]Эх увы, одиночный импульс, точнее уровень 1/0[/uquote]
Суть не в этом, по уровню тебе нужно запустить таймер, который будет пинать DMA столько раз, сколько нужно. Просто схема получается более сложная, но думаю вполне реализуемая.
Мудрый кот
Сообщения: 1841
Зарегистрирован: Вт авг 15, 2017 10:51:13

Сообщение jcxz »

[uquote="Reflector",url="/forum/viewtopic.php?p=3460834#p3460834"]Суть не в этом, по уровню тебе нужно запустить таймер, который будет пинать DMA столько раз, сколько нужно. Просто схема получается более сложная, но думаю вполне реализуемая.[/uquote]
..... И получить или:
1) Ненадёжную систему: события идут часто, и очередное событие от таймера может быть потеряно, так как не обработалось ещё предыдущее, потому что шина как раз загружена процессором или другими DMA-каналами. В результате - по запросам от таймера данные считываются из памяти-источника в FIFO-буфер DMA, но не успевают записаться в память-приёмник, потому что она как раз сейчас сильно занята -> FIFO переполняется -> данные теряются. Такое будет происходить от случая к случаю - как карта ляжет.
2) Очень медленную пересылку, потому что (для борьбы с п.1) период таймера пришлось сильно увеличить.
PS: Такой трансфер нужно делать только единым блоком, по одному сигналу запроса.
Ответить

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