Программирование микроконтроллеров. Микроконтроллер: ST elecrtonics STM32x. Функции и задача устройства: Требуется разработать ПО для микроконтроллера STM32F042F4P6. Устройство преобразует сигнал температуры с датчика Pt1000 в выходной сигнал 4…20мА. Диапазон измеряемых значений – от -50 до +150 грдС. Контроллер должен выполнять следующие задачи: 1. Постоянное измерение напряжения на входе РА0 с частотой не менее 10 раз в секунду. 2. Осреднение измеренных значений. 3. Преобразование сигнала из цифрового кода АЦП (РА0) в температуру с точностью до 0,01 грдС с частотой 1 раз в секунду. Зависимость нелинейная, см. таблицу в конце файла. Значение 0,174В соответствует температуре -50грдС. Значение 2,68В соответствует температуре +150грдС. 4. Запись полученных значений в массив с циклической перезаписью. Размер массива – 100 значений. Данные в массиве в формате REAL или INT16. (Если INT16 – то записываем значение температуры, умноженное на 100 с учетом знака (12,75 грдС = 1275). 5. Запись температуры в ЦАП AD5621 по SPI. Для этого нужно отдельное преобразование данных с АЦП. ЦАП имеет 12 разрядов (4096 единиц). ЦАП должен выдать напряжение от 0 до 5В (VDD). Это напряжение на XTR117 преобразуется в ток 0…25 мА. При этом значение -50 грдС должно соответствовать напряжению 0,8В на выходе ЦАП (4мА на выходе XTR117). Значение 150 грдС должно соответствовать напряжению 4,0В на выходе ЦАП (20мА на выходе XTR117). 6. При выходе сигнала на входе АЦП за допустимые пределы (0,15В низ и 2,75В верх) В ЦАП должен быть передан код соответствующий 0В для напряжения АЦП ниже 0,15В и код соответствующий 5В для напряжения АЦП выше 2,75В. 7. Частота STM по схеме – 8 МГц. Это на будущее. На текущем этапе берем частоту от внутреннего генератора – 1МГц. Мощности источника питания для работы на 8МГц не достаточно. Дополнительные задачи: 1. Программирование и отладка по интерфейсу ST-Link v2. 2. Должна быть предусмотрена начальная программная калибровка датчика Pt1000 по 2-м точкам (предположительно 0 и 50 грдС). 3. Должна быть диагностика работы контроллера STM32. Если все хорошо – РА6 моргает с частотой 1 раз в 5 сек (длительность свечения 0,5 сек). Если у STM32 диагностированы внутренние ошибки – РА6 горит постоянно. Если у STM32 все хорошо, но сигнал с АЦП вышел за пределы диапазона (0,15В низ и 2,75В верх) – РА6 моргает с частотой 1 раз в 1 сек (длительность свечения 0,5 сек).