Я для работы с I2C выдернул драйвер из ChibiOS, но тогда там был только драйвер для работы в мастер-режиме. Slave пришлось импровизировать самому. Сделал все через DMA. Разобравшись с этим драйвером, плюс чтение мануала и у Вас все получится.
_________________ Иван Сусанин - первый полупроводник
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Заголовок сообщения: Re: STM32 новичку в ARM что к чему
Добавлено: Ср дек 07, 2016 15:45:46
Встал на лапы
Зарегистрирован: Пт май 10, 2013 15:56:40 Сообщений: 101
Рейтинг сообщения:0
Ещё раз спасибо. Alexey_N Статейку кстати читал, оттуда и уверенность, что могу(со временем написать софтовый вариант) Мне конечно более интересен именно железный I2C, вот по нём что то и ищу, а то открыл RM и вспомнил своего класного руководителя(словами которых редактор не знает) за то что меня на немецкий язык записал,хотя я просился на ангицкий, типо учебников больше не нашлось, было б легче с такими вещами хоть чутя. Myp3ik Эх я как дочитал что такое DMA в сочетании с прерываниями подумал "а чем вообще ядро у stm занимается" - в моих представлениях после настройки периферия может выполнять оооочень много задач даже не обращаясь к ядру(по началу посчитал скока нужно простой меге частоты для довольно простой задачи, которую хотел решить "в лоб" и пошол искать контроллеры по быстрее, поняв что может арм а вопросу выбора не возвращался более). Но надо сначала разобраться с тем, что будет обслуживать DMA. СпойлерЗ.Ы. где взять время, а то мысли убегают в перёд не догониш
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
DMA в сочетании с прерываниями подумал "а чем вообще ядро у stm занимается" -
Как раз работой с прерываниями в этом сочетании и занимается. Прерывания - это передача исполнения из основной части программы в другую часть программы под действием некоторого внешнего события, не заданного программой напрямую. Контроллер прерываний NVIC только определяет последовательность действий при входе и выходе из прерывания или исключения. Остальные действия выполняются ядром. Ядро так же выполняет работу с данными, полученными из периферии посредством DMA. Сама по себе возможность работы периферии без участия ядра - бесполезна. Что толку от того, что например результаты измерений АЦП были загружены через DMA в некоторую область ОЗУ? Можно создать достаточно хитровыпендренные аппаратные связи периферии с запуском событий от хитросвязанных таймеров, но чем больше периферийных модулей влючено и используется, тем выше суммарное потребление микроконтроллера, и остановка ядра не будет эффективной мерой экономии. Всё должно быть в меру и разумно. С DMA тоже не всё так безоблачно и восторженно. DMA использует ту же самую шину AHB для пересылки данных, и для него определен порог времени занятия этой шины. У DMA есть арбитраж - приоритетность работы каналов (потоков). Распределение подключаемых к каналам (потокам) ресурсов не всегда нас, как программистов, может устроить. DMA имеет ограничение на количество пересылок за одну настройку = 65536 (16-битный регистр числа передач). При работе с параллельным выходным портом через DMA, порт перезаписывается целиком. И в конце концов, далеко не всё можно реализовать только лишь на аппаратных возможностях. С помощью DMA можно облегчить и ускорить некоторые операции, особенно высокоскосротные. Но DMA не панацея.
_________________ Подпись убрал вместе с автором. aen
Заголовок сообщения: Re: STM32 новичку в ARM что к чему
Добавлено: Чт дек 08, 2016 07:14:57
Опытный кот
Карма: 13
Рейтинг сообщений: 163
Зарегистрирован: Сб дек 22, 2012 08:17:42 Сообщений: 744 Откуда: Караганда, Казахстан
Рейтинг сообщения:0
Кстати, коллеги, что-то я не нашел, какую максимальную частоту можно подать таймеру общего назначения на внешний вход? STM32F103, 72 МГц. Подскажите, плз, в какой ПДФ-ке и в каком месте это прописано?..
_________________ Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Кстати, коллеги, что-то я не нашел, какую максимальную частоту можно подать таймеру общего назначения на внешний вход? STM32F103, 72 МГц. Подскажите, плз, в какой ПДФ-ке и в каком месте это прописано?..
В даташите. По входу таймера не более половины тактирующей таймера, т.к. там присутствует синхронизация. По входу ETR - с делителем на 8 в 8 раз больше половины тактирующей таймера, это теоретический максимум.
Добавлено after 2 minutes 34 seconds:
afz писал(а):
Но это, как я понимаю, все-таки разгон, а штатно? 72?
Да нет, вроде. Никакого разгона. 72МГц как бы даже СТМ8С003 спокойно переваривают.
Заголовок сообщения: Re: STM32 новичку в ARM что к чему
Добавлено: Чт дек 08, 2016 20:51:32
Встал на лапы
Зарегистрирован: Пт май 10, 2013 15:56:40 Сообщений: 101
Рейтинг сообщения:0
Мурато Мяуконни Ну я наверно не точно выразился, имелось ввиду, что можно снять много нагрузки с ядра. Ну типо периферия пинает DMA и на оборот DMA пинает периферию(типо АЦП отработал, выставил флаг, DMA увидел и перенёс данные в заранее оговоренное место), а ядро соответственно меньше раз прерывания устраивает(я по крайней мере понял так). При очень частом обращении к периферии смысл в таких ухищрениях ИМХО есть. И как вы правильно заметили за всё надо платить(увеличение потребления тока, занятость шин).
Решил я опробовать MEMS сенсор MPU-9250. Скачал исходники Oculus Rift DK1 так как там используется похожий сенсор и STM32 в качестве контроллера. Исходники под CooCox. Так вот, заметил такую штуку - компилирую исходники в CoIDE - ошибок нет, но после записи прошивки в МК и подключении к ПК USB HID не находится, а эти же исходники, собранные через Makefile во-первых отличаются по размеру, а во-вторых работают нормально. С чем это связано пока не понял. Все ключи для gcc в Makefile перенёс из CoIDE.
Эти исхоники? https://github.com/OculusVR/RiftDK1 Проект кокоса во видимому нормальный, потому что я его импортировал в EmBitz и скомпилировал. Залил в STM32F103C8T6. Устройство определяется компом как HID. Возможно что-то не так с настройками кокоса.
Да, исходники эти. Вот и не понятно, что с кокосом, так как в проекте менялась только обработка сенсоров, все остальные настройки не трогались. В настройках самого кокоса вроде нет настроек, влияющих на компиляцию, только те, что в проекте.
Переустановите кокос с удалением всех файлов в т. ч. файлов настроек. Возможно это поможет. Причина может быть еще в том что изначально проект создавался в другой версии кокоса и возможно в ней отличаются настройки по умолчанию не входящие в проект, но влияющие на компиляцию.
В документации на keil сказано The following table gives the limits for floating-point numbers. These constants are defined in the float.h include file. Скорее всего и для iar справедлив тот же include file.
Скажите, а можно ли в STM32F030 инвертировать сигнал, выдаваемый по MOSI (не только сами биты, но и чтобы в паузе 1 держалась)? Хочу нагружать вывод МК на открытый коллектор - неохота ставить 2 транзистора.
Сейчас этот форум просматривают: Bing [Bot], xDriver и гости: 32
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения