Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Вт апр 17, 2018 08:11:16
Из IAR 3.2 если делаю очистку памяти (project/download/erase) на stm8s003/103f3 то взводится ROP
Который потом удаётся снять только в stvp
От чего так?
Ср май 23, 2018 22:22:25
а можно ли вывести два STM8 на один разъем SWIM при этом переключать или NRST или SWIM пин?
по идее что тот что тот если от одного МК отключить этот пин он не отреагирует на работу программатора
Вт июн 12, 2018 11:25:12
Всем привет!
Столкнулся с проблемой при работе 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 ;
}Изображение с лог анализатора
Спойлер
Вт июн 12, 2018 18:53:17
EV6:ADDR=1, cleared by reading SR1 register followed by reading SR3.
А вы два раза читаете sr3, может в этом дело?
Вт июн 12, 2018 19:26:56
EV6:ADDR=1, cleared by reading SR1 register followed by reading SR3.
А вы два раза читаете sr3, может в этом дело?
Пробовал по разному. Все ровно результата ноль.
Вт июн 12, 2018 20:07:16
Я 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?
Вт июн 12, 2018 20:46:49
Об этом много уже говорилось, что I2C Master у STM8 весьма крив и без принятия особых мер не работает. Можно почитать эррату производителя, а лучше сразу поискать работающие примеры в сети.
Ср июн 13, 2018 21:02:52
Далее хочу записать в 24c02 какие данные - тут тишина. После приема адреса, идет сразу стоп и все.. Натолкните на мысли что не так.
Непонятно. В какой момент идет. Вы что-то в пзушку записали, а теперь пытаетесь там прочесть и.... фиг там??? Или в момент записи в пзу внезапно стоп??
Запись в стм в принципе проблем никаких. А вот чтение это полная жопа.
Ср июн 27, 2018 18:47:38
Всем привет.
Не могу понять как затактировать, на stm8, какой таймер от 32768Гц что бы считать время, без использования RTC. При этом мне надо что бы остальная перефирия работала на другой частоте.
Можно ли это как то реализовать или я нафантазировал?
Ср июн 27, 2018 18:50:31
Таймер 1 имеет отличный предделитель. Ну или я вопрос не понял.
Чт июн 28, 2018 00:10:45
Не могу понять как затактировать, на stm8, какой таймер от 32768Гц что бы считать время, без использования RTC. При этом мне надо что бы остальная перефирия работала на другой частоте.
Таймеры у STM8S тактируются от MASTERCLOCK и я не припоминаю способа, чтобы это можно было как-то изменить. Другой вариант, что я возможно ничего не знаю о конкретной модели STM8, которую вы имеете ввиду.
Ср июл 04, 2018 20:12:37
Приветствую. Изучаю 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.
Ср июл 04, 2018 20:19:56
Alexey_N, если это оригинал стлинк, а не клон, потрудитесь подать питание на вывод стлинк Vtarget .
Так же запитаны должны быть все пины питания в том числе и аналоговые - VDDA.
Потдяжка NRST чушт полная.
Последний раз редактировалось
dosikus Ср июл 04, 2018 20:24:39, всего редактировалось 2 раз(а).
Ср июл 04, 2018 20:20:28
Конденсатор к МК подключили?
Ср июл 04, 2018 20:23:28
2 dosikus
Клон конечно
Аналоговые я не запитывал то ....
2 Мурик
А куда?
Ср июл 04, 2018 20:25:31
А аналоговые питают домен ресета.
Вы уникум..
Попробуйте начать читать окументацию, и в первую очередь выкачайте Квик старт с стм 8L ...
Ср июл 04, 2018 20:31:22
О, вроде ожил! пишет что контроллер защищен, значит читает.
2 dosikus
Так с платами китайскими в основном дело имел, а тут просто контроллер голый
Почитаю конечно) Надо разобраться.
Благодарю!
Ср июл 04, 2018 20:43:28
Alexey_N, да и -лучше осваивайте стм32. Серия F0 лучшая замена 8ми биткам. Стм8 начинает отмирать...
Пн июл 16, 2018 01:00:36
STM8 был интересен только своей ценой, а раз цены выросли на stm8 про них можно забыть в пользу STM32 F0 и USB на STM32F030 работает куда лучше чем на STM8
Пн июл 16, 2018 01:39:06
По непонятной причине даже при покупке сотнями на али, цена на STM32 ниже, чем на STM8. STM32F030F4P6 выходят по 26 руб за корпус, а STM8S003F3P6 по 36 руб. Что за чудеса ценообразования, не очень понятно.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.