Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Re: Программирование STM8

Сб фев 18, 2017 00:44:53

Код:
__halt()

Re: Программирование STM8

Сб фев 18, 2017 17:32:24

JustRom, спасибо. В иаре это asm("halt");. А как выйти из этого режима изменению уровня на ножке?
Я так понимаю для начала надо настроить прерывание: PA_CR2_bit.C23 =1;?

Re: Программирование STM8

Сб фев 18, 2017 17:39:11

Вот что написано про команду HALT в документе Programming manual.
The interrupt mask is reset, allowing interrupts to be fetched. Then the
oscillator is stopped thus stopping the CPU and all internal peripherals,
reducing the microcontroller to its lowest possible power consumption. The
microcontroller resumes program execution after an external interrupt or
reset, by restarting the oscillator,and then, fetching the corresponding
external interrupt, which is generally an I/O interrupt, or the reset vector.


Ser-B писал(а):Я так понимаю для начала надо настроить прерывание: PA_CR2_bit.C23 =1;?
Кроме этого еще есть специальный регистр для внешних прерываний.

Re: Программирование STM8

Вт мар 21, 2017 06:42:59

Всем привет. Приперло мне тут на STM8L051F3 завести бибикалку. Погуглил примеры - все какая то лажа попадалась. Даже уважаемый DI HALT в своих уроках, об этом девайсе презрительно отозвался, и ничего не привел в пример. Поэтому пришлось как следовает вкурить RM0031, и вот что получилось (код в IAR 100% рабочий):
//----------
// Начальная инициализация бибикалки - без калибровки
// Нагрузка бибикалки высокоомная - вход операционника через RC цепь
// Поэтому на работу сигнала SWIM бибикалка не влияет
//----------
void beeper_init(void)
{
/*
// На работу бипера не влияет
PA_DDR_bit.DDR0 = 1; // 0-й пин порта A на выход
PA_CR1_bit.C10 = 1; // режим push-pull on
CPU_CFG_GCR_SWD = 1; // Отключаем SWIM
*/

// Включаем тактирование BEEP
CLK_PCKENR1_bit.PCKEN16 = 1;

// Выключаем LSI 38кгц
CLK_ICKCR_LSION = 0;

// Сброс предделителя beeper'a
BEEP_CSR2_bit.BEEPDIV = 0x1F;

// Выключить калибровочный таймер
BEEP_CSR1_bit.MSR = 0;

// Калибровочная константа
BEEP_CSR2_bit.BEEPDIV = 0x0F;
// Частота 1 кгц +-1км
BEEP_CSR2_bit.BEEPSEL = 0x00;

// Источник тактирования BEEP - LSI
CLK_CBEEPR_bit.CLKBEEPSEL0 = 1;
CLK_CBEEPR_bit.CLKBEEPSEL1 = 0;

// Включаем LSI 38кгц
CLK_ICKCR_LSION = 1;
SomeDelay(1000);
}

//----------
// Звуковой сигнал
//----------
void beep(long delay, unsigned char tone)
{
// Сохраняем значение по умолчанию
unsigned char st = BEEP_CSR2_bit.BEEPDIV;

// Изменяем тон звучания
BEEP_CSR2_bit.BEEPDIV = tone;

// Включаем сигнал
BEEP_CSR2_bit.BEEPEN = 1;

// Гудим-с
SomeDelay(delay);

// Выключаем сигнал
BEEP_CSR2_bit.BEEPEN = 0;

// Возвращаем тон по умолчанию
BEEP_CSR2_bit.BEEPDIV = st;
}
Буду рад, если кому-нить пригодится.

Re: Программирование STM8

Вт мар 21, 2017 22:55:40

К слову сказать, STML051F3 и STM151F3 -- это один и тот же камень на идентичном кристалле.

Re: Программирование STM8

Вс мар 26, 2017 21:06:57

На сайте СТМ появился STM8CubeMX.

Re: Программирование STM8

Вт мар 28, 2017 22:12:30

:shock: Бгыыы!!! :))) :))) :))) Щас начнётся... ждём кучу статей по его использованию :)))

Re: Программирование STM8

Ср мар 29, 2017 06:54:19

В том виде, в каком он сейчас находится, использовать его можно весьма ограниченно. Я так и вовсе не придумал, какую пользу из этого можно извлечь.

Re: Программирование STM8

Ср мар 29, 2017 08:08:03

А с него польза вообще есть? Кроме разве что картинки с распиновкой периферии.

Re: Программирование STM8

Ср апр 05, 2017 17:37:04

Добрый день. Помогите пожалуйста, пытаюсь прошить stm8s103f3, но ничего не получается.
Программка примитивнейшая чтобы тупо зажечь светодиод, среда IAR 1.40.1, программатор st-link v2.

#include "stm8s.h"
int main() {
GPIOB->DDR |= (1<<5);
GPIOB->CR1 |= (1<<5);
GPIOB->CR2 |= (1<<5);
GPIOB->ODR |= (1<<5);
while (1) {
asm("nop");
}
}

Прошиваю ST visual programmer, пишет

< File successfully loaded. File Checksum 0x731B
> Programming PROGRAM MEMORY area...
Cut Version and Revision of device: 1.2
< PROGRAM MEMORY programming completed.
> Verifying PROGRAM MEMORY area...
Cut Version and Revision of device: 1.2
< PROGRAM MEMORY successfully verified.

Но ничего в итоге не работает, светодиод не зажигается. Read out protection запрограммировал в off. Поиск решения в гугле ничего не дал, в чем проблема?

Re: Программирование STM8

Ср апр 05, 2017 17:50:44

А светодиод то у Вас как подключен, катодом или анодом к порту? Сдается мне что анодом на плюс и катодом на порт, тогда GPIOB->ODR &= ~(1<<5); Это дефолтное значения для ODR.

Re: Программирование STM8

Ср апр 05, 2017 18:00:31

Попробовал, не помогло.
Даже если просто на пустой пин подаю "1", то на нем по-прежнему 0 вольт. Контроллер тупо не прошивается почему-то.

Re: Программирование STM8

Ср апр 05, 2017 18:10:46

С диодом то определились как включен?

Выполните по шагам программу и поглядите реальное состояние регистров порта, можно в референсе поглядеть их реальные адреса, не исключено что есть ошибки в файле описаний регистров.

В IAR есть вот такой файл #include "iostm8s103f3.h"

Код будет вроде такого:
Код:
       PB_DDR=MASK_PB_DDR_DDR5;
        //PB_ODR=MASK_PB_ODR_ODR5;
        PB_CR1=MASK_PB_CR1_C15;  //пушпул
        PB_CR2=MASK_PB_CR2_C25;  //10MHz


Добавлено after 1 minute 49 seconds:
Lww писал(а):Даже если просто на пустой пин подаю "1", то на нем по-прежнему 0 вольт. Контроллер тупо не прошивается почему-то.
В смысле?

Re: Программирование STM8

Ср апр 05, 2017 18:25:49

Вроде бы анодом на порт.
Я не особо понимаю, но кажется не меняются.

Попробовал Ваш код с #include "iostm8s103f3.h", теперь в симуляторе байты порта меняются, но физический МК по-прежнему молчит.
Вложения
цунц.png
(20.03 KiB) Скачиваний: 243

Re: Программирование STM8

Ср апр 05, 2017 18:42:15

Lww писал(а):МК по-прежнему молчит.

И правильно делает. Значит ещё не сгорел. Читать референс и даташит надо до, а не после.
In the open-drain output column, "T" defines a true open-drain I/O (P-buffer, weak pull-up, and protection diode to VDD are not implemented).

РВ5 - true open-drain I/O !!!!!!!!!!!!

Re: Программирование STM8

Ср апр 05, 2017 19:20:10

Перекинул на С5 - по прежнему не работает, 0 вольт на пине.

Добавлено after 27 minutes 6 seconds:
Вот чудеса. После нескольких перетыканий питания и ребута программатора оно все таки заработало. Правда странно как-то. Пока не переткнешь питание программа не заработает. В стм32 помогал обычный ресет кнопкой либо автоматически после прошивки, а тут нет.
Всем большое спасибо.

Re: Программирование STM8

Чт апр 06, 2017 08:52:45

Конденсатор 1 мкф подключён к ножке Vcap?

Re: Программирование STM8

Пн апр 10, 2017 14:27:38

кому не сложно напишите простейший blink для STM8S003. светодиод на PA3, тактирование от внутреннего генератора. нужна не сама программа а hex файл прошивки.

Re: Программирование STM8

Пн апр 10, 2017 16:02:25

RusikOk писал(а):простейший blink для STM8S003. светодиод на PA3, тактирование от внутреннего генератора. hex файл прошивки.

->
Blink.zip
(507 байт) Скачиваний: 222

Re: Программирование STM8

Пн апр 10, 2017 16:17:52

oleg110592 писал(а):
RusikOk писал(а):простейший blink для STM8S003. светодиод на PA3, тактирование от внутреннего генератора. hex файл прошивки.

->
Blink.zip

благодарю! но не моргает! а тактирование от внутреннего источника?
Ответить