Страница 1 из 10
Микроконтроллеры STC: первые впечатления.
Добавлено: Пт мар 11, 2011 22:27:19
Necromant
Добрый день всем,
Как и обещал отписываюсь о первых результатах экспериментов с этим добром.
Сегодня ко мне приехали мелкая девборда:
http://stc-51.com/devtools/stc51-starter.phpпрограмматор (на практике - просто usb-uart донгл), и десяток STCшных мк попроще.
В общем, главным плюсом стоит отметить стоимость. В остальном, не хуже и не лучше других мк. Процесс особенно вначале не для слабонервных, так что запасаемся валерьянк^Wтерпением. Особенно при чтении даташитов.
В виде компилятора я выбрал sdcc, ибо был в репозиториях и умеет архитектуру 8051, на выходе него легко можно получить готовый хекс для заливки. Для работы под виндой производитель рекомендует Keil, но я его не ковырял, ибо нет у меня желания в винду возвращаться.
Для работы с SDCC потребуется хедер файлик:
http://www.stc-51.com/devtools/STC_NEW_8051.HТам худо бедно описаны STCшные регистры и на помигать диодами и инициализировать уарт хватит.
Для заливки используется спец софтина:
http://stc-51.com/devtools/STC-ISP-V4.8 ... NGLISH.EXEПрошивальщик написан на VB6 и криво переведен на английский. Впрочем, все основное понятно. Если верить документации, то загубить STC неправильными фьюзами проблематично. Параметры работы выбираются галочками в GUI. необходимость gui для прошивки здорово раздражает, в makefile не запихнешь.
Сам протокол никак не документирован, но я подрубил две RX пины от ft2232 и немного посниффил самопальной софтиной протокол. (Ну и еще кое что почерпнул отреверсив местами софтину-прошивальщик) Частично процесс уже восстановил. Суть такая: мк при старте маленькое время ждет по уарту волшебного байтика (0x7f), по которому автовыставляет, если это возможно, баудрейт уарта, далее контроллер шлет кучу данных, в которых видна его сигнатура, выставленные параметры, частота с которой он работает и еще какой-то хлам, назначение которого я не совсем пока еще понял), далее контроллер софт-сбрасывается, и уже высылаются хекс иидет дальнейший обмен данными.
Сейчас как закончу носиться с документами в аспирантуру, напишу нормальный прошивальщик из командной строки.
Если не считать недостатком немного кривой английский в даташитах, и идиотский прошивальщик, то в общем и целом остается более или менее приятное впечатление.
Re: Микроконтроллеры STC: первые впечатления.
Добавлено: Пн май 09, 2011 12:02:40
selevo
ждём нах новостей

ибо цена меня тоже волнует больше всего остального.
Re: Микроконтроллеры STC: первые впечатления.
Добавлено: Ср май 11, 2011 09:14:42
МитяРа
Мяу всем..
Во чего в МК51 семействе не хватало, так это моделей в DIP-8 корпусе.. /NXP - не в счёт../
Попробуем изучить отличие STC от "классики", а потом попробуем потискать вживую...

Re: Микроконтроллеры STC: первые впечатления.
Добавлено: Ср май 11, 2011 14:29:10
qwerky
Имхо интересно разве что для массовых производителей, экономящих каждый цент. Чипы сами по себе малоинтересны - слабая периферия, по цене ненамного ниже STM8/32.
Re: Микроконтроллеры STC: первые впечатления.
Добавлено: Ср май 11, 2011 15:44:09
avreal
А корпус DIP8 ничем не лучше SO-14 даже для домашних LUT-изделий «выходного дня», не говоря уже о TSSOP для серии

Re: Микроконтроллеры STC: первые впечатления.
Добавлено: Вс июл 10, 2011 12:40:40
Freiwind
Я заметил, что таблицы SFR разные, допустим для STC12C5Axx и STC12C56xx. И адреса некоторых регистров не совпадают. А хедер-файл, как ни странно, один.
Что-нибудь новенькое наэкспериментировали?

P.S. Нашел заголовки для других камней на их китайском сайте.

Re: Микроконтроллеры STC: первые впечатления.
Добавлено: Вс ноя 13, 2011 22:12:29
Necromant
Кроме пробных программок небольших я особенно не гонял. Так что про хедер и SFR ничего не могу сказать. sdcc вроде нормально подцепил.
Штатный прошивальщик неюзабельное Г. Быстренько наваял сниффер, отреверсил почти полностью протокол прошивки.
Вот сырцы сниффера:
https://github.com/nekromant/usniffer(cборка как обычно - autoreconf --install --force && ./configure && make && make install, под виндовс не собирал)
Нужно два уарта, RXы вешаем на линии по которым будем прошивать STCшку, после запускаем и смотрим дамп.
Коды устройств я выдрал из штатной прошивальни, прошивка шьется блоками, каждому из которых считается чексумма. Какой алгоритм подсчета чексуммы я пока не допер, но близок к этому. Думаю к новому году домучаю до конца и напишу свою реализацию, чтобы с мейкфайлов можно было нормально шить.
Re: Микроконтроллеры STC: первые впечатления.
Добавлено: Вс ноя 13, 2011 23:04:25
qwerky
как там с периферией и скоростью по сравнению с MCS51,52/AVR/STM8 ?
Re: Микроконтроллеры STC: первые впечатления.
Добавлено: Пн ноя 14, 2011 12:21:38
Necromant
По периферии - что-то вроде avr. местами понавороченнее. Блок GPIO например тут поболе режимов умеет. Скорость - до 35 мегагерц, рекламируют как 'mostly single cycle execution'. Ну и это CISC, код выходит местами более компактным, по сравнению с аврками. C stm8 сравнить не могу - не ковырял и пока st не разродиться нормальным компилятором (gcc || sdcc) не планирую. Радует что сотенку очень мелких 8ногих можно взять крайне дешево (то что надо для мелких решений). Жаль нету аналога vusb под них. С ним было бы совсем ку!
Re: Микроконтроллеры STC: первые впечатления.
Добавлено: Пн ноя 14, 2011 12:40:33
qwerky
цены не такие уж низкие - почти 1$ за самую мелочь, сопоставимо с Attiny13/Atmega48/STM8S103/STM32F100. Плюс на сайте декларируют Free shipping, а на странице заказа наворотили 38$ за доставку.
чипы в Soic8 также программируются через RS232 ?
Re: Микроконтроллеры STC: первые впечатления.
Добавлено: Вт ноя 15, 2011 10:26:24
Necromant
Да, там все уартом, даже если в самом мк уарта нет. Шиппинг у них фри, просто они накосячили когда на али заполняли. Надо написать им при заказе, исправят. Можно так же stcшки брать с siliconray.com - вкусное местечко, там даже Free gift'ы можно выбрать к заказам в зависимости от суммы заказа (блок питания там, мультиметр, смдшные резюки). Но шиппинг почтой там Flat Rate - 15$, т.е. выгодно брать, когда заказ около сотни в сумме.
Re: Микроконтроллеры STC: первые впечатления.
Добавлено: Вт ноя 15, 2011 15:55:34
МитяРа
Necromant, внимательно слежу за твоей темой..
Поясни, как-же они по usart-у шьются, если у них сброс внутренний.. или как?
Re: Микроконтроллеры STC: первые впечатления.
Добавлено: Вт ноя 15, 2011 23:09:40
Necromant
МитяРа писал(а):Necromant, внимательно слежу за твоей темой..
Поясни, как-же они по usart-у шьются, если у них сброс внутренний.. или как?
Просто. по сути мк отличает cold-reset при подаче питания от дерганья ноги ресета, и при нем очень малый промежуток времени ждет ключевого байта на RX. 0xf7 по которому выставляет частоту передатчика и гадит параметрами программе. Это как бы первая стадия. Вторая - после записи/чтения параметров он перенастраивает частоту уарта, иногда на большую. и получает прошивку, которую пишет. Я пока не до конца отреверсил протокол - много работы с диссертацией. Везде юзается even четность. Так прошиваются, насколько понял, даже самые мелкие мк где аппаратного уарта по даташитам и нет.
Вот пример прошивки тестовых данный, которые я просниффил
http://necromant.ath.cx/wp/2011/10/14/%d1%80%d0%b5%d0%b2%d0%b5%d1%80%d1%81%d0%b8%d0%bd%d0%b3-%d0%bf%d1%80%d0%be%d1%82%d0%be%d0%ba%d0%be%d0%bb%d0%b0-%d0%bf%d1%80%d0%be%d1%88%d0%b8%d0%b2%d0%ba%d0%b8-stc/?lang=ru
Re: Микроконтроллеры STC: первые впечатления.
Добавлено: Ср ноя 16, 2011 09:13:58
МитяРа
Благодарю.. подумаем..
Re: Микроконтроллеры STC: первые впечатления.
Добавлено: Сб ноя 19, 2011 10:54:58
BOB51
В принципе весьма неплохие мелкосхемки…
Можно бы и приграться, НО…
В наших краях пока не наблюдается.
«От100» на побаловаться никто возить не будет, тем более 1-2 штуки.
В качестве ассемблера вполне подходит Атмеловский
c51asm.exe -
http://www.atmel.com/dyn/resources/prod ... in_1-2.zipс его возможностью назначать любой собственный SFR
директивой SFR, ну и прочими приятностями относительно
адресации данных, еепром, флеш и внешней памяти (подобно кейлу).
SDCC конечно тоже весьма приятно, но пока я с этим не играюсь…
Изучать протокол заливки в принципе без особой надобности – есть
оболочка-утилита и для начала того вполне достаточно.
Единственно – требуется страховаться по выводам программирования
от случайных комбинаций , которые могут привести к запуску режима
ввода программы, да и функции P4 на начальном этапе лучше не трогать
(по аналогии с реаниматором AVR).
Чего касательно купить – так цена должна быть в разумно-конкурентных
пределах :
AT89C2051 24PU – 10 гришек – девать некуда
(AT89C4051 24PU ~15)
AT89C52 24PI – 13 гришек- туда же
8-pin PICи – от 7 до16 гришек, то же и по AVR - в избытке
14-16-18 pin в пределах 25 гришек максимум
Ну а о «больших» (40pin и более) разговор несколько другой, но… это уже для «суперконструкций» которые обычно копируют (обезьянничают) а не разрабатывают
Там цены от 30 и до…300
STCDUDE-0.1
Добавлено: Вт окт 02, 2012 23:47:30
Necromant
Такс, у меня дошли руки, запилил прошивальщик этих мк под линукс, ибо виндовый это ужас летящий на крыльях ночи, как и укуренный неюзабельный Keil. Пришлось попотеть, чтобы разобрать протокол без документации.
В общем, пока умеет:
Детект типа мк и вывод справочной информации.
Определять версию загрузчика.
Определять (сравнительно точно) частоту мк
На основе этого делать хэндшейк, переключение баудрейта и закачку бинарника.
Примеры проектов с make & sdcc, вместе с обработанным скриптом keil2sdcc.pl заголовочником положил к себе на гитхаб
https://github.com/nekromant/stc-makefile-exampleСам прошивальщик:
https://github.com/nekromant/stcdudeМожет кому и пригодится. Моя стцдудка тянет в зависимостях только lua.
Подробный анонс у меня в бложике:
http://ncrmnt.org/wp/2012/10/01/stcdude ... 1-is-here/Проверено с STC10F04XE, STC12C5A32S2 и STC12C5A60S2 и кварцами 8 12 16 и 20.
Мк одних с ними серий будут работать скорее всего без проблем, мк других серий с аппаратным уартом скорее всего тоже, но на них не сгенерил mcudb пока, как потребуется - пишите. Остальные - надо пробовать.
P.S.
Их официальный магаз - siliconray.com, кратно 10шт.
На таобао они в разы дешевле, где-то 1-2 юаня за самые навороченные, но оттуда заказывать гемор.
P.P.S. Да, у меня не быстро дошли руки их домучать

Попутно я еще сварганил на них пару проектов. По сравнению с AT89 (AT89SND1, например) они РЕАЛЬНО быстрые. Софтовая задержка на С которая на STC отрабатывает 1 секунду, на AT89 колупается около 30-40 при той же частоте. Периферии немного, железка тупая. В общем, для особенно мелких проектов, где не нужен USB - самое то.
Re: Микроконтроллеры STC: первые впечатления.
Добавлено: Пт мар 13, 2015 20:42:22
the_tolik
Скажите, какой мне нужно приобрести (или собрать) программатор для работы с STC12C5608AD (DIP28), у меня есть MiniPro TL866CS, с помощью его ни как?
Вот даташит
http://www.datasheetspdf.com/PDF/STC12C5628AD/853212/1
Re: Микроконтроллеры STC: первые впечатления.
Добавлено: Чт июл 06, 2017 09:51:21
st47k3r
Necromant, Приветствую!
Имеется STC12C5608AD(из сгоревшего блока - сама живая), стоит задача скопировать ее в новую такую же "болванку".
Правильно ли я понимаю, что более менее единственным вариантом будет, написать "програмку" для нее, для вычитки память AP, через старт написанной программы для нее из IAP?
Или есть еще варианты?
Re: Микроконтроллеры STC: первые впечатления.
Добавлено: Чт июл 06, 2017 10:28:28
BOB51
Чисто теоретически - верно....
Только вот...
Как бы потом штатного бутлоадера не лишиться...
И самое главное - запишется ли область ISP из программатора?
Помимо прочего для такого фокуса необходимо чтобы ОСНОВНАЯ программа вызвала переключение на перезагрузку из области ISP, что авторами прикладной прожки наверняка не предусматривалось.

Re: Микроконтроллеры STC: первые впечатления.
Добавлено: Чт июл 06, 2017 11:12:34
st47k3r
BOB51, тут да.. но поле для деятельности есть - как с "программой" так и "болванок" - пруд пруди.
Так что не страшно.
Просто пытаюсь понять, и собрать варианты, как это можно сделать.. пока в мозг засел такой вариант.
Буду рад, если посоветуете, как еще можно
