Программирование STM8
Первый не знаю, а вот последние два подойдут.
Я не волшебник, я только лечусь
- Реклама
- Сообщения: 6457
- Зарегистрирован: Пт сен 13, 2013 13:11:31
А вопрос стоял о возможности технически считать прошивку. Если данный МК залочен, то уже никакими силами ее оттуда не вытащить. Конечно есть один способ, но его цена будет выше чем оплата программера который напишет новую прошивку с нуля.
Я не волшебник, я только лечусь
- Сообщения: 4
- Зарегистрирован: Ср фев 24, 2016 08:24:34
- Сообщения: 4
- Зарегистрирован: Ср фев 24, 2016 08:24:34
Добрый день! Еще вопрос в догонку, а можно ли использовать STM8SVL discovery http://www.chipdip.ru/product/stm8svldiscovery/ для STM8L с моими целями (прошивка-чтение) ?
- Реклама
Да, там уже разъём есть. Только отломай программатор.
- Сообщения: 25
- Зарегистрирован: Ср мар 02, 2016 09:07:19
Коллеги.
Не озарите отблеском мудрости?
Хочу программный эмулятор STM8
А то прикупил на мизер... ээ на алиэкспрессе 003их, а оно мало того, что теперь программатора жду, так ещё и число прошивок сильно ограничено
Нашёл модель для протеуса, но там эмулятора нет.
Не озарите отблеском мудрости?
Хочу программный эмулятор STM8
А то прикупил на мизер... ээ на алиэкспрессе 003их, а оно мало того, что теперь программатора жду, так ещё и число прошивок сильно ограничено
Нашёл модель для протеуса, но там эмулятора нет.
IAR прекрасно эмулирует STM8.
- Сообщения: 25
- Зарегистрирован: Ср мар 02, 2016 09:07:19
- Сообщения: 4
- Зарегистрирован: Ср фев 24, 2016 08:24:34
Я читал, по-моему, на этом форуме что хоть он для STM8S, но должен подойти и для STM8L . Но смутило, что в документации написано типа "use only with STM8S series" . У STM8L же напряжение питания ниже, нужно, видимо, и этот момент учесть?GARMIN писал(а):Да, там уже разъём есть. Только отломай программатор.
Не подскажете каким софтом проще всего воспользоваться для проверки возможности считать прошивку? А то я новичек в этом деле, уже голова пухнет от чтения. Простого FAQа/мануала не нашел..
- Сообщения: 6457
- Зарегистрирован: Пт сен 13, 2013 13:11:31
Не забивайте голову ерундой. Реальное число прошивок, много больше указанных цифр в даташите.esisl писал(а):А то прикупил на мизер... ээ на алиэкспрессе 003их, а оно мало того, что теперь программатора жду, так ещё и число прошивок сильно ограничено
Сам Labcenter эмуляторов для stm8 не делал, а кто-то другой вряд ли за это возьмется.Нашёл модель для протеуса, но там эмулятора нет.
Чего-то посмотрел на STM8, вот, думал, замена мегам
А посмотрел поближе - какой же это геморрой. Да хоть бесплатно они пусть будут. При таких заумностях и кривых средах под них - легче на мегах делать. Вот чего только стоит это - запись в EEPROM к примеру в IAR:
мега
__EEPUT(0x40,status.byte);
stm8
char *adress = (char *) 0x4000;
if (FLASH_IAPSR_DUL == 0)
{
FLASH_DUKR = 0xae;
FLASH_DUKR = 0x56;
while (FLASH_IAPSR_DUL == 0)
{
}
}
*address = status.byte;
FLASH_IAPSR_DUL = 0;
А сколько при этом сгенериться кода
И улетит туда вся флеш........ А сколько мороки с инитом другой периферии...... А новичку в STM вообще лучше не лазить - только голову сломать и расхотеть вообще контроллерами заниматься. Не знаю как в крупных кирпичах, а в мелких и средних STM Атмелу и Пику не конкурент ни разу (даже на горизонте не пробегал). Не даром за столько лет так толком и не появился в конструкциях. Протухнут чувствую у меня эти STM8S.... 
мега
__EEPUT(0x40,status.byte);
stm8
char *adress = (char *) 0x4000;
if (FLASH_IAPSR_DUL == 0)
{
FLASH_DUKR = 0xae;
FLASH_DUKR = 0x56;
while (FLASH_IAPSR_DUL == 0)
{
}
}
*address = status.byte;
FLASH_IAPSR_DUL = 0;
А сколько при этом сгенериться кода
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
eeprom в stm8 можно организовать просто (код для IARа - имхо самая правильная среда для stm8 и avr) :
чтение очень просто, занимает намного меньше чем в АВР - просто пересылка из области eeprom в память, все находится в едином адресном пространстве:
в листинге всего то две команды:
запись тоже несложно:
случайным процессом испортить eeprom stm8 практически невозможно, вот в АВР, бывало раньше, по адресу 0 eeprom портилась регулярно
А что за "морока с инитом другой периферии" - имхо периферия stm8 весьма проста, после прочтения документации, чуть поднавороченней чем в АВР, зато и возможностей намного больше. А программатор - отладчик копеечный? А цена в минимум в в 2 раза дешевле чем аналогичный АВР. После stm8 на avr и смотреть не хочется.
Код: Выделить всё
typedef struct Par_t
{
uint16_t temperature;
uint16_t time;
uint8_t gain;
}Par_t;
#pragma location=0x4000
__no_init Par_t Par;
#pragma required=ParКод: Выделить всё
uint16_t temperature, time;
temperature = Par.temperature;
time = Par.time;Код: Выделить всё
LDW X, L:0x4000
LDW L:temperature, X
...
LDW X, L:0x4002
LDW L:time, Xзапись тоже несложно:
Код: Выделить всё
mcu_eeprom_unlock();
Par.temperature = 560;
Par.time = time;
FLASH->IAPSR &= ~FLASH_IAPSR_DUL; //EEPROM lock
void mcu_eeprom_unlock(void) //Разблокировать EEPROM
{
FLASH->DUKR = ((unsigned char)0xAE);
FLASH->DUKR = ((unsigned char)0x56);
while (!(FLASH->IAPSR & FLASH_IAPSR_DUL));
}А что за "морока с инитом другой периферии" - имхо периферия stm8 весьма проста, после прочтения документации, чуть поднавороченней чем в АВР, зато и возможностей намного больше. А программатор - отладчик копеечный? А цена в минимум в в 2 раза дешевле чем аналогичный АВР. После stm8 на avr и смотреть не хочется.
- Сообщения: 1040
- Зарегистрирован: Вс сен 25, 2011 19:09:33
Вопрос
Будет ли нормально работать stm8s003f3 при питании от 5в с i2c датчиком bmp085 с подтяжкой линий SCL/SDA к 3.3в?
На уарте висит max485, поэтому питание МК должно быть 5в
Будет ли нормально работать stm8s003f3 при питании от 5в с i2c датчиком bmp085 с подтяжкой линий SCL/SDA к 3.3в?
На уарте висит max485, поэтому питание МК должно быть 5в
Документация говорит, что нужно минимум 3.5В на входе чтобы принять высокий уровень на 5В питании.
Можно применить простой согласователь уровней на 2-х полевичках.
Можно применить простой согласователь уровней на 2-х полевичках.
- Вложения
-
- io_characteristics.PNG
- (42.8 КБ) 681 скачивание
- Сообщения: 6457
- Зарегистрирован: Пт сен 13, 2013 13:11:31
Схема одного из китайских сенсоров на BMP085 выглядит следующим образом:

При этом датчик без всяких проблем работает с пятивольтовым ардуиной.

При этом датчик без всяких проблем работает с пятивольтовым ардуиной.
По IAR согласен - сам с AVR на нем сижу.oleg110592 писал(а):eeprom в stm8 можно организовать просто (код для IARа - имхо самая правильная среда для stm8 и avr) :
случайным процессом испортить eeprom stm8 практически невозможно, вот в АВР, бывало раньше, по адресу 0 eeprom портилась регулярно
А что за "морока с инитом другой периферии" - имхо периферия stm8 весьма проста, после прочтения документации, чуть поднавороченней чем в АВР, зато и возможностей намного больше. А программатор - отладчик копеечный? А цена в минимум в в 2 раза дешевле чем аналогичный АВР. После stm8 на avr и смотреть не хочется.
Как это может портиться ячейка с нулевым адресом если туда явно ничего не пишешь. Просвятите в какой ситуации такое возможно. Ничего подобного не наблюдал но наступить на такие грабли желания нет.
Возможностей может и больше, но от их названий регистров в глазах рябит.
А цена в определенных ситуевинах не играет особой роли если учесть к какому обьему граблей придется прислониться при переходе на STM. Вот в одной конторе на переход с AVR на STM затратили больше года. Да и только потому что понадобились всякие TFT там и прочее. Но это оправдано если сразу идет заточка под толстые кристаллы.
Пытаюсь перевести потихоньку один из проектов на STM8 и чет приуныл от конторы ST
Может это сила привычки? Хотя от Pic к AVR перешел легко, да еще в добавок с асма на Си впридачу (но и PIC не забыл - на Си притулил).
Но все равно для новичка или устаканившегося на каком-то другом проце STM - это пипец. Еще помнится как народ ни в какую не мог слезть с 51 ядра. Да и сейчас наверное в ходу. Каждая архитектура под свои задачи.
- Сообщения: 1040
- Зарегистрирован: Вс сен 25, 2011 19:09:33
polyester если бы вы привыкли читать даташиты для AVR, то и с STM бы не испытали проблем)
хотя могу ошибаться
по крайней мере мне переход с avr на stm8 не доставил проблем, нужно лишь перестроиться к другой логике документации
хотя могу ошибаться
по крайней мере мне переход с avr на stm8 не доставил проблем, нужно лишь перестроиться к другой логике документации
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
polyester писал(а):Как это может портиться ячейка с нулевым адресом если туда явно ничего не пишешь
http://www.nongnu.org/avr-libc/user-man ... corruptionIn older generation AVRs the EEPROM Address Register (EEAR) is initialized to zero on reset, be it from Brown Out Detect, Watchdog or the Reset Pin. If an EEPROM write has just started at the time of the reset, the write will be completed, but now at address zero instead of the requested address. If the reset occurs later in the write process both the requested address and address zero may be corrupted.
Это в старых аврах. Была у меня мега8, на ней был сделан аналог программатора STK500 (AVRISP) в нулевой ячейке еепром прошивался номер вернее часть номера) ревизии программатора, периодически этот портился номер и оболочка программатора из аврстудии сильно сердилась, восстанавливался номер обычным терминалом - задалбывало сильно. В новых поправили вроде - но с тех пор 3-4 младших ячейки еепром в проектах не использовал.
это поначалу - потом любовь приходитpolyester писал(а):Возможностей может и больше, но от их названий регистров в глазах рябит
polyester писал(а):А цена в определенных ситуевинах не играет особой роли...
в моей ситуации заказчики требуют - плотная конкуренция, STM8S003F3P6 покупают по 0.23$ - даже на 1000 штук реальная экономия, никакой авр и пик не заменит, раньше мега48 в поделках работала - но в лучшем случае это 0.74$, еще раньше PIC16F676 - тоже не имеет смысла если есть STM8...
если для комерции - жизнь научит и заставит, если для домашних поделок - разве не интересно узнать что-то новое, потом работу хорошую с такими суперзнаниями можно найти...polyester писал(а):Но все равно для новичка или устаканившегося на каком-то другом проце STM - это пипец
Это врятли, насколько я знаю у AVR даташит на микроконтроллер это один документ - скачиваешь и изучаешь, там имеется исчерпывающая информация. У STM совсем иной подход к документации - отдельно даташит на ядро, отдельно на периферию и отдельно ещё на что-то. И вот берёшь любой ихний контроллер и... что делать? какую документацию качать? какое у него ядро? Пока у тебя нет опыта в этом деле - это просто нереальный квест, информация размазана ровным слоем по всему интернету, ладно не по всему а по примерно 1/3 части. Пока кто-то не укажет что это брать оттуда, это оттуда и смотреть туда фиг до этого сам дойдёшь. А производителю хорошо - не надо тратится на редакторов и место под хранение даташитов на очень обширные семейства контроллеров.
Вот только нет такого сайта или документа который бы объяснял принципы нумерации ихних контроллеров, каким образом скомпонована документация и как ПОДОБРАТЬ контроллер под свои задачи по заданным характеристикам. В отличие от АВР там не существует отдельных контроллеров а целые семейства, очень разные внутри. Целые огромные линейки... и пока их не изучишь не покопаешься в этом разнообразии очень трудно сказать что есть что и осознанно выбрать конкретную конфигурацию контроллера.
Вот только нет такого сайта или документа который бы объяснял принципы нумерации ихних контроллеров, каким образом скомпонована документация и как ПОДОБРАТЬ контроллер под свои задачи по заданным характеристикам. В отличие от АВР там не существует отдельных контроллеров а целые семейства, очень разные внутри. Целые огромные линейки... и пока их не изучишь не покопаешься в этом разнообразии очень трудно сказать что есть что и осознанно выбрать конкретную конфигурацию контроллера.


