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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

Сообщение axillent »

Из IAR 3.2 если делаю очистку памяти (project/download/erase) на stm8s003/103f3 то взводится ROP
Который потом удаётся снять только в stvp
От чего так?
Реклама
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

Сообщение axillent »

а можно ли вывести два STM8 на один разъем SWIM при этом переключать или NRST или SWIM пин?
по идее что тот что тот если от одного МК отключить этот пин он не отреагирует на работу программатора
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 386
Зарегистрирован: Чт окт 31, 2013 10:54:32

Сообщение alex38779 »

Всем привет!

Столкнулся с проблемой при работе stm8s003 с eeprom 24с02 по i2c

I2C настроен верно. Я отправляю старт и адрес устройства, устройство прижимает линию - появляется сигнал АСК. На 24c02 для теста перекидываю А0-А1 на другое состояние - уже NAK. Т.е. эта часть работает верно.

Далее хочу записать в 24c02 какие данные - тут тишина. После приема адреса, идет сразу стоп и все.. Натолкните на мысли что не так.

Код:
Спойлерvoid IC_EEPROM(void)
{
uint32_t status = 0;

/*Формируем старт*/
while(!(I2C->SR3 & I2C_SR3_BUSY))
I2C->CR2 |= I2C_CR2_START;

/*EV5 - шлем адрес устройства*/
while(!(I2C->SR1 & I2C_SR1_SB))
//a1 - 10100001 - чтение
//a0 - 10100000 - запись
I2C->DR = 0xa0;

/*EV6*/
while(!(I2C->SR1 & I2C_SR1_ADDR))
/*Очищаем*/
status = I2C->SR3;
I2C->SR3;

/*Шлем адрес для записи*/
while(!(I2C->SR1 & I2C_SR1_TXE))
I2C->DR = 0x01;

/*Данные для записи*/
while(!(I2C->SR1 & I2C_SR1_TXE))
I2C->DR = 0x01;

/*Формируем стоп*/
while(!((I2C->SR1 & I2C_SR1_TXE) && (I2C->SR1 & I2C_SR1_BTF)))
I2C->CR2 |= I2C_CR2_STOP ;
}
Изображение с лог анализатора
СпойлерИзображение
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

EV6:ADDR=1, cleared by reading SR1 register followed by reading SR3.
А вы два раза читаете sr3, может в этом дело?
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Реклама
Эиком - электронные компоненты и радиодетали
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 386
Зарегистрирован: Чт окт 31, 2013 10:54:32

Сообщение alex38779 »

[uquote="Z_h_e",url="/forum/viewtopic.php?p=3398431#p3398431"]
EV6:ADDR=1, cleared by reading SR1 register followed by reading SR3.
А вы два раза читаете sr3, может в этом дело?[/uquote]

Пробовал по разному. Все ровно результата ноль.
Контактная информация:
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Я I2C на stm8 не юзал, вообще как то не люблю I2C.
Due to timing constraints, when in standard mode if CCR is less than 9 (i.e. with peripheral clock below 2 MHz) with
f
MASTER = fCPUand the event interrupt disabled, the following procedure must be followed: 
modify the reset sequence in order to insert at least 5 cycles between each operations in the flag clearing sequence. For
example, when fMASTER = fCPU= 1 MHz, use the following sequence to poll the SB bit:
_label_wait: BTJF I2C_SR1,SB,_label_wait 
NOP ;
NOP;
NOP ; 
NOP
NOP 
LD I2C_DR, A ; once executed, the SB bit is then cleared.
Для пробы, может поставить тупые паузы между каждым EVn?
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Реклама
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Сообщение a5021 »

Об этом много уже говорилось, что I2C Master у STM8 весьма крив и без принятия особых мер не работает. Можно почитать эррату производителя, а лучше сразу поискать работающие примеры в сети.
Опытный кот
Аватара пользователя
Сообщения: 848
Зарегистрирован: Ср мар 02, 2011 07:47:39
Откуда: Уфа

Сообщение Psych »

[uquote="alex38779",url="/forum/viewtopic.php?p=3398052#p3398052"]Далее хочу записать в 24c02 какие данные - тут тишина. После приема адреса, идет сразу стоп и все.. Натолкните на мысли что не так.[/uquote]
Непонятно. В какой момент идет. Вы что-то в пзушку записали, а теперь пытаетесь там прочесть и.... фиг там??? Или в момент записи в пзу внезапно стоп??
Запись в стм в принципе проблем никаких. А вот чтение это полная жопа.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 386
Зарегистрирован: Чт окт 31, 2013 10:54:32

Сообщение alex38779 »

Всем привет.

Не могу понять как затактировать, на stm8, какой таймер от 32768Гц что бы считать время, без использования RTC. При этом мне надо что бы остальная перефирия работала на другой частоте.

Можно ли это как то реализовать или я нафантазировал?
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Таймер 1 имеет отличный предделитель. Ну или я вопрос не понял.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Сообщение a5021 »

[uquote="alex38779",url="/forum/viewtopic.php?p=3408914#p3408914"]Не могу понять как затактировать, на stm8, какой таймер от 32768Гц что бы считать время, без использования RTC. При этом мне надо что бы остальная перефирия работала на другой частоте.[/uquote]
Таймеры у STM8S тактируются от MASTERCLOCK и я не припоминаю способа, чтобы это можно было как-то изменить. Другой вариант, что я возможно ничего не знаю о конкретной модели STM8, которую вы имеете ввиду.
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1273
Зарегистрирован: Вт фев 01, 2011 17:56:40
Откуда: г. Жуковка, Брянская обл.

Сообщение Alexey_N »

Приветствую. Изучаю STM8 в лице STM8L152C6T6. Не могу определить программатором STVD + ST-LINK V2 контроллер. Подключил по минимуму: выв. 2 - NRST, выв. 1 - SWIM. выв. 9,40 - GND, выв. 10,39 - 3,3В. Еще резистор 10к от NRST на 3,3В. Ни в какую не читается. Что странно - NRST вроде подтянут на +, а на нем 0 даже если отключить от ST-LINK.
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Alexey_N, если это оригинал стлинк, а не клон, потрудитесь подать питание на вывод стлинк Vtarget .
Так же запитаны должны быть все пины питания в том числе и аналоговые - VDDA.
Потдяжка NRST чушт полная.
Последний раз редактировалось dosikus Ср июл 04, 2018 20:24:39, всего редактировалось 2 раза.
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

Конденсатор к МК подключили?
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1273
Зарегистрирован: Вт фев 01, 2011 17:56:40
Откуда: г. Жуковка, Брянская обл.

Сообщение Alexey_N »

2 dosikus
Клон конечно :) Аналоговые я не запитывал то ....
2 Мурик
А куда?
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

А аналоговые питают домен ресета.
Вы уникум..

Попробуйте начать читать окументацию, и в первую очередь выкачайте Квик старт с стм 8L ...
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1273
Зарегистрирован: Вт фев 01, 2011 17:56:40
Откуда: г. Жуковка, Брянская обл.

Сообщение Alexey_N »

О, вроде ожил! пишет что контроллер защищен, значит читает.

2 dosikus
Так с платами китайскими в основном дело имел, а тут просто контроллер голый :)
Почитаю конечно) Надо разобраться.
Благодарю!
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Alexey_N, да и -лучше осваивайте стм32. Серия F0 лучшая замена 8ми биткам. Стм8 начинает отмирать...
Родился
Сообщения: 12
Зарегистрирован: Ср окт 14, 2015 12:16:40

Сообщение RingQ »

STM8 был интересен только своей ценой, а раз цены выросли на stm8 про них можно забыть в пользу STM32 F0 и USB на STM32F030 работает куда лучше чем на STM8
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Сообщение a5021 »

По непонятной причине даже при покупке сотнями на али, цена на STM32 ниже, чем на STM8. STM32F030F4P6 выходят по 26 руб за корпус, а STM8S003F3P6 по 36 руб. Что за чудеса ценообразования, не очень понятно.
Ответить

Вернуться в «Разные вопросы по МК»