Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.
Хорошо. Как я понял вот эта функция HAL_SPI_TxRxCpltCallback(); вызывается тогда когда происходит конец передачи данных по spi по ней можно устанавливать на ножки единицу. А какая функция вызывается когда начинается передача? Когда нужно ставить ножку в нуль.
Хардовый NSS имеет смысл использовать в связке с NSSP (Pulse mode) для управления, например, регистрами HC595 или чем-то подобным, когда требуется после передачи очередной порции инфы размером от полубайта до 2 байт защелкнуть эту инфу поднятием ножки NSS. Но режим NSSP есть далеко не во всех микроконтроллерах. Вообще, довольно странная комплектация модулями в линейках. Вроде бы микроконтроллер мощный стоит, а модуль упрощенный. И наоборот, в маломощном контроллере навороченный модуль. Бывает, че поделать... В обычном режиме NSS опускается, когда модуль SPI включен битом SPI_CR1_SPE. Тут тоже есть смысл использовать хардовый NSS, если в работе модуль может выключаться. Хотя бы для того, чтобы не забыть вовремя программно дернуть NSS. Потому что если не поднять NSS при выключенном модуле, можно словить ложные импульсы на приемном устройстве. Если SPI в работе не выключается, и на шине висит только одно устройство, то дергать SS вообще не обязательно. После включения модуля SPI опускаем программный NSS и больше не паримся. Если на одной шине висит несколько устройств, то хардовый NSS не используется. Вместо этого программно дергаются ножки SS для каждого устройства. Режим мультимастера, думаю, рядовые граждане не используют.
_________________ Подпись убрал вместе с автором. aen
Прежде, чем поднимать CS (NSS) в 1, надо а-а-бя-язательно убедиться, что передача по SPI окончилась. Для этого нужно отслеживать бит занятости BSY. Если он =1, то нужно дождаться пока будет BSY=0, это будет означать завершение текущей передачи. Иначе, последний передаваемый байт потеряется.
_________________ Подпись убрал вместе с автором. aen
А я с этим NSS в F0 поначалу напоролся - по умолчанию включен аппаратный NSS и SPI сразу вырубался с ошибкой "Mode Fault", т. к. модуль читал лог. 0 с незадействованной ноги NSS. Все заработало, когда я отключил аппаратный NSS записав SSM=1 и SSI=1 в регистре CR1.
Скажите, кто-нибудь пользовался CMSIS-DSP на STM32F0? Хочу БПФ использовать.
Чисто по приколу нажал "Make". После чего линкер выдал такое:
Код:
Error[Lp011]: section placement failed unable to allocate space for sections/blocks with a total estimated minimum size of 0x12f94 bytes (max align 0x4) in <[0x08000000-0x08007fff]> (total uncommitted space 0x7f4c).
20 918 bytes of readonly code memory 56 994 bytes of readonly data memory 2 201 bytes of readwrite data memory
Может я что в настройках библиотеки не сделал? Должна же она как-то в F0 помещаться!
Заголовок сообщения: Re: STM32 новичку в ARM что к чему
Добавлено: Вс ноя 20, 2016 21:49:42
Встал на лапы
Зарегистрирован: Пт май 10, 2013 15:56:40 Сообщений: 101
Рейтинг сообщения:0
Здравствуйте. Начинаю изучение стм32, и при попытке отладки она зацикливается на одной строчке. На 1043 строчке обработка проходит за 8 тактов и курсор остаётся на строчке, и соответственно всё по новой, получается замкнутый цикл. Проект пишу из статьи, вроде всё понятно(на сколько возможно при моём познании вопроса), но по этой же причине даже не знаю куда копать. ЗЫ Если отошлёте к мануалам, просьбы тыкнуть конкретно и с объяснением, а то я и с описаниями на русском раздупляюсь побуквенно(иногда буквально) и не с первого прочтения.
Заголовок сообщения: Re: STM32 новичку в ARM что к чему
Добавлено: Пн ноя 21, 2016 18:03:23
Встал на лапы
Зарегистрирован: Пт май 10, 2013 15:56:40 Сообщений: 101
Рейтинг сообщения:0
Myp3ik писал(а):
kaschak, потому что у Вас выбран STM32F10X_CL вместо STM32F10X_MD
Мда, ваша правда, выбирал по аналогии с название мк, вот и не угадал. Спасибо большое. Чувствую мне нужно более подробное руководство по освоению. Да кстати хороший вопрос - есть ли такое руководство? чтоб разжовано и на русском, а то с моим ангицким я освою когда всё устареет. Вот скажем мне попадалась разжованая до нельзя информация о GPOI и RCC, так теперь для меня текст программы не выглядит тарабарщиной, может и не понимаю почти ничего, но хотя б логику вижу хоть какую то. Читаю соответствующую тему здесь на форуме, но пока не густо.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения