Короче, разобрался с ДМА, кажись нашел не то багу, не то фичу. У ДМА где то зарыта аппаратная защита(!!!) от неправильных настроек. Есть там регистр CCR вот первый бит его это EN. B вы хрен его поставите если не настроите остальные параметры. Причем если вы запишите остальные биты ВМЕСТЕ с настройками, единым числом. То на одном канале это может прокатить, а на другом нет. Или прокатит, но как то частично и свалится в другом случае. Когда ДМА вдруг поймет, что ее наебали, загрузили все биты сразу и сбросит бит ЕН и даже вручную его взвести будет нельзя пока заново не перенастроишь ВСЕ остальные биты. Вот шиза то... Причем на одном канале это работает, на другом нет, на третьем частично как то
Комментарии: 24
Krevedko
Это F1? Там, так-то, много багов, всё-таки первый ARM Cortes от них
Anonim
да он
Boris
а теперь читаем внимательно манул - там чёрным по белому написано что доступ к регистрам дма только словами
Anonim
и как это связано? Я словами из записываю.
Boris
когда меняешь по одному биту он оптимизирует до байтов там можно посмотреть
Krevedko
О, надо глянуть, учтено ли это в stdpetiph
Anonim
а там автоматом это получается. Т.к. в спл ты вначале настраиваешь, а потом запускаешь, отдельной фукнцией.
Boris
а, да попутал
Krevedko
Так вот она могла писать байтами и крутить биты отдельно, если бы такое ограничение было.
Boris
Короче нашёл в доке что EN надо ставить последним и точка
Krevedko
Кстати, заметил, что никто почему-то не хочет пользоваться другими сериями STM32. Даже няшку STM32F030F4P6 почти не используют.
Boris
ну губители да я же от F1 ушёл по причине неоднородности переферии
Roman
мне это тоже не нравилось. А чем хорошо STM32F030F4P6?
Boris
tsop
Krevedko
Корпус прикольный :) И дешевый
Roman
Мне больше MKL03 от фрискейла нравится (из маленьких)
Krevedko
F0 серия вышла после F3, там с годами многое допилили
Anonim
а где ты это нашел? я кстати поставил последним... Чет не помогло. Вроде показалось ,что заработало. Но нет. Работает только если под отладчиком трассируешь. А потом бит этот один хер сбрасывается сам почему то Какой то странный квантовый эффект образовался если функцию инициализации пройдешь под отладчиком, то дальше все работает само а если после сброса, то хуй.
Krevedko
А если на другом камне попробовать? Вдруг брак? Я ж читал статью на сайте, с AVR такое было
Anonim
На разных пробовал не пробовал только на совсем другом камне, на вгт6 попробовать еще можно, но платы под него нет, а травить не охота.
Boris
Это RM0008
Anonim
Ты был прав. Дело в выравнивании по словам. Только в рм говорится что можно хоть как. Причём под отладчиком оно ведёт себя по другому. От того и квантовые эффекты.