Сообщения без ответов | Активные темы
Текущее время: 22 дек 2024, 18:37
|
Страница 1 из 1
|
[ Сообщений: 3 ] |
|
Автор |
Сообщение |
Voland
Администратор
Зарегистрирован: 27 ноя 2011, 01:03 Сообщений: 223 Откуда: Москва
|
ИРПС-TTL-RS232 (+WiFi) для БК10(-01) / 11(М) by dimahome
Оригинальная статья взята отсюда | За основу взята схема by MM с добавлением делителя на ТМ2 для использования кварцевого резонатора на 9216 КГц и получения скорости обмена 115200 (хотя реальная работа без проглатывания некоторых байт возможна на БК 3-4 МГц только на скорости 57600, эта скорость используется только один раз, чтобы переключить ESP8266 на 57600), стабилизатора на 3.3в для использования ESP8266 и добавлена MAX232 для реализации COM-порта. Т.к. в Altium Designer схемы не было - без косяков на плате не обошлось |
Для проверки работы использовалась вот такая простенькая терминалка (с исходником, образ диска MK-DOS): Отформатированный для наглядности исходный код (для компиляции используйте исходник из образа):
.LINK 1000
PORT = 177560 IRQ = 360 FONT = 112276 IN = 400 ; ТЕКУЩИЙ АДРЕС БУФЕРА ПРИЕМА OUT = 402 ; ТЕКУЩИЙ АДРЕС БУФЕРА ПЕРЕДАЧИ ECHO = 404 CODE = 406 ; АДРЕС П/П ПЕРЕКОДИРОВКИ ИЛИ 0 CHR = 410
CALL STA START: MOV #1000, SP CLR 177660 MTPS #0 BIT #100, 177716 BNE KEY MOV #12000, R4 ; АВТОПОВТОР TST (PC)+ PRIZN: .WORD 0 BNE 2KEY 2: BIT #100, 177716 BNE KEY CALL INOUT SOB R4, 2 INC PRIZN 2KEY: MOVB 104, R0 BR 1KEY KEY: CLR PRIZN
CALL KURSOR ; МОРГАНИЕ КУРСОРОМ MOV #20000, R1 0JOB: CMP IN, #BUFIN BHI 5KEY TSTB 105 BNE 5KEY SOB R1, 0JOB MOV #12000, R1 5KEY: CALL KURSOR 3KEY: CALL INOUT TSTB 105 BNE 4KEY SOB R1, 3KEY BR START
4KEY: EMT 6
1KEY: MOV #TABKEY, R1 ; ТАБЛИЦА ПЕРЕХОДОВ MOV #TABJMP, R2 ; ПО КНОПКАМ АР/2 И ПРОЧ. 3K: TSTB @R1 BEQ 4K CMPB (R1)+, R0 BEQ 0OK TST (R2)+ BR 3K 0OK: MOV @R2, R2 MOV #START, -(SP) JMP @R2
4K: MOVB R0, @OUT ; ЗАПИСЬ В БУФЕР ВЫВОДА INC OUT
CALL INOUT MOV #6000, R0 ; ЗАДЕРЖКА ДЛЯ ОТПУСКАНИЯ SOB R0, . ; КЛАВИШИ JMP START
INOUT: CMP IN, #BUFIN ; ВЫВОД ВСЕГО ИЗ БУФЕРОВ BLOS 1 MOV #BUFIN, R3 4: CMPB #300, 177717 BNE 6
5: MOV #75400, 177716 ; ДЛЯ 11(М) ОТДЕЛЬНО MOVB (R3)+, R0 MOV #16000, 177716 MOV CODE, R4 BEQ 8 CALL @R4 8: CALL EMT16 CMP R3, IN BLO 5 BR 10
6: MOVB (R3)+, R0 ; 10-КА МЕДЛЕННЕЕ MOV CODE, R4 BEQ 9 CALL @R4 9: CALL EMT16 CMP R3, IN BLO 6
10: MOV #BUFIN, IN
1: CMP OUT, #BUFOUT BLOS 2 MOV #BUFOUT, R3 3: TSTB PORT+4 BPL 3 MOVB (R3)+, R0 MOVB R0, PORT+6 TST ECHO BEQ 7 MOVB R0, @IN INC IN 7: CMP R3, OUT BLO 3 MOV #BUFOUT, OUT 2: RET
IRQ360: CMP IN, #40000 BLO 1 MOV #BUFIN, IN 1: MOVB PORT+2, @IN INC IN RTI
IRQ11M: CMP IN, #140000 BLO 1 MOV #BUFIN, IN 1: MOV #75400, 177716 MOVB PORT+2, @IN MOV #16000, 177716 INC IN RTI
TABKEY: .BYTE 200, 201, 202, 203, 204, 205, 206, 207, 210, 211 .BYTE 245, 267, 244, 253, 265 .BYTE 14, 11, 33, 32, 10, 31, 12, 23, 30 .BYTE 212, 3, 223, 0 .EVEN
TABJMP: .WORD AR2, AR2, AR2, AR2, AR2, AR2, AR2, AR2, AR2, AR2 .WORD ECHO1, WIN, DOS, KOI, UTF .WORD SBR, TAB, DOWN, UP, LEVO, PRAVO, ENTER, WS, DEL .WORD ARENT, KT, ARWS
DEL: RET SBR: RET LEVO: RET PRAVO: RET TAB: RET DOWN: RET UP: RET WS: RET ARWS: RET ARENT: RET
AR2: BIC #177760, R0 INC R0 MOV #KEYS-200,R5 1: ADD #200, R5 SOB R0, 1 2: MOVB (R5)+, R0 BNE 3 MOVB #15, @OUT INC OUT MOVB #12, @OUT INC OUT CLR PRIZN BR 0EX 3: CMPB #'■, R0 ; ЗАМЕНА "■" НА CR/LF BNE 4 MOVB #15, @OUT INC OUT MOVB #12, @OUT INC OUT BR 2 4: MOVB R0, @OUT INC OUT BR 2
UTF: MOV #UTF8, CODE CLR PRIZN MOV #TUTF, R3 CALL POS BR 0EX
WIN: MOV #WIND, CODE CLR PRIZN MOV #TWIN, R3 CALL POS BR 0EX
DOS: MOV #DOS866, CODE CLR PRIZN MOV #TDOS, R3 CALL POS BR 0EX
KOI: CLR CODE CLR PRIZN MOV #TKOI, R3 CALL POS BR 0EX
ECHO1: COM ECHO CLR PRIZN 0EX: JMP START
HLT: SUB @PC, @SP ; БЛОКИРОВКА СТОП RTI ; ВЫХОД - КТ
KT: CLR PORT JMP 100000
ENTER: MOVB #15, @OUT INC OUT MOVB #12, @OUT INC OUT CLR PRIZN RET
KURSOR: MOV R3, -(SP) ; ВКЛ/ВЫКЛ КУРСОРА MOV R2, -(SP) MOV 160, R3 ADD #700, R3 MOV #2, R2 1: CALL 111434 COMB @R3 SOB R2, 1 MOV (SP)+, R2 MOV (SP)+, R3 RET
EMT16: MOV R0, -(SP) MOV 156, R0 BIC #177700, R0 CMPB R0, #77 BNE 9 MOV #12, R0 CALL EM3 9: MOV (SP)+, R0 2: CMPB R0, #40 BLO EM3 CMPB R0, #200 BLO TTOUT CMPB R0, #240 BHI TTOUT RET EM3: MOV R5, -(SP) CALL 102234 MOV (SP)+, R5 RET
TTOUT: MOV R0, -(SP) ; ТИПА "БЫСТРЫЙ" EMT 16 MOV R1, -(SP) MOV R2, -(SP) MOV R3, -(SP) MOV #40000, R2 BIC #177400, R0 TSTB R0 BPL 10 SUB #40, R0 10: ASL R0 MOV R0, R3 ASL R0 ASL R0 ADD R3, R0 ADD #FONT-500,R0 MOV 160, R3 MOV #100, R1 MOVB (R0)+, @R3 ADD R1, R3 BPL 113 SUB R2, R3 113: MOVB (R0)+, @R3 ADD R1, R3 BPL 114 SUB R2, R3 114: MOVB (R0)+, @R3 ADD R1, R3 BPL 115 SUB R2, R3 115: MOVB (R0)+, @R3 ADD R1, R3 BPL 116 SUB R2, R3 116: MOVB (R0)+, @R3 ADD R1, R3 BPL 117 SUB R2, R3 117: MOVB (R0)+, @R3 ADD R1, R3 BPL 118 SUB R2, R3 118: MOVB (R0)+, @R3 ADD R1, R3 BPL 119 SUB R2, R3 119: MOVB (R0)+, @R3 ADD R1, R3 BPL 120 SUB R2, R3 120: MOVB (R0)+, @R3 ADD R1, R3 BPL 121 SUB R2, R3 121: MOVB (R0)+, @R3 MOV 156, R0 BIC #177700, R0 CMP #77, R0 BEQ 30 INC 160 INC 156 30: MOV (SP)+, R3 MOV (SP)+, R2 MOV (SP)+, R1 MOV (SP)+, R0 RET
WEK274: JSR R4, 110346 MOV R5, -(SP) CALL INKEY CMPB R0, #'0 BLO 4 CMPB R0, #'9 BHI 4 BIC #177400, R0 SUB #60, R0 5: BISB #200, R0 BR 3 4: CMPB R0, #11 BNE 2 3: JMP 101622
2: CMPB R0, #12 BEQ 5 BISB #200, R0 CMPB R0, #277 BLOS 1 JMP 101406 1: JMP 101602
WEK60: JSR R4, 110346 MOV R5, -(SP) CALL INKEY1 CMPB R0, #'M-100 BEQ 3 CMPB R0, #'P-100 BEQ 3 CMPB R0, #16 BNE 1 MOVB #200, @#43 MOV #'R, R0 MOV #76, R1 EMT 22 INC R1 MOV #'U, R0 EMT 22 BR 3 1: CMPB R0, #17 BNE 2 CLRB 43 MOV #'E, R0 MOV #76, R1 EMT 22 INC R1 MOV #'N, R0 EMT 22 3: CLR 222 CLR 104 CLR R0 JMP 101322 2: JMP 101150 ZWUKI: MOV #400, R2 BR 12 INKEY1: TST 224 BEQ INKEY CALL 110536 INKEY: MOV #177777, 222 MOV #10,R2 12: MOV #177716, R3 1: MOV 102064, @R3 MOV #30,R0 SOB R0, . MOV 102076, @R3 MOV #30, R0 SOB R0, . SOB R2, 1 MOV @R3, R0 MOVB 177662, R0 RET
WIND: CMPB R0, #192. ; ПЕРЕКОДИРОВКА WIN-1251 BLO 1 BIC #177400, R0 MOVB WINKOI-192.(R0),R0 1: RET
DOS866: MOV R2, -(SP) ; DOS 866 CMPB R0, #40 BLOS 2 MOVB R0, R2 BMI 1 BIT #140, R0 BNE 2 SUB #240, R2 1: CLR R0 BISB TIBM(R2),R0 2: MOV (SP)+, R2 RET
UTF8: BIC #177400, R0 ; UTF-8 2Х БАЙТНЫЙ ТОЛЬКО РУС CMPB R0, #200 BLO 1 CMPB R0, #300 BLO 2 BIC #177770, R0 MOV R0, CHR CLR R0 RET 2: MOV CHR, R5 SWAB R5 ASR R5 ASR R5 ADD R5, R0 MOVB WINKOI-220(R0),R0 1: CLR CHR RET
POS: MOVB (R3)+, R1 2: MOVB (R3)+, R0 BEQ 1 EMT 22 INC R1 BR 2 1: RET
TKOI: .ASCIZ<64>/ KOI-8/ TDOS: .ASCIZ<64>/ DOS/ TWIN: .ASCIZ<64>/WIN-1251/ TUTF: .ASCIZ<64>/ UTF-8/ EN: .ASCIZ<76>/EN/ RU: .ASCIZ<76>/RU/ .EVEN
; DOS 866 .ASCII<15>/■■♥♦♣♠.■/<11><12>/++/<0>/■$→/ .ASCII/←↑!¶■_↑↑↓←└-↑↓АБВГДЕЖЗИЙКЛМНПРСТУФХЦЧШЩЪЫЬЭЮЯабв/ .ASCII/гдежзийклмноп▓▓▓│┤╡║┐┐║║┐┘┘┘┐└┴┬├─┼╞║└┌╧╤║═╬╧╨╤╥└└/ .ASCII/┌┌╫╪┘┌■■■■■рстуфхцчшщъыьэюяЕе/<57>/\/<57>/\→←↑↓:+N$■ / TIBM: .EVEN
WINKOI: .ASCII/АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ/ .ASCII/абвгдежзийклмнопрстуфхцчшщъыьэюя/ .EVEN
KEYS: .BLKB 2200 ; КЛЮЧИ BUFOUT: .BLKB 400 ; БУФЕР ВЫВОДА BUFIN: ; БУФЕР ПРИЕМА
FILE: .ASCIZ/TERM.INI / .EVEN HLT1: MOV #ERR, R1 CLR R2 EMT 20 TST 177662 WAIT JMP 100000
ERR: .ASCII /НЕ НАЙДЕН РЕГИСТР ИРПС 177560/<12> .ASCII /ПЕРЕКЛЮЧАТЕЛЬ "IRQ 360" Д.Б. УСТАНОВЛЕН "ON",/ .ASCIZ /"ADR" - "OFF"/ .EVEN
STA: MOV #FILE, R3 ; ЗАГРУЗКА ФАЙЛА TERM.INI MOV #320, R1 MOV R1, R0 MOV #3, (R0)+ MOV #EOF, (R0)+ CLR (R0)+ MOV #16, R2 MOVB (R3)+, (R0)+ SOB R2, .-2 EMT 36 TSTB 1(R1) BNE 1
2: MOV #HLT1, 4 TST PORT ; ПРОВЕРКА НАЛИЧИЯ ИРПС MOV #HLT, 4 MOV #KEYS, R3 ; УСТАНОВКА КЛЮЧЕЙ ПО АР/2 MOV 264, R1 MOV 266, R2 ADD R1, R2 DEC R1 3: INC R1 CMP R1, R2 BHI 1 CMPB @R1, #'0 BLO 3 CMPB @R1, #'9 BHI 3 CMPB 1(R1), #': BNE 3 MOV R3, R4 MOVB @R1, R5 SUB #60, R5 4: ADD #200, R4 SOB R5, 4 INC R1 5: INC R1 CMP R1, R2 BHI 1 CMPB @R1, #12 BEQ 7 MOVB @R1, (R4)+ 7: CLRB @R4 TSTB @R1 BEQ 3 CMPB #12, @R1 BEQ 3 BR 5
1: EMT 14 MOV #232, R0 EMT 16 MOV #HLT, 4 ; УСТАНОВКА ВЕКТОРОВ ПРЕРЫВАНИЙ MOV #BUFIN, IN MOV #BUFOUT, OUT CLR ECHO MOV #UTF8, CODE CLR CHR MOV #IRQ360, 360 CMPB #300, 177717 BNE 0BK10 MOV #IRQ11M, 360 ; ДЛЯ БК11(М) 0BK10: MOV #340, 362 MOV #WEK60, 60 MOV #WEK274, 274
MOV #40000, R0 ; ОЧИСТКА ЭКРАНА MOV #10000, R2 CLR (R0)+ CLR (R0)+ SOB R2, .-4 MOV #41500, R1 MOV #40,R2 MOV #52525, (R1)+ SOB R2, .-4 MOV #EN, R3 CALL POS MOV #TUTF, R3 CALL POS MOV #THELP, R1 CLR R2 EMT 20
MOV #KEYS, R4 ; ВЫВОД КЛЮЧЕЙ MOV #'0, R5 MOV #TAR2, R1 CLR R2 EMT 20 6: MOV R5, R0 EMT 16 MOV #':, R0 EMT 16 MOV R4, R1 MOV #5100, R2 EMT 20 MOV #12, R0 EMT 16 ADD #200, R4 INC R5 CMP R5, #72 BLO 6 MOV #12, R0 EMT 16 BIS #100, PORT RET
TAR2: .ASCIZ /АР2 +/<12> THELP: .ASCII <234>/АР2/<234>/ + /<234>/E/<234>/-ECHO / .ASCII <234>/K/<234>/ОИ-8 /<234>/D/<234>/OS-866 / .ASCIZ <234>/W/<234>/IN-1251 /<234>/U/<234>/TF-8/<12><12> .EVEN
EOF:
.END
Для проверки модуля WiFi необходимо в TERM.INI прописать в строке 3:AT+CWJAP_CUR="MyAP","************" адрес точки доступа и пароль, затем последовательно нажимая АР2+1...6 и дожидаясь ответа, загрузить всем известный сайт Иллюстрирующее видео: Документацию и АТ-команды к ESP8266-01 см. на https://esp8266.ruДля подключения к USB подойдет, например, адаптер CP2102 USB UART Board (micro)ВНИМАНИЕ! Для питания требуется 5 вольт, а не 4.7, например. На новодельных БК by Voland все работает без проблем, на оригинальных - могут возникнуть проблемы с сигналом RR (готовность приемника). Рекомендуется продублировать +5 вольт медным проводом на разъем МПИ (А4,А12,В12), тогда можно снять перемычку с R6 (см.схему). Впрочем, на модуле WiFi он не используется. Хуже того, из-за программной реализации и буферов FIFO на PC даже без установленной готовности PC успевает загнать в буфер байт эдак 460...
|
05 окт 2017, 23:00 |
|
|
dimahome
Зарегистрирован: 21 фев 2018, 17:23 Сообщений: 2
|
Re: ИРПС-TTL-RS232 (+WiFi) для БК10(-01) / 11(М) by dimahome
Уважаемый S_V_B, не долго думая, раскопал прошивку для ESP8266-01, называется "ESP-LINK". http://samopal.pro/arduino-esp8266/Для перепрошивки на РС по UART надо только "тумблер" При подключении модуля USB-UART, надо иметь ввиду, что напряжение питания не на всех переключается. VCC, например, не значит 3.3v, надо искать. Хотя, если честно, первый раз подал 5V.. нагрелся, но без последствий Виртуальный СОМ-порт работает максимум на 57600, на 115200 не работает. Вся затея ставить 1801ВП1-065 с кварцем на 9126КГц вместо ВП1-035 терпит крах, ввиду быстродействия БК, т.к. сигналы готовности ардуиновские ESP8266 вообще не используют, а при подключении через RS232 - проблема с буферами FIFO, т.е. вообще 9600 Дальнейшая настройка - через web-интерфейс по адресу 192.168.1.4 (по умолчанию), кроме того, появляется открытая точка доступа, её надо отключить переводом в режим STAtion. В настройках виртуального COM-порта (Tibbo) надо указать скорость 57600, как и в настройках ESP.
|
21 фев 2018, 17:31 |
|
|
dimahome
Зарегистрирован: 21 фев 2018, 17:23 Сообщений: 2
|
Re: ИРПС-TTL-RS232 (+WiFi) для БК10(-01) / 11(М) by dimahome
Чтобы это не забылось, надо сохранить. https://bk0010.org/forum/?id=28579&oldЗеркалозагрузка на PC Зеркалоисходки by S_V_B для БК: by TheGWBV
; IRPS-SRV Версия от 24-02-2018 г. .LINK 400 ; Адрес может быть другим, например, 137000
; ЕСЛИ С 137000, ПОДРАЗУМЕВАЕТСЯ МК-ДОС STEK=120076 ; ЗДЕСЬ АДРЕС СТЕКА ДЛЯ ЕМТ 36. (136712). E36STK=120112 ; ДЛЯ АН-ДОС (126476) ; ПО "СТОП" НАДО ВОССТАНАВЛИВАТЬ
PORT=177560 LEN=266 ; Системная ячейка Монитора БК0010 "длина файла" ADR=264 ; Сист. ячейка "адрес загрузки файла"
SERVER: NOP ; Если будем использовать в ОЗУ SMK MTPS #0 MOV PC,R1 ; сохраняем СТОП в "теле" кода SAVHLT: MOV @#4,HLT+6-SAVHLT(R1) ; по адресу HLT+6 ADD #HLT-SAVHLT,R1 ; и вычисляем MOV R1,@#4 ; новый СТОП ADD #IRQ360-HLT,R1 ; MOV R1,@#360 TST @#PORT+2 ; может в рег-ре данных мусор есть? MOV #ADR,R0 ; сначала заполняем системные ячеки MOV #4,R1 ; это всего 4 байта, начиная с ADR BIS #100,@#PORT ; (сигнал готовности приема для РС) 1: WAIT ; адреса и длины *.bin файла SOB R1,1 MOV @#ADR,R0 MOV @#LEN,R1 2: WAIT ; цикл приема тела файла побайтно SOB R1,2 ; по прерыванию от блока ИРПС CLR @#PORT ; сигнал для РС - "прием окончен" RUN: CALL @264 ; и запускаем загруженный код ; по адресу загр. файла, как П/П MOV HLT+6-RUN-10(PC),@#4 ; на всякий случай BR SERVER ; ; Обработчик прерывания по СТОП HLT: CLR @#PORT ; сигнал для РС - "прием окончен" MOV #HLT,@#4 ; восстановить старый СТОП из HLT+6 HALT ; прервать работу и выйти в МОНИТОР ; или ДОС ; Обработчик прерывания от блока ИРПС IRQ360: MOVB @#PORT+2,(R0)+ RTI TASK: NOP ; С этого адреса можно грузить-запускать ПП .END
|
31 июл 2018, 19:27 |
|
|
|
Страница 1 из 1
|
[ Сообщений: 3 ] |
|
Кто сейчас на форуме |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3 |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения
|
закрыть
Советскому бытовому " БК-0011М" посвящается...
Вопреки всем скептикам и недоброжелателям, дело БК живет и развивается. Не за горами день, когда будет выпущен в свет "БК-0012 Pulsar" - расширенный FPGA-клон БК-0011М. Пока же на данном форуме Вы можете ознакомиться с репликами БК-0011М(-01), приставкой Booster-11, репликой контроллера SMK64 (а также его FPGA-клоном - SMK512), аппаратным эмулятором ПЗУ КР1801РЕ2Б, блоками расширения с процессорами ВМ2/ВМ3, и другими интересными материалами и работами.
Ведутся работы по отрисовке в 3D корпусов БК, МСТД, оригинальных клавиатуры, джойстика и мыши, но пока не удается найти их производство по приемлемой цене при малом тираже. Выполнено производство новодельных пленок для клавиатур БК-0011М.
Важным для возрождения БК и его сообщества является новый софт (игры и демо в особености), и они периодически появляются!
Удалось решить многие hard-задачи, но нет системных программистов, востребованных в проекте БК-0012, как минимум для тестирования. Требуется разработка полноценного Win32-компилятора Си в bin-файлы БК.
Релизован полноценный каталогизатор всего софта БК, с удобным интерфейсом. Осталось выполнить собственно большую задачу каталогизации.
Ждем ваших откликов, идей. Сообщайте о данном ресурсе всем, кто увлекался в прошлом БКшкой, присылайте их и свои e-mail для рассылки новостей из мира БК. nimamov@mail.ru
|