UART с буферами и прерываниями разобрался Еще такой вопрос Когда велючен RX receiver можно ли считывать значение этого пина обычным образом? Т.е. Можно ли знать ноль там сейчас или единица?
Карма: 1
Рейтинг сообщений: 7
Зарегистрирован: Чт май 14, 2015 15:11:39 Сообщений: 424 Откуда: Саратов
Рейтинг сообщения:0
Всем привет. В чем разница между функциями GPIO_ReadOutputData() и GPIO_ReadInputData()? Взято из библиотечного файла: Спойлер/** * @brief Reads the specified GPIO output data port. * @note The port must be configured in input mode. * @param GPIOx : Select the GPIO peripheral number (x = A to I). * @retval GPIO output data port value. */ uint8_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx) { return ((uint8_t)GPIOx->ODR); }
/** * @brief Reads the specified GPIO input data port. * @note The port must be configured in input mode. * @param GPIOx : Select the GPIO peripheral number (x = A to I). * @retval GPIO input data port value. */ uint8_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx) { return ((uint8_t)GPIOx->IDR); }
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Карма: 1
Рейтинг сообщений: 7
Зарегистрирован: Чт май 14, 2015 15:11:39 Сообщений: 424 Откуда: Саратов
Рейтинг сообщения:0
Всем привет. В stm8s103 UART1 имеет пины: D4 - UART_CK, D5 - UART_TX, D6- UART_RX. Мне нужен D4 для других целей. Можно ли сделать так, чтоб UART не пользовался им?
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Зарегистрирован: Сб май 07, 2016 16:19:58 Сообщений: 13
Рейтинг сообщения:0
Здравствуйте. Хочу использовать в своем проекте STM8f003. C STM никогда не работал. И не могу найти описание регистров и их назначения. Необходимо UART и SPI. Какие даташиты смотреть? У ATMEL даташиты мне очень понравились, а у STM ничего подобного найти не могу. Все разбросано. Подскажите, дайте пожалуйста ссылки)) И еще такой вопрос, как лучше, проще работать с STM на прямую с регистрами или использовать библиотеки SPL?
а у STM ничего подобного найти не могу. Все разбросано. Подскажите, дайте пожалуйста ссылки)) И еще такой вопрос, как лучше, проще работать с STM на прямую с регистрами или использовать библиотеки SPL?
http://www2.st.com/content/st_com/en/pr ... 003f3.html качать Datasheet, Reference Manual RM0016, Errata Sheet ES0102 в Datasheet информация о конкретном микроконтроллере, типа распиновка, количество флэша, памяти и пр. В Reference Manual информация о внутренностях (периферия и пр.) на всю линейку микроконтроллеров, потому что периферия у всех представителей линейки однообразна, в отличии от тех же AVR. В Errata Sheet понятно. Работать имхо лучше напрямую с регистрами, руководствуясь Reference Manual.
Casper17 STM8 не сложнее AVR, нужно только перестроиться на другую логику документации Про документы вам уже написали RM0016 описывает все многообразие переферии в линейке STM8S, а даташит на конкретный МК описывает корпуса, пины и то, какая конкретно переферия из всей имеющейся в линейке есть в данном конкретном МК
SPL это уровень абстракции, програмирование на нем не сильно приблизит к пониманию того как работает сам МК. Выбор за вами, но выбрав SPL будьте готовы к тому, что в итоге все равно придете к програмированию регистров, только позже, когда поймете, что с SPL ничего не понимаете) у меня было именно так, правда от SPL я отказался почти сразу
Зарегистрирован: Сб май 28, 2016 13:35:35 Сообщений: 4
Рейтинг сообщения:1
Добрый день. Подскажите, правильно ли я понимаю, что в STM8 не все пины можно переключать в push-pull или open-drain режим, так как у некоторых из них он жестко задаётся соответствующей периферией в обход регистра CR1 (нельзя, например, I2C-пины переключить в push-pull даже при отключенном I2C)? В ref. manual на схеме GPIO есть некий сигнал «alternate enable», о котором вообще нигде ничего не поясняется.
upd. Вопрос снят. Всё просто. Оказывается, просто не все пины поддерживают Push-Pull.
Зарегистрирован: Сб май 28, 2016 13:35:35 Сообщений: 4
Рейтинг сообщения:0
Пытаюсь теперь закодить на том же STM8L обмен данными с датчиком по I2C1. Вопрос: по какой причине может возникать Arbitration Lost (флаг I2C1_SR2_bit.ARLO), если на шине по определению нет других мастеров? Причём возникнуть он может даже на пустой линии (к портам подключены только подтягивающие резисторы) (иногда, как и должен, выскакивает AF, а иногда - ARLO). Линии SDA и SCL в нуле никто не удерживает (если судить по значениям в регистре IDR в отладчике). Ещё вопрос: как пользоваться флагом I2C1_CR2_bit.SWRST (software reset)? В документации нигде про него не расписано. Также неясно, а может ли I2C контроллер вообще работать от fsysclock, «запитанного» от LSI? Ref manual гласит:
Цитата:
The peripheral input clock frequency must be at least: 1 MHz in Standard mode, 4 MHz in Fast mode
То есть при работе контроллера от LSI 38 кГц I2C корректно завести вообще нельзя?
Standard mode имеет частоту I2C равную 100кГц, а fast -- 400кГц. Умножать тактовую STM8 не умеют, т.ч. способа из 38кГц тактовой получить 100кГц I2C просто не существует в природе.
Зарегистрирован: Сб май 28, 2016 13:35:35 Сообщений: 4
Рейтинг сообщения:0
Извиняюсь, что не отписался. Проблема оказалась не в I2C контроллере (всё нормально работает от LSI), а в неправильном использовании датчика Am2321. Оказалось, что чтобы его корректно разбудить, нужно обратиться к нему, получить NACK и… перед отправкой стопового бита уронить всю линию (и SDA, и SCL) в 0 на 0.8 мсек. Как вам такое? Естественно I2C контроллер не даёт просто так порулить пином SDA, наплевав на стандарты шины I2C. Остаётся вручную портами дрыгать, имитируя вышеперечисленные действия. А датчик пробуждать нужно каждый раз, перед каждым считыванием показаний - после чтения он опять засыпает.
a5021 писал(а):
Standard mode имеет частоту I2C равную 100кГц, а fast -- 400кГц. Умножать тактовую STM8 не умеют, т.ч. способа из 38кГц тактовой получить 100кГц I2C просто не существует в природе.
Просто по документации не совсем было понятно, что в том контексте означает это «must». Означало ли это, что при меньшей частоте sysclock просто шину нельзя будет разогнать до 100 и 400 кГц, или же что (вдруг) имеется некая нигде не описанная аппаратная защита, которая при недостаточной частоте весь контроллер сбрасывает/вырубает (multimaster ведь…). Иными словами, мне подумалось, что, быть может, этот «must» - своего рода «absolute maximum (в данном случае minimum) ratings». В любом случае, вопрос снят.
Впрочем, было бы всё-таки интересно для общего развития узнать, как пользоваться флагом I2C1_CR2_bit.SWRST (software reset).
А есть ли смысл работать от LSI в этом случае? Я понимаю, что чем ниже частота, тем меньше потребление. Но все операции становятся весьма долгими и в это время процессор потребляет больше, чем если бы он уже давно находился во сне, отработав по-быстрому на высокой частоте.
Знатоки STM проясните ремонтнику, можно ли STM8S прошить также легко и бесплатно как скажем atmega32 понипрогом через RS232. Если да то какая прога нужна, и какая схема подключения?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения