Например TDA7294

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

Текущее время: Вс окт 26, 2025 14:58:14

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


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



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

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

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

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

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

_________________
Репозиторий STM32: https://cloud.mail.ru/public/2i19/Y4w8kKEiZ
Актуальность репозитория: 1 сентября 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
Рейтинг сообщений: 467
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1711
Откуда: 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
Рейтинг сообщений: 185
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1607
Рейтинг сообщения: 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
Сообщений: 252
Рейтинг сообщения: 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
Сообщений: 295
Рейтинг сообщения: 0
для PB4 и PB5 отсутствуют внутренние подтягивающие резисторы, т.к. шина I2C требует внешних подтягивающих резисторов для корректной работы. Поставьте внешние резисторы на эти выводы, и все заработает.


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

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


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

Карма: 1
Рейтинг сообщений: 26
Зарегистрирован: Ср мар 09, 2016 08:07:41
Сообщений: 295
Рейтинг сообщения: 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
Рейтинг сообщений: 467
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1711
Откуда: 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
Сообщений: 252
Рейтинг сообщения: 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
Рейтинг сообщений: 467
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1711
Откуда: 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
Сообщений: 252
Рейтинг сообщения: 3
Нет, не сработало. Короче, сдох или не может.
Ясно.
Единственный полный, и не особо увешанный альтернативными функциями порт. Обыдно :cry: .


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

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

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

Изображение


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

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

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


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

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


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

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


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

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


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