nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 19 Sep 2018 13:32



Reply to topic  [ 6 posts ] 
Микроконтроллеры ST7 - регистры A,X,Y - мало или хватит? 
Author Message
Fanat

Joined: 20 Sep 2015 03:50
Posts: 58
Reply with quote
Доброго времени суток.
Был период в моём творчестве связанный с микроконтроллера серии ST7.
Началом интереса послужил неожиданный для меня подарок отладочной платы "EVBST7-02"
- "PROPOX".
Как то быстро обнаружился у друзей программатор, и завертелось.
Микроконтроллеры тоже оказались доступны.
Разобравшись с демо платой "EVBST7-02" я изготовил свои тестовые платы для разных
микроконтроллеров ST7 какие смог достать, на 8, 20 и 32 пина в корпусе DIP.
Микроконтроллеры оказались забавные,почти "спартанский вариант", всего 3 восьми-битных регистра (A,X,Y),
счётчик команд 16 бит и 8 битный указатель стека, RAM 384bye, Flash 4Kbytes.
Архитектура почти совпадает с микропроцессором 6502.
Не смотря на 3 регистра (в сравнении с AVR их 32) программировать оказалось достаточно легко,
даже приятно. Перевёл все свои программные модули (Soft UART, I2C, LCD, Dallas, RFID, ADC и т.д.)
всё работало даже лучше и быстрее. На пример программный дуплексный UART на лету вычислял CRC пакета, а такая же
конструкция для AVR и NEC чипов успевала только табличным методом.
На тестировавшись аппаратно-программных возможностей ST7 принялся ваять реальные поделки.

Первым проектом была система контроля и отображения на ЖКИ состояние 40 адресных устройств.
Каждое адресное устройство имело 4 входных линии контроля с индикацией состояния и 1 выходной линии управления, тоже с индикацией
Время сканирования 40 адресников 8 сек.
Визуально контрольное устройство (ВКУ) отображало на ЖКИ состояние всех 40 адресников и состояния выходных линий,
Также ВКУ имело кнопки управления и светодиодные индикаторы состояния линии связи.
Использовал для контроля на типа складе наличии/отсутствие инструмента на своём посадочном месте
Была видна сразу вся картина что есть, чего нет.


Attachments:
ВКУ 40.jpg
ВКУ 40.jpg [ 69.6 KiB | Viewed 677 times ]
ST7_Programmators.JPG
ST7_Programmators.JPG [ 218.01 KiB | Viewed 677 times ]
ST7_Modules_1.JPG
ST7_Modules_1.JPG [ 178.31 KiB | Viewed 677 times ]
16 Mar 2018 08:54
Profile
Doomed
User avatar

Joined: 05 Nov 2007 06:08
Posts: 405
Location: Украина
Reply with quote
недавно столкнулся с ST8 - пожалел, что он раньше не попал ко мне в поле зрения.
я, конечно, пока только мигнул светодиодом, но, написав поддержку его ассемблера для fasmg, изучил его систему команд, и проникся уважением! регистров хватит, так как первая страница вполне себе доступна через короткие и быстрые команды, в том числе команды память-память. а особенно мне понравилась возожность запуска программы непосредственно в области ОЗУ! и периферия некислая - АВР превосходит разве что по нагрузочной способности ;)


16 Mar 2018 12:32
Profile WWW
Fanat

Joined: 20 Sep 2015 03:50
Posts: 58
Reply with quote
В отличии от STM8 в ST7 регистры X,Y - 8 битные.

Второй моей поделкой на микроконтроллере ST7 был адресный контроллера доступа по электронным ключам iButton (DS1990A). Ключей (max 254).
Программируемое и управляемое по интерфейсу на подобие 1WIRE UART.

Адрес контроллера задаётся перемычками (JP0..JP3).
Максимальное кол-во контроллеров на шине 16.
UART скорость 9600 8 бит, 1 стоп бит, без паритета.
Пакет данных 22 байт HEX(0...F) символы.

> - начало пакета.
1 байт (0..F)hex - Адрес контроллера устройства.
1 байт (0..F)hex - Команда.
18 байт (0..F)hex - Данные.
2 байт (0..F)hex - Контрольная сумма.

Контроллер выполняет следующие команды:

CMD0
Передаёт последний считанный код и статус ключа.
00 - Ключ отсутствует в базе ключей контроллера.
01..FF - Номер записи в базе ключей контроллера.

CMD1
Передаёт состояние:
Геркона (дверь открыта), кнопки "OPEN".
Кол-во записанных ключей (max 254).
Время работы "РЕЛЕ".
Время до включение зуммера "Дверь не закрыта".

CMD2
Записать новое Время работы РЕЛЕ.

CMD3
Записать новое Время до включение (Зуммер НЕ Закрытой Двери).

CMD4
Считывание кода ключа из ЕЕ базы ключей ( 1...255).
Входные: Rec_Num_Tmp - Порядковый номер записи ( 1...255).

CMDA
Запись кода ключа в ЕЕ базу ключей ( 1...255).
Входные: Rec_Num_Tmp - Порядковый номер записи ( 1...255).
Rec_Num_Tmp = 0 - Запись ключа в базу ключей по свободной записи.
Выходные: Rec_Num_Tmp - Порядковый номер свободной записи ( 1...255).

CMDC
Запись в контроллер начальный установок (СБРОС).

CMDD
Удаление кода ключа из ЕЕ базы ключей ( 1...255).
Входные: Rec_Num_Tmp - Порядковый номер записи ( 1...255).
Rec_Num_Tmp = 0 - Удаление ключа из базы ключей по коду.

CMDE
Стирание всей базы ключей (255).
Запись в контроллер начальный установок (СБРОС).
Код раз блокировки команды - (CC,A5,A5,A5,A5,A5,A5,A5,A5).

Программную оболочку для компа так и не сделал.
Управлял через программу "Terminal" Вписывая команды и данные в макросы программы.


Attachments:
P1060098.jpg
P1060098.jpg [ 129.89 KiB | Viewed 659 times ]
16 Mar 2018 13:07
Profile
Doomed

Joined: 08 Apr 2013 05:04
Posts: 443
Location: 213.247.249.139
Reply with quote
Озвучьте что ли цену тулов для прошивки...
есть ли ихние китайские дешевые клоны?
Поддерживается ли прошивальными софтами что-то кроме поганой мерзкой венды?


17 Mar 2018 02:19
Profile
Fanat

Joined: 20 Sep 2015 03:50
Posts: 58
Reply with quote
Доброго времени суток.
Творческий интерес и вся цена.
Софт "ST Visual Develop" оболочка для программатора "ST Visual Programmer". Пишу на ASM.
Программаторы "ICP-CABLE-2 , ICP-CABLE-1" - LPT
Есть вариант на USB - слегка модернизированый "mRlink Primer" for ST7Ultralite Primer
Всё под Win

В те времена китайских клонов не наблюдал.
В сети есть схема и прошивка для программатора на USB - но там также стоит микроконтроллер ST7.
Пришлось для себя в своё время приобрести программаторы, чтобы было.

Прошивки на мои поделки постом выше.


17 Mar 2018 03:54
Profile
Fanat

Joined: 20 Sep 2015 03:50
Posts: 58
Reply with quote
Доброго времени суток.
Очередная моя древняя поделка на микроконтроллере ST7FOXF1 в DIP и SMD исполнение.

Контроллер доступа с охранными функциями - "KD Rfid Alarm_4"Beta.
Всего 42 карты (0..41) из них:
32 карты доступа (0..31) и 10 карт (32..41) блокировки/разблокировки доступа и отслеживания нарушения 4 линий с включением OUT2
Расстояние считывания 2-4см.
Карты/брелоки типа RFID 125Kzh EM-marine.
2 Входные линии задействованы под кнопку прохода "KNopen" и Геркон НЕ закрытой двери.
4 Входные линии отслеживания нарушений с включением OUT2.
Отслеживание состояния входных линий (Норма, сработка, Обрыв, КЗ) оконечное сопротивление 10ком, с работка 6,8ком.

OUT1,OUT2 - управление проходом и оповещением о тревоги (включают 12в 1А на канал).
Блокировка прохода картой "LOCK" а также постановка/снятие отслеживания нарушений в 4линиях с включением OUT2.
Полное удалённое управление и программирование по 1WIRE UART.
Локальное программирование через 3х позиционный переключатель и кнопки "SET", достаточное для функционирования.
Контроль режимов работы и состояния 5 светодиодами и пищалкой (BUZER).

Программирование через 3х позиционный переключатель и кнопку "SET":

Sw1 on - Добавление карт доступа.
Sw2 on - Установка Времени включения OUT1.
Sw3 on - Установка Времени включения OUT2.(Alarm GK).
Sw1+Sw2 on - Время ожидания не закрытой двери (Геркон).
Sw1+Sw3 on - Кол-во повторов Alarm Open_GK (Геркон).
Sw2+Sw3 on - Добавление карт блокировки (max 10).
Sw1+Sw2+Sw3 on - Очистка переменных и кодов карт.


Удалённое управление и программирование по 1 проводному интерфейсу
1WIRE UART - 9600,8,1 без паритета.
Использую терминальную программу "Terminal v1.9b"

Список команд:

CMD0 _ Системные Временные установки контроллера.
CMD1 _ Команда "KNopen" по времени.
CMD2 _ Смена адреса устройства.(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)
CMD3 _ Длительность включения OUT1.
CMD4 _ Длительность включения OUT2. (Alarm GK).(Сирена).
CMD5 _ Кол-во повторов Alarm Open_GK (Геркон).
CMD6 _ Время открытой двери До СИРЕНЫ.
CMD7 _ Чтение кода карт (0..41). блокировки и доступа.
CMD8 _ Блокировка доступа по карте и "KNopen".
CMD9 _ Разблокировка доступа по карте и "KNopen".
CMDA _ Запись кода карты по номеру (0..41).
CMDB _ Текущее сост. Входных линий Lock/UnLock, Arm/Alarm, L1,L2,L3,L4,L5,L6.
CMDC _ Чтение/запись логики входных линий L1,L2,L3,L4,L5,L6 - (NO, NC).
CMDD _ Удаление кода карты по номеру (0..41).
CMDE _ Установка начальных установок контроллера (Default).
CMDF _ Кол-во за писаных карт блокировки/разблокировки (Max 10) и доступа (Max 32).
;
Пример обмена данными.

CMD0
Запрос >F50000F Ответ <FB005010A039F

< - Маркер начала ответа от контроллера.
Hex(x) Адрес - Адрес контроллера 1 ASCII HEX.
Hex(x) Значение - Длина блока данных 1 ASCII HEX.
Hex(x) Значение - Код команды 1 ASCII HEX.
Hex(xx) Значение - Время активности OUT1(сек) 2 ASCII HEX.
Hex(xx) Значение - Время активности OUT2(сек) 2 ASCII HEX.
Hex(xx) Значение - Время до активизации OUT2(сек) 2 ASCII HEX.
Hex(xx) Значение - Кол-во активизаций OUT2(раз) 2 ASCII HEX.
Hex(xx) CRC8 - Контрольная сумма передаваемого пакета 2 ASCII HEX.

(x) и (xx) - одна или две ASCII HEX (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F).
;
Кому интересно ниже схема, фото платок в Дип и Смд, скан настройки макросов теминальной программы, прошивка и печатки


Attachments:
Прошивка_Плата_Dip_Smd_Macros.zip [338.09 KiB]
Downloaded 23 times
KD_RFID_4z_Alarm_ST7Foxf1_v3.jpg
KD_RFID_4z_Alarm_ST7Foxf1_v3.jpg [ 247.55 KiB | Viewed 597 times ]
P1060100.jpg
P1060100.jpg [ 171.9 KiB | Viewed 597 times ]
19 Mar 2018 01:40
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 6 posts ] 

Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.