Микроконтроллеры STC: первые впечатления.
Благодарю, не самая лучшая новость. Нужно именно считать. Прочитал, что можно подселить код в память и он уже вычитает, но это прям жёсткая магия...
С уважением, Михаил.
- Реклама
- Сообщения: 276
- Зарегистрирован: Вс окт 20, 2019 13:03:56
А как его туда подселить. Дошить туда ничего нельзя, при прошивке происходит полное стирание. При подключении внешней памяти программ (EA = 0) - внутренняя отключается.
Только если программа заведомо содержит закладку.
Только если программа заведомо содержит закладку.
Перевел не так давно руководство по программированию официальными инструментами.
Может кому понадобится. Тут.
Китайским не владею. Переводил с помощью гуглопереводчика.
Картинки не переводил, слишком много возни было бы.
Может кому понадобится. Тут.
Китайским не владею. Переводил с помощью гуглопереводчика.
Картинки не переводил, слишком много возни было бы.
- Сообщения: 1278
- Зарегистрирован: Пн июн 18, 2007 21:51:20
подсказали интересный МК
STC8H1K08-36I-TSSOP20 Микроконтроллер STC, ядро 8051T(33МГЦ).
64кб Flash, 1.25кб SRAM. 2 UART, 1 I2C, 9 каналов 10-бит АЦП.
Цена 10 штук на Алиэкспресс с пересылкой в районе 300-350р
Не знал про существование этой темы, хотя интересуюсь 8051 как альтернативе АВР давно...
Добавлено after 18 minutes 19 seconds:
[uquote="Андрей Осипов",url="/forum/viewtopic.php?p=4276592#p4276592"]Можно купить U8W Mini[/uquote]
Вижу, Вы с опытом ))
А зачем вообще это, если шьется через usb-ttl?
И можно ли этим пользоваться как отладчиком? Никогда такое не применял, хоселось бы попробовать...
Добавлено after 1 hour 6 minutes 32 seconds:
[uquote="Freiwind",url="/forum/viewtopic.php?p=4427643#p4427643"]Да бросьте эти угрызения совести. Лучше Кейла нет ничего для STC.[/uquote]
какой версией пользуетесь? Где брали?
STC8H1K08-36I-TSSOP20 Микроконтроллер STC, ядро 8051T(33МГЦ).
64кб Flash, 1.25кб SRAM. 2 UART, 1 I2C, 9 каналов 10-бит АЦП.
Цена 10 штук на Алиэкспресс с пересылкой в районе 300-350р
Не знал про существование этой темы, хотя интересуюсь 8051 как альтернативе АВР давно...
Добавлено after 18 minutes 19 seconds:
[uquote="Андрей Осипов",url="/forum/viewtopic.php?p=4276592#p4276592"]Можно купить U8W Mini[/uquote]
Вижу, Вы с опытом ))
А зачем вообще это, если шьется через usb-ttl?
И можно ли этим пользоваться как отладчиком? Никогда такое не применял, хоселось бы попробовать...
Добавлено after 1 hour 6 minutes 32 seconds:
[uquote="Freiwind",url="/forum/viewtopic.php?p=4427643#p4427643"]Да бросьте эти угрызения совести. Лучше Кейла нет ничего для STC.[/uquote]
какой версией пользуетесь? Где брали?
- Сообщения: 1278
- Зарегистрирован: Пн июн 18, 2007 21:51:20
Решил скрестить ужа и ежа: STC8H1K08 на basocm-51
Осилил режимы портов , резистор-подтяжку устанавливаю, кнопку опрашиваю, светодиодом управляю, Int0/Int1 работают и режим реакции задаю.
Работа uart 1 и 2 (через регистры, а не через встроенную команду PRINT)
Смутил факт: не могу в компиляторе создать переменные суммарно больше 30 байт - компилятор выдаёт ошибку нехватки памяти.
Переменные в IRAM. Попробовал перенести некоторые в XRAM (она есть в МК) - объём кода программы резко растёт, почти на треть!
До этого с i51 не работал.
Но в описании к МК указано:
SRAM
• 128 bytes internal direct access RAM (DATA, use keyword data to declare in C language program)
• 128 bytes internal indirect access RAM (IDATA, use keyword idata to declare in C language program)
• 1024 bytes internal extended RAM (internal XDATA, use keyword xdata to declare in C language program)
что я не так делаю и где рыть?...
Переходить в Кейл очень не хочется по множеству причин...
Осилил режимы портов , резистор-подтяжку устанавливаю, кнопку опрашиваю, светодиодом управляю, Int0/Int1 работают и режим реакции задаю.
Работа uart 1 и 2 (через регистры, а не через встроенную команду PRINT)
Смутил факт: не могу в компиляторе создать переменные суммарно больше 30 байт - компилятор выдаёт ошибку нехватки памяти.
Переменные в IRAM. Попробовал перенести некоторые в XRAM (она есть в МК) - объём кода программы резко растёт, почти на треть!
До этого с i51 не работал.
Но в описании к МК указано:
SRAM
• 128 bytes internal direct access RAM (DATA, use keyword data to declare in C language program)
• 128 bytes internal indirect access RAM (IDATA, use keyword idata to declare in C language program)
• 1024 bytes internal extended RAM (internal XDATA, use keyword xdata to declare in C language program)
что я не так делаю и где рыть?...
Переходить в Кейл очень не хочется по множеству причин...
- Реклама
Отчитываюсь: таки я смог "переделать" Bascom-8051 под STC ))
Изумительные очучения от этого МК! Смог перенести код большого проекта из Bascom-AVR в Bascom-51 за пару минут: переназначил порты и инициализировал их.
Весьма доволен.
Автор Bascom конечно-же не ответил ни разу: мозг 62-летнего Марка отравлен европропогандой ((
Ну да и ладно, сам смог ))
Изумительные очучения от этого МК! Смог перенести код большого проекта из Bascom-AVR в Bascom-51 за пару минут: переназначил порты и инициализировал их.
Весьма доволен.
Автор Bascom конечно-же не ответил ни разу: мозг 62-летнего Марка отравлен европропогандой ((
Ну да и ладно, сам смог ))
Верните прошлое! там было такое прекрасное будущее...
С STC вполне можно под ассемблером с помощью атмелевского компилятора c51asm работать.
Единственно потребуется самостоятельно сделать дополнительный файл описания ресурсов (согласно даташиту на конкретный МК).

Единственно потребуется самостоятельно сделать дополнительный файл описания ресурсов (согласно даташиту на конкретный МК).
КОТегорически не хочу асм.
У меня есть Bascom avr. Беру код из него и за короткое время переношу на 8051.
Изумительно.
Ps
Да, файл написал, взяв за основу список регистров 8052 и добавил новые от STC
У меня есть Bascom avr. Беру код из него и за короткое время переношу на 8051.
Изумительно.
Ps
Да, файл написал, взяв за основу список регистров 8052 и добавил новые от STC
Верните прошлое! там было такое прекрасное будущее...
Первый проект на STC8H1K28
Архив исходников в DipTrace формате
Архив исходников в DipTrace формате
- 8 входов с опторазвязкой на PC817,
3 входа Аналоговые, с возможностью применить как цифровые с подтяжкой к + или - питания,
8 выходов на USB2803,
графический ЖКИ ST7920,
4 кнопки 12*12мм,
I2C с DS1307 и 24Lxx, возможность подключить датчик атм.давления BMP
пищалка,
RS485 с автоматическим переключением Rx-Tx,
питание 8-30в.
- Вложения
-
- Схема_Контроллера_8051.png
- (158.79 КБ) 389 скачиваний
-
- STC8H1K28.zip
- (690.27 КБ) 337 скачиваний
Верните прошлое! там было такое прекрасное будущее...
Это не пром оборудование, а для набивания руки с этой серий МК.
В защиту своей совести скажу: максимальное напряжение схемы - 25в
На него рассчитан делитель ADC.
Так что дыму не будеть. Я ж не первый год с паяльтником
В защиту своей совести скажу: максимальное напряжение схемы - 25в
На него рассчитан делитель ADC.
Так что дыму не будеть. Я ж не первый год с паяльтником
Верните прошлое! там было такое прекрасное будущее...
А я неверно Вас понял, Сейчас дошло!
Спасибо, как-то до этого сам не додумался!
ps
а можете кинуться файлом в DipTrace? хочу посмотреть на чужой опыт применения.
Спасибо, как-то до этого сам не додумался!
ps
а можете кинуться файлом в DipTrace? хочу посмотреть на чужой опыт применения.
Верните прошлое! там было такое прекрасное будущее...
Не обнаружил распиновки STC8H8K64U в корпусе dip28. По аналогии с портами в LQFP64 предположил что для I2C предусмотрены Р2.5 и р2.4 (соответственно SCL_2 и SDA_2). Это следует и из "Package" в STA-ISP. Но хотел бы увидеть в нормальном PDF. Юзаю STC15W408AS, в изделии оставил эти лапы под I2C. Может искал плохо, но на в китайской, ни в англ. версии описания не нашел этого. И еще не обнаружил для I2С вариантов под SCL_3 и SDA_3, это для LQFP64, вроде как самая "полная"?
Открыл последнюю редакцию даташита на их сайте. Там есть информация по STC8H8K64U в корпусе DIP28.

Спасибо. У меня еще вопрос о версиях этого контроллера (STC8H8K64U), есть версия "А" и версия "В", отличия в наличии DMA,( раздел 27 DMA (batch data transfer) англоязычного описания). Про обозначения этих вариантов не нашел ничего, на самих корпусах тоже явно не прслеживается. Пролейте свет. Сейчас пробую рабочую прогу реализовать в варианте с DMA, пока не работает, может я ошибся где, а может это версия без DMA.
Тут сложно сказать.
В китайском свежем даташите уже есть версии С и D.
По идее они на чип полную маркировку наносят. На Алике я пока таких не видел.
В китайском свежем даташите уже есть версии С и D.
По идее они на чип полную маркировку наносят. На Алике я пока таких не видел.
- Сообщения: 238
- Зарегистрирован: Чт фев 28, 2013 14:16:10
Приветствую
Для STC8G, STC8H на sdcc какие заголовочные файлы используете? Я для 12 серии вот отсюда брал https://github.com/znhocn/stc-header
А вот с этими что-то в замешательстве...
Для STC8G, STC8H на sdcc какие заголовочные файлы используете? Я для 12 серии вот отсюда брал https://github.com/znhocn/stc-header
А вот с этими что-то в замешательстве...
А то что в STC-ISP в разделе "Header File" не подойдет?
- Сообщения: 238
- Зарегистрирован: Чт фев 28, 2013 14:16:10
STC-ISP это программа для прошивки? Убунту у меня, я без нее. И насколько знаю все заголовочные файлы и примеры от производителя идут для Кейла.
Вот такой проект нашел https://codeberg.org/20-100/uni-STC
Буду смотреть. Хотя хотелось бы в одном файле, без вот этого развесистого дерева.
Вот такой проект нашел https://codeberg.org/20-100/uni-STC
Буду смотреть. Хотя хотелось бы в одном файле, без вот этого развесистого дерева.
- Сообщения: 276
- Зарегистрирован: Вс окт 20, 2019 13:03:56
Инклюды STC8G и STC8H из STC-ISP (V6.94K). Для кейла, иара, sdcc и ассемблера.
STC-ISP рекрасно под вайном работает. Сделать winetricks mfc42, а если создать симлинк на /dev/ttyUSB0 под именем com-порта с любым свободным номером в ~/.wine/dosdevices/ - то даже шьет.
STC-ISP рекрасно под вайном работает. Сделать winetricks mfc42, а если создать симлинк на /dev/ttyUSB0 под именем com-порта с любым свободным номером в ~/.wine/dosdevices/ - то даже шьет.
- Вложения
-
- STC8G-H_headers.tar.gz
- (64.43 КБ) 270 скачиваний
- Сообщения: 238
- Зарегистрирован: Чт фев 28, 2013 14:16:10
Не могу понять назначение регистра ADCTIM (АЦП). Конкретно на STC8G.
Делитель задается в регистре ADCCFG. Но зачем нужен ADCTIM?
Написано: ADC timing control register (ADCTIM)
бит: CSSETUP: ADC channel selection time control Tsetup
биты: CSHOLD[1:0]: ADC Channel selection hold time control Thold
биты: SMPDUTY[4:0]: ADC analog signal sampling time control Tduty (Note: SMPDUTY must not be less than 01010B)
Потом приводит диаграмма, в которой видно, что время работы АЦП складывается двух этапов. Что выполняется на первом этапе?
Добавлено after 4 minutes 34 seconds:
И в догонку еще один вопрос по АЦП. Указано, что The maximum speed of the STC8G series ADC is 800K for 12-bit ADC (800,000 ADC conversions per
second), and 500K for 10-bit ADC (500,000 ADC conversions per second)
Но я не вижу, чтобы в регистрах задавалась разрядность, которая мне нужна. А по окончании конвертации сразу выставляется бит ADC_FLAG в регистре ADC_CONTR.
А какая разрядность получена-то?! А если я на 24 МГц запускаю АЦП с делителем 32 (это 750 К) я что получаю?!
Экспериментальным путем я разницы в результатах не заметил.
Делитель задается в регистре ADCCFG. Но зачем нужен ADCTIM?
Написано: ADC timing control register (ADCTIM)
бит: CSSETUP: ADC channel selection time control Tsetup
биты: CSHOLD[1:0]: ADC Channel selection hold time control Thold
биты: SMPDUTY[4:0]: ADC analog signal sampling time control Tduty (Note: SMPDUTY must not be less than 01010B)
Потом приводит диаграмма, в которой видно, что время работы АЦП складывается двух этапов. Что выполняется на первом этапе?
Добавлено after 4 minutes 34 seconds:
И в догонку еще один вопрос по АЦП. Указано, что The maximum speed of the STC8G series ADC is 800K for 12-bit ADC (800,000 ADC conversions per
second), and 500K for 10-bit ADC (500,000 ADC conversions per second)
Но я не вижу, чтобы в регистрах задавалась разрядность, которая мне нужна. А по окончании конвертации сразу выставляется бит ADC_FLAG в регистре ADC_CONTR.
А какая разрядность получена-то?! А если я на 24 МГц запускаю АЦП с делителем 32 (это 750 К) я что получаю?!
Экспериментальным путем я разницы в результатах не заметил.
- Вложения
-
- Снимок экрана от 2024-09-24 19-34-52.png
- (108.02 КБ) 220 скачиваний


