Заголовок сообщения: Re: Микроконтроллеры STC: первые впечатления.
Добавлено: Ср сен 20, 2017 22:32:35
Родился
Зарегистрирован: Ср сен 20, 2017 22:21:31 Сообщений: 2
Рейтинг сообщения:0
Добрый вечер! Попалось в руки устройство на STC15L104W. Можно новичку, не знакомому с микроконтроллерами, освоить его программирование. Подойдет ли для этого прищепка с USB-TTL конвертером? И какой лучше купить? И, можно ли вначале считать прошивку? И где можно поподробнее почитать об этом? Спасибо!
Заголовок сообщения: Re: Микроконтроллеры STC: первые впечатления.
Добавлено: Вс сен 24, 2017 23:26:03
Родился
Зарегистрирован: Ср сен 20, 2017 22:21:31 Сообщений: 2
Рейтинг сообщения:0
Большое спасибо! Если они 8051 совместимые, подойдет ли литература, типа "Микроконтроллеры серии 8051: практический подход"? Интересуют практические рекомендации для чайников. С Си знаком, но уже давно перешел на С++. Читал, что Arduino UNO можно использовать, как адаптер USB-TTL? Что-то в даташите много примеров про UART, а меня интересует организация работы с кнопками, DS3231 и TM1650...
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
Основа ядра - MCS51. Однако имеются и некоторые весьма приятные отличия. Поэтому после изучения основ предпочтение все же "родной" документации (там же и приемы работы под ассемблером и Си).
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
У них с 8051 совместимость по ядру, системы команд, адресация памяти, но в общем это другой, более навороченный микроконтроллер. С классическими 8051 я дел не имел, но знаю, что таймеры у китайца в каких-то режимах работают иначе, кажется режимы работы портов тоже отличаются, может еще что есть. А так, микроконтроллеры, по большому счеты, все одинаковые по принципу действия. Так что для общего понимания книгу почитать можно, но без даташита вы ничего не сделаете. Писать придется на Си.
Нажатие кнопки сажает вывод порта в 0, в отпущенном положении на порту 1. Отсюда и исходите: опрашивайте порт каждые 20 мс, сравнивайте с предыдущим состоянием и делайте выводы. ДС и ТМ работают по I2C шине. Не уверен, что в том МК они есть, скорее всего придется делать программно. На STC это удобно с их квази-двунаправленными портами, не нужно переключать режим порта (вход-выход).
Про Ардуино ничего не скажу.
_________________ Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Здравствуйте! Не сталкивались с STC12LE5608AD (STC12LE5608)? Есть устройство, две идентичные платы, одна глючит, работают в связке.. Возможно ли считать прошивку? Или вообще поправить прошивку? К одной из плат подключен индикатор и показывает не понятные символы... Тема здесь...http://monitor.net.ru/forum/viewtopic.p ... 67#5365067
Питаются от одного источника... Поскольку платы одинаковые перекинул шлейфа индикатора и кнопок на другую плату... Индикатор заработал правильно и кнопки заработали, но только 4 канала, я так понял все 6 каналов работают только тогда, когда подключена первая плата.. И что интересно, если подать напряжение, 4 двигателя начинают работать непрерывно и не управляются с панели, хотя каналы можно включать и выключать, что отображается на индикаторе... Но если подать напряжение с БП с плавным нарастанием. двигатели работают как надо, включаются, выключаются, меняется скорость, направление и все это отображается на индикаторе... Интересно почему так происходит? Вообще задача стоит все-таки 6шт. запустить.. Может есть какие мысли?
Возможно на платке имеется отдельный кристалл контроля питания... Прошивка портится не должна, а вот порог сработки сброса и тайм-аут опроса бутлоадера (с его линиями) может чегось и поднагадить... Теоретически...
Хозяйке на заметку. Маялся с прошивкой STC15F104E (маленький 8-ногий MCS-51), никак не хотел прошиваться, не срабатывал ISP-загрузчик при подаче питания на МК. Оказалось, что он срабатывает четко только если перед подачей питания, вывод питания МК был соединен с общим проводом. Виной тому паразитная подпитка с преобразователя USB-UART.
Добрый день. Заранее приношу извинения ,если что не так, если картинки слишком большие, ссылок много. Попозже все исправлю ,если можно..
Купил STC 15 и 12.. это китайские 8051. Очень давно я использовал 8051 от Atmel AT89C52..
Набаловался хорошо.. Теперь пишу STC15W408AS - 20 ног, STC15W204S - 8 ног.. STC12C5A60S2-40ног(DIP) DIP можно купить. Отлаживать и осваивать лучше на готовых платах
У STC есть полностью совпадающая по выводам с микросхемой 89с52 Atmel AT89c52 - называется STC12C5A60S2-35I-PDIP40, https://aliexpress.ru/item/100500408260 ... 1621234197 только у нее есть дополнительные возможности, например 10 разрядный АЦП и два отдельных UARTа. Один UART, стандартный для 8051 по регистрам - служит для загрузки, а вот второй можно использовать для отладки..
Есть макетная плата, работающая по USB с программой STC-ISP на которой стоит или STCAT89c52 или STC12C5A60S2... По выводам совпадают.. Вот плата с 89С52
Программировать о UART очень просто - нужно подключить USB загрузить программу STC-ISP выбрать процессор, порт, - проверку платы или загрузку программы..дернуть питанием.
Попозже все подробно про это распишу... В деталях ,как использовать программу STC-ISP вместе с Кейлом и программатором U8W-Mini. U8W-Mini - программатор для STC через STC-ISP.
Хозяйке на заметку. Маялся с прошивкой STC15F104E (маленький 8-ногий MCS-51), никак не хотел прошиваться, не срабатывал ISP-загрузчик при подаче питания на МК. Оказалось, что он срабатывает четко только если перед подачей питания, вывод питания МК был соединен с общим проводом. Виной тому паразитная подпитка с преобразователя USB-UART.
Паразитную подпитку убирают по схеме STC15-English.pdf на странице 29. Нужно подключать питание 5v от uart-ttl через выключатель, а RxD и TxD резистор 300 ом и диодик... Смотреть в даташите STC15-English.pdf https://www.stcmicro.com/datasheet/STC15F2K60S2-en.pdf на странице 29, там диодик и резистор красным выделены.. С этими двумя все работает..
Китайцы молодцы, у них в программе STC-ISP, которая используется для записи например в stc-isp версии v6.90D - есть очень много примеров программирования для каждого STC 90, 11, 12 ,15 ... и т.д. процессора на ASM и C. Например в версии stc-isp-v6.90D в закладке Demo code есть примеры программ почти для всех процессоров, поддерживаемых STC-ISP.
Серия STC89Cxxx - полностью совпадает по ножкам и командам с 8051 серией АТ89С52, АТ89С51
Переходной вариант с 8051 к STC - STC12C5A60S2 Серия STC12C5A60S2 DIP QFPP - полностью совпадает по ножкам и командам с 8051 серией АТ89С52, АТ89С51 + дополнительных возможностей много.. 60k ADC 2xUART и т.д. Серия STC 15 по ножкам уже не совпадает..
Вот где можно взять примеры программ для STC 15.. Прямо из программы из STC-ISP..
Там мелким шрифтом - только названия для этой серии... В программах указаны и частоты кварцев и скорости UARTов. Почти всегда можно найти вариант для своей платы. Примеры приводятся как на ASMе, так и на С.
Сначала мучался сам, потом "вдруг" нашел рабочий пример для своей платы.. Например для STC15F2K60S2 (60k ADC 2xUART) не получалось запустить второй UART для вывода отладочной информации в окно PUTTY.EXE.. Потом даже PUTTY.EXE не понадобилась.. Все есть в самой STC-ISP, и програма монитор для UART. Во вкладке UART Helper''
Загружаемся по первому UARTу, отладочную информацию выводим во второй UART.
PS:Программу STC-ISP скачивать отсюда: http://www.stcmcudata.com/ Справа в серединке сайта есть версии STC-ISP для скачивания. У меняv6.90D все на XP работает..
PPS:Простой програматор можно собрать выше, там картинка есть. Можно купить U8W Mini у китайцев, выше постом есть ссылка..
PPPS: Транслировать очень удобно с Кейлом, если есть Кейл51(сконфигурированный под STC) + STC Mini +макетка.. У китайцев на него все завязано, Кейл конфигурируется из STC-ISP.. Почти как в Ардуино, все почти готово - нажал кнопочку "Компилировать" - и программа скомпилируется, загрузится и запустися....
PPPS: Кейл 51 для STC также можно найти в интернете.. Нужный Кейл искать как Keil C51 V9.00.rar (66 мегов).
Постараюсь позже расписать по шагам... Балуйтесь на здоровье..
Спецификация MCU серии STC15 STC15F2K60S2-en.pdf писал(а):
- Супер сильная защита от помех, супер продвинутое шифрование - Используется технология шифрования STC восьмого поколения - Можно без внешнего кварца и схемы сброса - внешняя EEPROM может быть сохранена с помощью технологии IAP - ISP / IAP, онлайн-программирование, нет необходимости в программаторе и эмуляторе —— Большая емкость 2K байт ОЗУ —— Два UART, Два независимых последовательных порта —— Высокоскоростной 8-канальный и 10-битный аналого-цифровой преобразователь - 8051 микроконтроллер с 1 тактом на машинный цикл - Высокая скорость и надежность - Сверхнизкое энергопотребление, очень дешево —— Супер Сильное Антистатическое электричество, Супер сильная Защита От помех
Андрей Осипов, STC15F204EA перестал грузить. Как можно выйти из этого положения? Как я понимаю, нужен программатор и код загрузчика?
Я достаточно мало знаю про 15е.. Только вчера 2й UART на STC15F2K60S2_ завел..
Если ты пользовался шифрованием, вкладкой Еncryption download в STC-ISP, нажал что-то там, то тебе нужно читать:
Еncryption download в STC-ISP писал(а):
This function only for the following series: STC8xx series STC15xx series (exclude STC15F204EA) IAP15xx series
How to download encryption code 1. Press"Open Code File" to open a encryption code 2. Select"The code ready to download is encrypted code" 3. Press"Download/Program" button
How to encrypt code 1. Press"Create KEY" or "Load KEY" 2. Press"Encode File" 3. Choose unencrypted file in open dialog box 4. enter the encrypted file name in the save dialog box
How to update IC internal key 1. Press"Create KEY" or "Load KEY" 2. Select"Update the user KEY before download user code" 3. Press"Download/Program" button
Может что нажализ галочек в H\W Option.. Проверь галочки. Может случайно что то в начале мог галочкой поменять.. Я себе скриншоты этих галочек делаю, чтобы потом было чем проверить. Если не помнишь галочек. которые нажал, попробуй переустановить STC-ISP...
Цитата:
Как я понимаю, нужен программатор и код загрузчика?
Я точно не знаю, но думаю, что можно обойтись простым программатором.. С UARТомЮ резисторов на 300 ом, диодом КД522/1N4148 и выключателем..
OKF, когда разберешься, напиши, что и как было.. Может вообще вход UARTподжарился случайно ... Или узнаешь, какую кнопочку не нажимать. Там вроде фьюзов нет как в Атмеле 328Р..
А!! перевел про шифрование..
Эта функция только для следующих серий: Серия STC8xx Серия STC15xx (исключая STC15F204EА) Серия IAP15xx
У STC15F204EA - нет шифрования и ключей....
.
Добавлено after 4 hours 28 minutes 8 seconds:
Рассказываю про возможности программы STC-ISP.exe -v6.90D Это реально учебник по STC контроллерам.
"UART Helper" - это закладка для монитора виртуального COM порта..
"Baudrate Tool" Кроме массы примеров программ для любой серии STC контроллеров в закладке "Demo Сode", нашел еще отдельные закладку "Baudrate Tool" для примеров, вариантов программирования на С и ASM UARTов во всех сериях STC.
void UartInit(void) //9600bps@11.0592MHz { SCON = 0x50; //8 bits and variable baudrate AUXR |= 0x40; //imer clock is 1T mode AUXR &= 0xFE; //UART 1 use Timer1 as baudrate generator TMOD &= 0x0F; //Set timer work mode TL1 = 0xE0; //Initial timer value TH1 = 0xFE; //Initial timer value ET1 = 0; //Disable Timer%d interrupt TR1 = 1; //Timer1 start run }
"Timer Tool" Нашел также закладку с примерами программирования таймеров в разных режимах и разных сериях на С и ASM - "Timer Tool".
void Timer0Init(void) //100us@11.0592MHz { AUXR |= 0x80; //imer clock is 1T mode TMOD &= 0xF0; //Set timer work mode TL0 = 0xAE; //Initial timer value TH0 = 0xFB; //Initial timer value TF0 = 0; //Clear TF0 flag TR0 = 1; //Timer0 start run }
"Delay Tool" - закладка с примерами программ задержки для разных серий и частот на С и ASM .
void Delay100us() //@11.0592MHz { unsigned char i, j;
_nop_(); _nop_(); i = 2; j = 15; do { while (--j); } while (--i); }
"Header File" - это закладка с примерами заголовочных текстов STCxxx.h - файлов для разных серий.
пример - STC89C5xRD.h Спойлер #ifndef __STC89C5xRC_RDP_H__ #define __STC89C5xRC_RDP_H__
Без оптической развязки USB-COM порт отказывался работать.. Похоже что в программаторе U8W Mini стоят какие-то преобразователи.. Пара катушек там внутри есть.
Возможно,вы случайно включили в программе опцию "Next time can program if P3.2 & P3.3" и т.д. Поэтому загрузчик заблокировался. Насколько помню, их перед началом прошивки нужно посадить на корпус и тогда загрузчик запустится. Но на всякий случай уточните в даташите, там это есть. При прошивке уберите эту опцию из программы.
_________________ Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения