Программирование STM8
Re: Программирование STM8
А возможно сделать прерывание на заданное число импульсов от энкодера ? Без учета направления.
Re: Программирование STM8
Сделать предварительную запись в счетчик некоторого значения, по достижению которого сгенерируется определенное прерывание.
Прерывание прерыванием, а стоит ли возится с STM8, если их дальнейшее производство под бааальшим вопросом?
Прерывание прерыванием, а стоит ли возится с STM8, если их дальнейшее производство под бааальшим вопросом?
Астролябия-сама меряет, было бы что мерять!!!
Re: Программирование STM8
Asmodey писал(а):Сделать предварительную запись
Мне это подойдет, но я рассчитывал на что-то более "высокотехнологичное"
Типа, задал крайние значения , и при их достижении - прерывания.
Asmodey писал(а):стоит ли возится с STM8
У меня валяется пара китайских платок , не выбрасывать же их.
В принципе, и жизнь на Земле под большим вопросом.
А у вас это достоверная информация , или по линии ОБС?
Проблемы со всей электроникой , в январе я купил на Али 5 6-ногих АВР-ок за 150р , а сейчас они 900.
- главный колбасист
- Это не хвост, это антенна
- Сообщения: 1322
- Зарегистрирован: Чт авг 21, 2014 11:11:48
- Откуда: краснодарский край
- Контактная информация:
Re: Программирование STM8
У асмодея не может быть недостоверной информации.
Он обладает тайными знаниями,сами знаете откуда он.
Другое дело,служит силам зла...
Он обладает тайными знаниями,сами знаете откуда он.
Другое дело,служит силам зла...
Re: Программирование STM8
Приветствую всех!
Помогите выйти на контакт, для написания прошивки на мк STM8S003F3P6.
Задача: фоновая подсветка здания RGBW-фонарями. Всё работает, но нужна программа для прошивки контроллеров, которые уже стоят в платах управления. Тк мк защищён от копирования, нужна сама прошивка.
Алгоритм следующий: при включении фонаря попеременно переключаются все четыре цвета(для проверки целостности лед-диодов и работы каждого цвета в отдельности), затем по-кругу плавное увеличение-уменьшение свечения.
При подаче управления от внешнего контроллера
по протоколу DMX512 начинает работать программа прописанная на устройстве управления.
Если сигнал управлени отсутствует/пропал, то прошивка на STM8S003F3P6 включает свой алгоритм работы, а именно, цвета замерли которые были активны на момент пропадания внешнего сигнала и дальше по кругу плавное увеличение-уменьшение свечения.
Если сможете вытащить прошивку с мк, то задача вообще упрощена будет. Платы управления уже собраны, заводские с пинами для подключения программатора, мудрить ничего не нужно особо.
Вся работа будет оплачена, главное результат!!!
Дальнейшее обсуждение в личке.
Помогите выйти на контакт, для написания прошивки на мк STM8S003F3P6.
Задача: фоновая подсветка здания RGBW-фонарями. Всё работает, но нужна программа для прошивки контроллеров, которые уже стоят в платах управления. Тк мк защищён от копирования, нужна сама прошивка.
Алгоритм следующий: при включении фонаря попеременно переключаются все четыре цвета(для проверки целостности лед-диодов и работы каждого цвета в отдельности), затем по-кругу плавное увеличение-уменьшение свечения.
При подаче управления от внешнего контроллера
по протоколу DMX512 начинает работать программа прописанная на устройстве управления.
Если сигнал управлени отсутствует/пропал, то прошивка на STM8S003F3P6 включает свой алгоритм работы, а именно, цвета замерли которые были активны на момент пропадания внешнего сигнала и дальше по кругу плавное увеличение-уменьшение свечения.
Если сможете вытащить прошивку с мк, то задача вообще упрощена будет. Платы управления уже собраны, заводские с пинами для подключения программатора, мудрить ничего не нужно особо.
Вся работа будет оплачена, главное результат!!!
Дальнейшее обсуждение в личке.
Последний раз редактировалось Assatm Сб сен 11, 2021 14:27:33, всего редактировалось 1 раз.
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: Программирование STM8
Крутое у вас техзадание. Вряд ли кто возьмётся дешевле 100т.р. чистыми!
Re: Программирование STM8
Астролябия-сама меряет, было бы что мерять!!!
Re: Программирование STM8
Народ, кто имел опыт программирования STM8 на ассемблере под IAR? Если с сегментацией в STVD все понятно, т.к. есть нормальное описание, то IARовская SECTION это какой-то темный лес, даже после прочтения IAR Assembler Reference Guide. Никаких явных предопределений в IAR тоже не нашел, но это не проблема, отберу у STVD и подшаманю. Самая главная проблема - правильно разбить код на сегменты, ORG не работает гад.
Re: Программирование STM8
Здравствуйте. Имеется такая схема ,потерял термодатчик. Подскажите марку этого термодатчика. Спасибо.
- Вложения
-
- nkggq2jfx.png
- (22 КБ) 213 скачиваний
Re: Программирование STM8
кто имел опыт программирования STM8 на ассемблере под IAR?
Я разработал тестовый проект для STM8 на ассемблере под IAR лет 10 назад. С тех пор прошло много времени и я с этими МК дел более не имел и практически всё забыл. Однако, проект остался, если интересно, могу прислать в ЛС. Там, в частности, можно посмотреть как сегменты определены.- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: Программирование STM8
Подскажите марку этого термодатчика
Эта универсальная плата индикации в прибор на динрейку, датчики подключаются разнообразные (зависит от прошивки) - DS18B20, KTY84, термопара, HIH...
Спойлер

Re: Программирование STM8
[uquote="GrV864",url="/forum/viewtopic.php?p=4093655#p4093655"]Подскажите марку этого термодатчика
Эта универсальная плата индикации в прибор на динрейку, датчики подключаются разнообразные (зависит от прошивки) - DS18B20, KTY84, термопара, HIH...
Спойлер

А как узнать какая прошивка ,и какой прописан,я так понимаю не реально? Подключил ds18b20, так пока пальцем не дотронишься к ноге vdd работает,отпускаешь ошибка. У меня это терморегулятор Dalas 40 A.
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: Программирование STM8
Схема в режиме ”паразитного питания” позволяет подключить термодатчик к микроконтроллеру всего двумя проводами

з.ы. резистор уже внутри прибора

з.ы. резистор уже внутри прибора
Re: Программирование STM8
Схема в режиме ”паразитного питания” позволяет подключить термодатчик к микроконтроллеру всего двумя проводами

з.ы. резистор уже внутри прибора

з.ы. резистор уже внутри прибора
Почему тогда не работает. Пишет ерор.
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: Программирование STM8
по картинкам через гуглопоиск "Dalas 40 A" по двум проводам, датчик в термоусадке (может там резистор размещают, под термоусадкой).
На сколько помню именно у этого производителя была проблема с дс18б20 - попались без паразитного питания. Ставил диод и конденсатор

з.ы. это вообще то офтоп в теме - надо модератора просить удалить
На сколько помню именно у этого производителя была проблема с дс18б20 - попались без паразитного питания. Ставил диод и конденсатор

з.ы. это вообще то офтоп в теме - надо модератора просить удалить
Re: Программирование STM8
по картинкам через гуглопоиск "Dalas 40 A" по двум проводам, датчик в термоусадке (может там резистор размещают, под термоусадкой).
На сколько помню именно у этого производителя была проблема с дс18б20 - попались без паразитного питания. Ставил диод и конденсатор

з.ы. это вообще то офтоп в теме - надо модератора просить удалить
На сколько помню именно у этого производителя была проблема с дс18б20 - попались без паразитного питания. Ставил диод и конденсатор

з.ы. это вообще то офтоп в теме - надо модератора просить удалить
Резистора под термоусадкой не было,он у меня как то отпадал,я его прираивал. Там было три ножки,одна из них обломана. На две провода.
-
kvn234
- Потрогал лапой паяльник
- Сообщения: 323
- Зарегистрирован: Вс апр 17, 2011 09:51:26
- Откуда: Тула
Re: Программирование STM8
Приветствую всех!
Пытаюсь разобраться с ADC STM8L151.
Пробовал выполнить чтение 4х каналов с использованием DMA, были проблемы с синхронизацией - решил.
Но смущает низкая точность измерения 12 разрядного ADC. Решил проверить в режиме одиночного преобразования 4х каналов.
Входы 4х каналов соединены и на них подано напряжение с батарейки. При этом наблюдаются значительные расхождения между каналами и показания скачут.
Напряжение питания стабилизировано и меняется незначительно, что видно по измерениям канала внутреннего ИОН.

{
CLK_PeripheralClockConfig(CLK_Peripheral_ADC1, ENABLE);
ADC_DeInit(ADC1);
Vrefint = *Factory_VREFINT;
Vrefint += 0x600;
ADC_Init(ADC1, ADC_ConversionMode_Single, ADC_Resolution_12Bit,ADC_Prescaler_2);
ADC_SamplingTimeConfig(ADC1, ADC_Group_SlowChannels, ADC_SamplingTime_384Cycles);
ADC_SamplingTimeConfig(ADC1, ADC_Group_FastChannels, ADC_SamplingTime_384Cycles);
/* Disable the specified ADC DMA request */
ADC1->SQR[0] |= ADC_SQR1_DMAOFF;
ADC1->CR1 |= ADC_CR1_ADON;
}
//----------
uint16_t GetChannel(ADC_Channel_TypeDef Channel)
{
uint32_t res;
uint16_t i;
ADC_ChannelCmd(ADC1, Channel, ENABLE);
ADC_SchmittTriggerConfig(ADC1, Channel, DISABLE);
for(i=0x00ff; i ; i--);
ADC1->CR1 |= ADC_CR1_START;
while (!(ADC1->SR & ADC_FLAG_EOC));
res = ADC_GetConversionValue(ADC1);
ADC_ChannelCmd(ADC1, Channel, DISABLE);
return (uint16_t)res;
}
Каналы записываются в массив и передаются на компьютер.
{
buf_dma_adc [0] = GetChannel(ADC_Channel_0);
buf_dma_adc [0] = GetChannel(ADC_Channel_0);
buf_dma_adc [1] = GetChannel(ADC_Channel_1);
buf_dma_adc [2] = GetChannel(ADC_Channel_2);
buf_dma_adc [3] = GetChannel(ADC_Channel_4);
buf_dma_adc [4] = GetChannel(ADC_Channel_Vrefint);
out_usart();
Еще один момент. Если убрать повторное считывание 0 канала, то считываются данные с ADC_Channel_Vrefint.
Подскажите где у меня ошибка, не верится чтобы 12 разрядный ADC выдавал такие погрешности.
Или возможно дефектный микроконтроллер.
Опыт программирования AVR имею, с STM8 много не работал.
Пытаюсь разобраться с ADC STM8L151.
Пробовал выполнить чтение 4х каналов с использованием DMA, были проблемы с синхронизацией - решил.
Но смущает низкая точность измерения 12 разрядного ADC. Решил проверить в режиме одиночного преобразования 4х каналов.
Входы 4х каналов соединены и на них подано напряжение с батарейки. При этом наблюдаются значительные расхождения между каналами и показания скачут.
Напряжение питания стабилизировано и меняется незначительно, что видно по измерениям канала внутреннего ИОН.

Спойлер
void init_adc(void){
CLK_PeripheralClockConfig(CLK_Peripheral_ADC1, ENABLE);
ADC_DeInit(ADC1);
Vrefint = *Factory_VREFINT;
Vrefint += 0x600;
ADC_Init(ADC1, ADC_ConversionMode_Single, ADC_Resolution_12Bit,ADC_Prescaler_2);
ADC_SamplingTimeConfig(ADC1, ADC_Group_SlowChannels, ADC_SamplingTime_384Cycles);
ADC_SamplingTimeConfig(ADC1, ADC_Group_FastChannels, ADC_SamplingTime_384Cycles);
/* Disable the specified ADC DMA request */
ADC1->SQR[0] |= ADC_SQR1_DMAOFF;
ADC1->CR1 |= ADC_CR1_ADON;
}
//----------
uint16_t GetChannel(ADC_Channel_TypeDef Channel)
{
uint32_t res;
uint16_t i;
ADC_ChannelCmd(ADC1, Channel, ENABLE);
ADC_SchmittTriggerConfig(ADC1, Channel, DISABLE);
for(i=0x00ff; i ; i--);
ADC1->CR1 |= ADC_CR1_START;
while (!(ADC1->SR & ADC_FLAG_EOC));
res = ADC_GetConversionValue(ADC1);
ADC_ChannelCmd(ADC1, Channel, DISABLE);
return (uint16_t)res;
}
Каналы записываются в массив и передаются на компьютер.
Спойлер
while (1){
buf_dma_adc [0] = GetChannel(ADC_Channel_0);
buf_dma_adc [0] = GetChannel(ADC_Channel_0);
buf_dma_adc [1] = GetChannel(ADC_Channel_1);
buf_dma_adc [2] = GetChannel(ADC_Channel_2);
buf_dma_adc [3] = GetChannel(ADC_Channel_4);
buf_dma_adc [4] = GetChannel(ADC_Channel_Vrefint);
out_usart();
Еще один момент. Если убрать повторное считывание 0 канала, то считываются данные с ADC_Channel_Vrefint.
Подскажите где у меня ошибка, не верится чтобы 12 разрядный ADC выдавал такие погрешности.
Или возможно дефектный микроконтроллер.
Опыт программирования AVR имею, с STM8 много не работал.
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: Программирование STM8
kvn234, Я бы начал с внимательного чтения AN3137, так как причин такого поведения может быть очень много.
-
kvn234
- Потрогал лапой паяльник
- Сообщения: 323
- Зарегистрирован: Вс апр 17, 2011 09:51:26
- Откуда: Тула
Re: Программирование STM8
kvn234, Я бы начал с внимательного чтения AN3137, так как причин такого поведения может быть очень много.
Для примера назовите 1-2 причины.
С учетом следующего:
- напряжение питания стабильное о чем говорит стабильные показания channel VREFINT (ADCRef);
- по короткому проводу на все 4 канала подано напряжения от одной батарейки при этом показания на четырех каналах разные и скачут не синхронно в разные стороны
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: Программирование STM8
kvn234, 1. Требуется калибровка из-за наличия ошибки смещения.
2. Нестабильность частоты тактового генератора
3. Слишком высокая частота семплирования
4. Недостаточная пауза для стабилизации перед началом конвертации
Пока хватит?
2. Нестабильность частоты тактового генератора
3. Слишком высокая частота семплирования
4. Недостаточная пауза для стабилизации перед началом конвертации
Пока хватит?