>
| 71 Просмотров | | Число комментариев: 0

Прерывания (interrupts) приостанавливают выполнение текущей программной инструкции и вызывают совсем другую подпрограмму - обработчик прерывания. После того как обработчик выполнит свои инструкции, то вернет управление обратно в то место, откуда была прервана основная программа. Это может быть полезно, например, если приложение должно синхронизироваться по времени (при срабатывании прерывания таймера в строго заданный интервал времени), если нужно мгновенно отреагировать на внешнее событие (нажали на кнопку), оперативно прочесть значение ADC сразу по завершении преобразования и так далее.

Прерывания от каждого источника прерываний будут вызывать разные обработчики прерываний. В STM8 есть так называемые векторы прерываний, их 32, но фактически могут быть задействованы только 23 из них, так как 9 зарезервированы. Таким образом можно создать до 23 обработчиков прерываний. Примером вектора прерываний может послужить вектор IRQ22 "ADC1", он вызывает подпрограмму-обработчик прерывания, возникшего от источника "ADC1" при окончании преобразования (выставление флага EOC - end of conversion и вызов прерывания) или при возникновении события AWD (Analog watchdog, флаг AWD будет выставлен и вызвано то же самое прерывание, что и при выставлении флага EOC). Таким образом, по флагам можно понять, почему "сработал" этот вектор.

| 58 Просмотров | | Число комментариев: 0

Аналого-цифровой преобразователь STM8 способен перевести аналоговое значение в цифровое с точностью в 10 бит, или с погрешностью в 0,097%. При максимальном уровне сигнала 3.3V, шаг дискретизации будет 3,2 мВ (соответственно, напряжение на входе можно определить с точностью до 3,2 мВ).

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

| 59 Просмотров | | Число комментариев: 0

В микроконтроллерах STM8S обычных линеек, установлен аналогово-цифровой преобразователь с разрядностью (точностью) 10 бит. Конкретно в STM8S103F3T6 имеется 5 аналоговых линий AIN2-AIN6, способных преобразовывать напряжение в диапазоне от 0 до Vdd. Отладочная плата Blue pill, используемая в этой практике, питает процессор напряжением 3,3V. Соответственно на аналоговую линию можно подавать напряжение в диапазоне от 0 до 3.3V.

10-Битная точность означает, что диапазон напряжений 0-3,3V будет представлен в цифровом виде как 0-1023. 10-битное максимальное число - это 1023 (210-1). Цифра, полученная в результате аналогово-цифрового преобразования, называется дискретным значением АЦП.

| 60 Просмотров | | Число комментариев: 0

Прежде всего стоит отметить, что в практической работе совершенно не использовалась библиотека Standard Peripheral driver Library (SPL), чтобы избежать излишней абстракции и исключить процедуру поиска, установки, настройки - сейчас бы это только мешало и запутывало. При компиляции проекта использовались лишь определения периферии из заголовочных файлов компилятора Cosmic (CXSTM8). Посмотрим в заголовочный файл iostm8s103.h в котором описаны регистры периферии. Вот интересный фрагмент, описывающий порт PB. Управление всеми линиями этого порта умещается в пять восьмибитных регистров (однако на МС STM8S103F3T6 выведено лишь две линии порта PB, это PB4 и PB5)

| 64 Просмотров | | Число комментариев: 0

Тривиальная, казалось бы, задача написать Hello world для STM8, но сделать это и понять окончательно все тонкости - вовсе не тривиальная задача. Существует 1001 способ помигать светодиодом на разных инструментах, со стандартной библиотекой периферии (SPL) и без нее, на Си и ассемблере. Я же хочу представить работу с той средой, которая уже имеется: STVD + CXSTM8. В качестве отладочной платы будет использоваться известная как "Blue pill" китайская плата, на борту которой стоит STM8S103F3P6. Такую плату можно приобрести на али (посмотрите предложения по ссылке STM8S103F3P6 board).

Для дальнейшей работы понадобятся, собственно, отладочная плата и программатор ST-Link. Сегодня продаются оригинальные (как на фото) или в виде "свистка" (китайский клон, похож на флешку в алюминиевом или пластиковом корпусе).