Например TDA7294

Форум РадиоКот • Просмотр темы - Программирование STM8
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Чт дек 25, 2025 13:34:08

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 2585 ]     ... , , , 129,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт апр 24, 2025 06:41:30 
Мучитель микросхем
Аватар пользователя

Карма: 8
Рейтинг сообщений: 105
Зарегистрирован: Ср сен 02, 2015 07:47:20
Сообщений: 420
Рейтинг сообщения: 0
Не понимаю, почему вы отвергли этот вариант.

Человек же ясно написал:
но как то всё там... ну не заходит мне...

Т.е., чистая вкусовщина и нежелание учить родные инструменты, ибо:
Идеальный вариант для меня это: VSCode+PlatformIO+Proteus (для симуляции и макетирования).

Ну вот хочется так человеку, что поделать? Это же не наказуемо, просто всего-то бесполезно для дела. :dont_know:

_________________
Репозиторий STM32: https://cloud.mail.ru/public/2i19/Y4w8kKEiZ
Актуальность репозитория: 6 декабря 2025 года
Если чего-то не хватает с сайта st.com - пишите, докачаю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Вс июн 22, 2025 23:46:38 
Родился

Зарегистрирован: Вс июн 22, 2025 23:28:08
Сообщений: 2
Рейтинг сообщения: 0
Охотно приветствую дорогие друзья!
Впервые выбрался из своей берлоги, зарегистрировался на форуме с целью найти всё-таки решение проблемы следующего характера:
Решив окунуться в мир микроконтроллеров, почти ничего не зная, заказал себе пару плат STM8S003F3 с целью покопаться и разобраться как, что и почему (а заодно С поучить). И вот, найдя на всеми известном сайте с красной кнопкой пару гайдов, скачав и настроив STDV, написав программу осознал, что ошибка, которую я получил в консольной строке (вроде так называется, под вкладкой debug), вообще мне непонятна, попытки активного гуглинга ни к чему не привели, так что так я и принял это волевое решение написать сюда.
Собственно, при компиляции я наблюдаю следующее:
---------- Project ledonplate - STM8 Cosmic - Configuration Debug ----------

Running Linker
clnk -l"C:\Program Files (x86)\COSMIC\CXSTM8_EVAL\Lib" -o Debug\ledonplate.sm8 -mDebug\ledonplate.map -p -sa Debug\ledonplate.lkf
#error clnk Debug\ledonplate.lkf:1 symbol f_timUpdateInterrupt not defined (Debug\stm8_interrupt_vector.o )
The command: "clnk -l"C:\Program Files (x86)\COSMIC\CXSTM8_EVAL\Lib" -o Debug\ledonplate.sm8 -mDebug\ledonplate.map -p -sa Debug\ledonplate.lkf " has failed, the returned value is: 1
exit code=1.

ledonplate.elf - 3 error(s), 0 warning(s)


Вопрос встает следующий: что конкретно сломалось и как это починить?
Помогите пожалуйста


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Сб июн 28, 2025 22:44:47 
Родился

Зарегистрирован: Вс июн 22, 2025 23:28:08
Сообщений: 2
Рейтинг сообщения: 0
В общем, отвечая на собственный вопрос.
Выяснилось, что ошибка наблюдалась в файле "main.c", где я указал//@far @interrupt void tim1UpdateInterrupt(void) вместо //@far @interrupt void timUpdateInterrupt(void).
Проблема решена, код успешно откомпилирован и залит в микроконтроллер, работаемс дальшес. Всем спасибо и удачи!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Сб сен 06, 2025 12:53:15 
Родился

Зарегистрирован: Сб сен 06, 2025 12:38:07
Сообщений: 4
Рейтинг сообщения: 0
Приветствую! Нужна помощь. Не могу зайти в прерывание в режиме Симулятора (отладка). Вообще не заходит (что с таймером 1 что со 2ым)..
Что с IARовским что с SPL (не заходит в прерывания)

Если нужен исходник, выложу. Спасибо!

СпойлерПРИМЕР КОДА: IAR:

#include "stm8s.h"

static void SystemInit(void);

static void SystemInit(void)
{
/* Infinite loop */
CLK_DeInit();

CLK_HSICmd(ENABLE);

//while(CLK_GetFlagStatus(CLK_FLAG_HSIRDY)==0);

CLK_ClockSwitchCmd(ENABLE);
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV4);
CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV2);

GPIO_Init( GPIOB, GPIO_PIN_5, GPIO_MODE_OUT_PP_HIGH_FAST);
}



int main( void )
{
//Включаем прерывания.
SystemInit();
TIM2_DeInit();
TIM2_TimeBaseInit( TIM2_PRESCALER_128, 255);
TIM2_ClearFlag( TIM2_FLAG_UPDATE);
//Включаем прерывание от переполнения счётчика.
TIM2_ITConfig( TIM2_IT_UPDATE, ENABLE);
TIM2_Cmd(ENABLE);
enableInterrupts();
while(1){}
//return 0;
}

//Обработчик прерываний.
INTERRUPT_HANDLER(TIM2_UPD_OVF_TRG_IRQHandler, 13)
{

TIM2_ClearITPendingBit(TIM2_IT_UPDATE);

}



//////////////////////////////////////////////////////
#ifdef USE_FULL_ASSERT
void assert_failed(uint8_t* file, uint32_t line)
{
while (1){}
}
#endif


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Сб сен 06, 2025 18:01:51 
Мудрый кот

Карма: 25
Рейтинг сообщений: 494
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1814
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
в stm8s_it.c
проверьте строку - ​не закомментирована:
TIM2_UPD_OVF_TRG_IRQHandler ...

Удалите комментарий и попробуйте.


Последний раз редактировалось veso74 Сб сен 06, 2025 19:24:45, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Сб сен 06, 2025 18:32:58 
Родился

Зарегистрирован: Сб сен 06, 2025 12:38:07
Сообщений: 4
Рейтинг сообщения: 0
в stm8s_it.c
проверьте строку - ​не закомментирована:
TIM2_UPD_OVF_TRG_IRQHandler ...

Закомментирована. Все собирается без ошибок. Все библиотеки компилятор видит. Прошу проверить!
Возможно нужно будет подправить пути директорий. (в настройках компилятора IAR) Спасибо!
Ссылка:

https://drive.google.com/drive/folders/ ... drive_link


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пн сен 08, 2025 21:43:06 
Родился

Зарегистрирован: Сб сен 06, 2025 12:38:07
Сообщений: 4
Рейтинг сообщения: 0
Есть у кого IAR проект на SPL библиотеке. На любом STM8 с "рабочим" симулятором, который заходит в прерывание по переполнению любого таймера? Прошу поделится таким проектом. (или настройками) Спасибо! 8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Вт сен 09, 2025 04:12:30 
Говорящий с текстолитом

Карма: -7
Рейтинг сообщений: 187
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1660
Рейтинг сообщения: 1
Зачем эти пляски с симуляторами??? В нынешнее время, когда контроллеры STM8 и эмуляторы к ним стоят копейки - на кой так мучаться? Тратить кучу времени на отладку условно рабочего (читай - реально нерабочего) кода - ЗАЧЕМ???
Я понимаю, если бы ваш контроллер был из чистого золота на сапфировой подложке и с однократно программируемой памятью программ. Стоящий как чугунный мост. :)))

Но STM8...
Ну добьётесь вы входа в прерывание в симуляторе. Потом прошьёте в реальный МК, и... входы в прерывания снова перестанут работать. И снова отлаживать по-новой... :facepalm:
Сразу отлаживайте в железе. Забудьте про симулятор.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Вт сен 09, 2025 11:29:10 
Родился

Зарегистрирован: Сб сен 06, 2025 12:38:07
Сообщений: 4
Рейтинг сообщения: 0
Сразу отлаживайте в железе. Забудьте про симулятор.

Уговорили.. :)) Проблема решена! :) Так и сделаем! 8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Ср окт 01, 2025 15:36:54 
Грызет канифоль
Аватар пользователя

Зарегистрирован: Вс окт 20, 2019 13:03:56
Сообщений: 254
Рейтинг сообщения: 0
Добрый день. Лет 10 назад купил на алике платку с микроконтроллером STM8S003K3. Почитал про него, ничего не понял и убрал в долгий ящик. Сегодня она мне попалась на глаза, и я решил попробовать разобраться. Написал, точнее переписал найденную программку, успешно помигал светодиодом, вроде все хорошо. Потом решил немного усложнить, подключил светодиодную сборку к порту B, в который вывожу циклически растущую переменную и светодиоды должны показывать инкремент. И вроде бы работает, но возникла проблема - PB4 и PB5 не горят. Пробовал экспериментировать с PB_CR1 и PB_CR2 - ничего не дает. Электрически все хорошо. На этих выводах у него I2C, возможно что-то еще надо настроить? Может есть фьюзы какие-то?
Спойлер
Код:
#include <stdint.h>

#define F_CPU 8000000UL

#define _SFR_(mem_addr)     (*(volatile uint8_t *)(0x5000 + (mem_addr)))

/* PORT B */
#define PB_ODR      _SFR_(0x05)
#define PB_DDR      _SFR_(0x07)
#define PB_CR1      _SFR_(0x08)
#define PB_CR2      _SFR_(0x09)

static inline void delay_ms(uint16_t ms) {
    uint32_t i;
    for (i = 0; i < ((F_CPU / 18000UL) * ms); i++)
        __asm__("nop");
}

void main() {
    PB_DDR = 0xFF; // Configure port B as output
    PB_CR1 = 0xFF; // Port B in push-pull mode
    PB_CR2 = 0xFF;

   uint8_t i = 0;
    while(1) {
        PB_ODR = i;
        delay_ms(100);
        i++;
    }
}

Компилял SDCC, шил stm8flash в линуксе.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Ср окт 01, 2025 16:23:34 
Потрогал лапой паяльник
Аватар пользователя

Карма: 1
Рейтинг сообщений: 26
Зарегистрирован: Ср мар 09, 2016 08:07:41
Сообщений: 301
Рейтинг сообщения: 0
для PB4 и PB5 отсутствуют внутренние подтягивающие резисторы, т.к. шина I2C требует внешних подтягивающих резисторов для корректной работы. Поставьте внешние резисторы на эти выводы, и все заработает.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Ср окт 01, 2025 16:48:22 
Грызет канифоль
Аватар пользователя

Зарегистрирован: Вс окт 20, 2019 13:03:56
Сообщений: 254
Рейтинг сообщения: 0
У меня они в режиме выхода (push-pull), зачем им резисторы.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Ср окт 01, 2025 17:02:49 
Потрогал лапой паяльник
Аватар пользователя

Карма: 1
Рейтинг сообщений: 26
Зарегистрирован: Ср мар 09, 2016 08:07:41
Сообщений: 301
Рейтинг сообщения: 0
попробуйте явно отключить I2C
Код:
 I2C_CR1 = 0x00;

в принципе надо тактирование I2C1 отключить, в srm8s вроде все (точно не помню) включено при старте.

PS что вы этим алгоритмом хотите получить?
Код:
   uint8_t i = 0;
    while(1) {
        PB_ODR = i;
        delay_ms(100);
        i++;
    }

когда i= 1,включается PB0, когда i=2 включается PB1, когда i=3 включается PB0 и PB1 одновременно. При каких значениях i должны включаться PB4 и PB5 на какое время и с какой периодичностью?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Ср окт 01, 2025 17:39:50 
Мудрый кот

Карма: 25
Рейтинг сообщений: 494
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1814
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Shuspano, I2c, SDA и SCL: в push-pull? Что происходит с ACK, когда master в HIGH, а slave в LOW?

Включите выводы в open drain с внешними подтягивающими резисторами, реализацией стандартной конфигурации.


Последний раз редактировалось veso74 Ср окт 01, 2025 18:23:13, всего редактировалось 3 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Ср окт 01, 2025 17:57:21 
Грызет канифоль
Аватар пользователя

Зарегистрирован: Вс окт 20, 2019 13:03:56
Сообщений: 254
Рейтинг сообщения: 0
Не, обнулять I2C_CR1 не помогает
Нет, писал не о I2C, а о GPIO порте, на котором так-же I2C.
За I2C я даже боюсь браться. Чай не AVR-ка.

Добавлено after 16 minutes 12 seconds:
Включите выводы в open drain с внешними подтягивающими резисторами, реализацией стандартной конфигурации.

А так заработало. Типа, PB4,PB5 не могут в push-pull, или контроллер того за 10 лет?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Ср окт 01, 2025 17:58:42 
Мудрый кот

Карма: 25
Рейтинг сообщений: 494
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1814
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Если не включали периферии, она должна была быть выключенa.
Попробуйте установить уровень 1 "жестко" в коде и проверьте провода и светодиоды.
Код:
PB_DDR |= (1 << 4) | (1 << 5);  // PB4, PB5 как выходы
PB_CR1 |= (1 << 4) | (1 << 5);  // push-pull
PB_ODR |= (1 << 4) | (1 << 5);  // PB4, PB5 в 1

Со временем с МК ничего не происходит, даже если клеммы сгниют от коррозии :).
(Да, ето на "первое приближение". Иногда программы частично повреждаются).


Последний раз редактировалось veso74 Ср окт 01, 2025 18:25:11, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Ср окт 01, 2025 18:09:04 
Грызет канифоль
Аватар пользователя

Зарегистрирован: Вс окт 20, 2019 13:03:56
Сообщений: 254
Рейтинг сообщения: 3
Нет, не сработало. Короче, сдох или не может.
Ясно.
Единственный полный, и не особо увешанный альтернативными функциями порт. Обыдно :cry: .


Последний раз редактировалось Shuspano Ср окт 01, 2025 18:11:11, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Ср окт 01, 2025 18:10:30 
Мудрый кот

Карма: 25
Рейтинг сообщений: 494
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1814
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Фото на теста?
---
Как всегда для себя - сначала надо прочитать документацию :)
Спасибо за конкретный взгляд на STM8S003K3 - отмечу как особенность.

Изображение


Последний раз редактировалось veso74 Ср окт 01, 2025 18:27:26, всего редактировалось 2 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Ср окт 01, 2025 18:26:18 
Грызет канифоль
Аватар пользователя

Зарегистрирован: Вс окт 20, 2019 13:03:56
Сообщений: 254
Рейтинг сообщения: 3
Конечно можно
Изображение Изображение Изображение Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Вс дек 07, 2025 22:40:20 
Поставщик валерьянки для Кота

Карма: 34
Рейтинг сообщений: 313
Зарегистрирован: Вс ноя 15, 2009 23:13:59
Сообщений: 2132
Откуда: Харьков
Рейтинг сообщения: 0
Возможно ли на STM8L152/162 сделать, чтобы один из таймеров работал от часового кварца, пока проц сидит в halt (как на атмеге)? В документации сказано:
Цитата:
In some applications using the 32.768 kHz clock as a time base for the RTC, it may be
interesting to have time bases that work completely independently from the system clock.
The user can then schedule tasks without having to take into account the system clock.
For this purpose, the LSE clock is internally redirected to the 2 timers' ETR inputs (TIM2 and
TIM3) which are used as additional clock sources. Refer to Section 11.5.2: SYSCFG remap
control register 2 (SYSCFG_RMPCR2) on page 152.

Но ничего не сказано, будет это работать в halt или нет. Таймер пробуждения в RTC уже занят под другие цели (и освободить его проблематично).

_________________
Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 2585 ]     ... , , , 129,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y