Стоп бит 1 вроде же надо.
Вид для печати
Стоп бит 1 вроде же надо.
Так оно вообще не работало.
Для работы конвертера запускается программа USR-VCOM - виртуальный COМ-порт. Когда я запускаю HX Server, эта программа показывает режим передачи: "9600,8,N,2". 8- бит, N - No parity, и 2 стоп-бита. Я выставил в настройках конвертера 2 стоп-бита, и оно хоть что-то начало показывать. Потом я стал смотреть все конфигурационные файлы НХ-Сервера, нашёл Terminal_ComPort_Adapter.ini. Я поменял скорость на 57600. Там есть строка
StopBits = TWOSTOPBITS.
Что надо написать, чтобы сделать один? ONESTOPBITS?
https://github.com/1801BM1/k1801/tree/master/065Цитата:
Всегда передаются 2 стоп-бита, при приеме выполняется проверка только одного стоп-бита. Принятые данные переписываются в буферный регистр и снимается готовность приемника по окончании интервала первого стоп-бита. Поэтому для надежного приема данных микросхемой 1801ВП1-065 удаленная сторона также должна передавать 2 стоп-бита.
Ох, эти чёртовы китайцы! А, возможно, все -чёртовы. Дурят нашего брата везде, где только можно. Стараются сэкономить на любой мелочи. Я уже, вроде, писал, что первые попытки связи между УКНЦ и современным компьютером делал на ноутбуке через преобразователь USB-RS232. И оно работало очень медленно. Вчера узнал, что надо в диспетчере устройств зайти в свойства СОМ-порта, там можно выставить скорость. По умолчанию стоит 9600. Это я брал преобразователь у нас на работе. Хотел купить свой, но посмотрел цены - около 2000 руб. А тут увидел в Чипе с Дипом за 490 руб. Купил, где-то год назад. Недавно, когда экспериментировал с LAN-RS232, заодно попробовал и этот переходник. Так вот, ни фига УКНЦ с ним не работает. Вчера воткнул в него СОМ-овскую мышку - не определяется. Мышка рабочая, при подключении к компьютеру, имеющему родной СОМ-порт, она работает. Переходник называется usb-serial ch340. Стал смотреть информацию, он тоже урезанный! TXD, RXD, GND и всё! Да что же это чертовщина?! Зачем их делают урезанными? Откуда же мне было знать, что может быть такая засада. Я думал, что СОМ-порт - он и в Африке СОМ-порт. Иначе отнёсся бы к приобретению данных конвертеров более внимательно. Теперь, вот, научен горьким опытом.
Так это не COM порт, это конвертер такой.
И даже у китайцев можно найти нормальные - только они на чипсете FTDI (ну или на его "аналоге")
Такой вариант был первым купленным на aliexpress - он с выходом на low TTL - покупался под DE10 - и вроде (проводки есть, но не проверял) с полным набором сигналов. Кстати, его достаточно просто доделать до RS232 - на том же ali есть конвертеры TTL-RS232. Сейчас я использую их на выходе из DE10 - и втыкаю уже в COM порты на PC.
Итак, я решил-таки победить эту коробочку.
Сейчас у меня УКНЦ соединена со старым ноутбуком Sony-Vaio, имеющим СОМ-порт. Кабель с квитированием. Скорость 57600.
Для начала я сделал так:
Работает без изменения настроек.Код:Разъем Разъем
Стык С2 DB9S
1,10 (102) ■─────────────────────■ 5 (GND)
5 (103) ■──────────┐ ┌────■ 3 (TD)
┌────■│■────┘
6 (104) ■────┘ └──────────■ 2 (RD)
3 (+5В) ■────┐ ┌────■ 4 (DTR)
│ │
7 (109) ■────┘ ├────■ 1 (CD)
│
└────■ 6 (DSR)
2 (108) ■────┐ ┌────■ 7 (RTS)
│ │
9 (107) ■────┘ └────■ 8 (CTS)
Затем снял перемычки на стороне РС:
Не работает. В Terminal_ComPort_Adapter.ini везде, где было TRUE, поставил FALSE. Работает.Код:Разъем Разъем
Стык С2 DB9S
1,10 (102) ■─────────────────────■ 5 (GND)
5 (103) ■──────────┐ ┌────■ 3 (TD)
┌────■│■────┘
6 (104) ■────┘ └──────────■ 2 (RD)
3 (+5В) ■────┐ ■ 4 (DTR)
│
7 (109) ■────┘ ■ 1 (CD)
■ 6 (DSR)
2 (108) ■────┐ ■ 7 (RTS)
│
9 (107) ■────┘ ■ 8 (CTS)
Попробовал менять fDtrControl и fRtsControl, если хоть где-либо поставить disable, УКНЦ не грузится. Надо или enable, или handshake. Непонятно, зачем это включать, если данные линии не задействованы?
Затем я подключил УКНЦ к современнному ноутбуку через адаптер USB-COM этим же кабелем с теми же настройками HX Server. Не работает. Помучался, перешёл к конвертеру Ethernet-COM. При попытке загрузиться на УКНЦ появляется первая строка загрузчика, что-то там, "WARM BOOT...", потом бесконечные сообщения "HW-Bad packet". Я попробовал играться с конфигом, это ничего не дало. Потом УКНЦ вообще перестала как-либо реагировать. Я перешёл на ноутбук, с которого я пытался загрузить УКНЦ через USB-COM, т.к. он стоит рядом с нею. И там ничего не получалось. Потом меня осенило: на конвертере ком-порт - гнездо, а не вилка, как на компьютерах. Может, там RxD и TxD поменяны местами? Глянул инструкцию - ну точно! Уже забыл об этом. Видимо, первый раз я "ошибся" и воткнул проводочки "неправильно", а на самом деле, правильно, вот, УКНЦ что-то и показывала. Переткнул провода - всё равно ничего.
Я стал читать эту тему с самого начала. Наткнулся на это:
Коды клавиш, нажимаемых на РС, в регистре 176572 появляются. Ура! А в обратную - нет.
- - - Добавлено - - -
Что-то здесь не вставляется цитата. Но при редактировании сообщения она есть.
https://zx-pk.ru/threads/16001-uknts...l=1#post847144
Сделал - на РС никакой реакции. Однако, я заметил, что на конвертере огонёк в разъеме RJ-45 быстро мигает. Нажимаю СТОП на УКНЦ - мигание прекращается. При заносе кода в регистр 176576 этот огонек кратковременно вспыхивает. Я захожу в веб-интерфейс конвертера, смотрю статистику, счетчик переданных и принятых байтов увеличивается. То есть, от УКНЦ до конвертера данные доходят, а до РС - нет. Моё сообщение 759 на предыдущей странице, скрин настроек конвертера: Remote server addres. Там указан адрес моего стационарного компьютера. Вот, на него с УКНЦ данные и идут, а их там никто не ждёт. Поменял IP на IP ноута - при заносе кодов в 176576 буквы во вкладке Teletype стали появляться. И при запуске этой программки из пульта УКНЦ буквы А побежали. Второе "Ура"!
Теперь пробую загрузку - опять HW-W-Bad packet. Кстати, почему pAcket? Ведь "пакет" по-английски - pOcket. Читаю тему дальше. Предлагаются тестовые Boot_RT-11_from_HX0_(176570).bin. Запускаю с ними - пишет "Timeout". По HX Log видно, что мелкие пакеты идут, а большие, по 16 с чем-то кБ - не проходят.
Пакет - это именно packet, а pocket - это карман
- - - Добавлено - - -
Или кто то за кем то (скорее всего УК-НЦ за PC) не успевает или просто банально скорость для -065-той в УК-НЦ велика.
- - - Добавлено - - -
Если нет аппаратного (DTR, ЕМНИП) или программного (обычно ^S ^Q) уповещение передающей стороны, что не успевают обрабатывать - вполне возможно первое
- - - Добавлено - - -
У меня на паре - FTDI <-> DE10 (то есть ОЧЕНЬ быстрый проц) вполне нормально работает на 115200, а если плата с T-11 - на 38400 дурит, а с F-11 - норм (на обеих платах набортный uart выше не даёт)
Со старым ноутбуком УКНЦ прекрасно работает на скорости 57600 с той же распайкой кабеля, т.е. без квитирования и без перемычек со стороны РС. Значит, для УКНЦ скорость нормальная и она за РС успевает. А с конвертером LAN-COM не получается. Конвертер тормозной? Неохота лезть в УКНЦ и перепаивать перемычки...
Не могу найти тег OFF. Пришлось применить спойлер.
Ответ, по моему, очевиден - проблема в конвертере.
От себя добавлю (но это мысли на основе теории, так как у меня ковертеров COM-Etnernet нет).
Для начала я бы попробовал задействовать аппаратное квитирование.
Кроме того, нужно помнить, в отличии от чистого последовательного канала, где для передачи байта нужно будет минимум 10 бит, в случае (чистого) Ethernet нужно 576 бит, то есть скорость уже на этом падает почти в 58 раз, а если ещё используется и что то более высокоуровневое (лень искать в теме, так что пусть будет тоже как теория) типа IP - то минимальный пакет будет (ещё плюс 160 бит) 736 бит, а если ещё более высокоровневое (типа TCP, будем надеется что на ещё более высокий уровень - типа http или telnet - софт конвертера не лезет) - то ещё и служебные байты и трафик. И всё это не добавляет скорости. Да, на чистом Ethernet получается вполне неплохо - для скорости 100 мбит - реальная скорость падает до (грубо) 2 мбит, то есть по идее должно вполне справится с 57600, только вот что там и насколько хорошо реализовано в конвертере - кто его знает
Это невозможно. У конвертера нет этих линий, только RxD и TxD.
Ну что же, так и придётся лезть в УКНЦ с паяльником и пробовать её притормозить.
Я заметил две вещи. Изменение скорости в Terminal_ComPort_Adapter.ini ни на что не влияет. Влияет только при её изменении в настройках конвертера. На компьютере же со своим СОМ-портом - влияет. При работе через данный конвертер, если после начала загрузки закрыть HX Server, УКНЦ продолжает выдавать сообщения HX-W-Timeout, на конвертере мигает индикатор активности. Прекращает только после выключения конвертера. Если же закрыть HX Server га компьютере с СОМ-портом, загрузка на УКНЦ останавливается и никаких сообщений больше нет.
Да как же его понять, насколько он нормальный... Да, проблема в самом конвертере. Я соединил через него два РС - такая же ерунда. В Гипертерминале нажимаешь клавиши, на другом компьютере эти буквы печатаются. Но файлы не передаются. Надо сначала добиться нормальной работы на РС, если это возможно (:) ). Я сейчас в командировке, пока эксперименты приостановлены.
Вот такие https://www.chipdip.ru/product/vscom-usb-com-mini у меня работает без проблем. По крайне мере до 115200, выше не проверял из за особенностей HX сервера. И вот почти такой https://www.chipdip.ru/product/usb2-8com-m-cbl (только у меня 16-ти портовка) - тоже без проблем до 115200. И ещё один, то же на основе чипа FTDI, купленный на али - тоже без проблем до 115200. Но насчёт китайских поделок, как я понимаю - как свезёт.
This.
А вообще если про скорости выше 57600 для -065-й это вообще как?
Я на своей СЭМЗ-овой запарился (учитывая скиллы паяльника) подтягивать и опускать ее (-065-й) ноги для выставления 57600 для загрузки через HХ. На этой скорости кстати ну в-принципе окей работает.
Конвертер USB-RS232 (не то чтобы прям обычный, не знаю какой из них обычный). FTDI что-то там.
Провод с замыканиями "на себя" контрольных сигналов.
В -65й есть возможность тактировать внешней произвольной частотой. Соответственно скорость либо выбирается из стандартного ряда, либо определяется произвольной частотой.
У -65й есть флаги(2 шт. На вход и выход, подключать либо на RTS+CTS, либо на DTR+DSR), кои работают аппаратно, в отличии от 35-й, в итоге -65я может с ними работать, своеобразно правда,
то 35-я обладает только одним(на вход)... И его можно использовать только лишь на определение того(в случае пары 35-й), воткнут ли кабель или входной однобитный порт :)
Аппаратные особенности -65й вытягиваются за счёт протокола программного обмена. Видел обмен не только с PC, но и с компьютерами ЯМР-спектрографов BRUKER. Причём эти компьютеры(благо диски были по тем временам большими) могли работать в качестве серверов для загрузки ДВК. Файлы изначально между разными системами вполне таскались сначала Кермитом, но это было медленно ... Потом написали свои программы.
Ну вот это уже шаманство какое-то :)
На всякий случай продублирую программку которая ЯКОБЫ должна менять скорость последовательного интерфейса в УКНЦ (программно!).
Сразу скажу - добиться желаемого программно либо не удалось. Либо удалось - но мой FTDI не понял изменений скорости "на лету". Либо кабель не тот (либо еще чего).
Пробовал ее со всякими изменениями - самое интересное что что-то происходит! То-есть вроде даже что-то меняется, но надо было сидеть видимо с прибором и мерять напряжения/частоты на выводах КР1801ВП1-065 в зависимости от того как периферийный процессор пишет в ячейки 177704 177700 (они в периферийном процессоре вроде как "резерв" описаны)
Тем не менее кто-то эту программу писал и явно оно когда-то работало!
Изменение скорости RS232 на УКНЦ программно
Код:.Title rs232 test
.ident /v01.00/
.mcall .ttyin .ttyout .exit .print .scca
jsw = 44
exchr = 3
reptch = 5
speedc = 11
nrept = 100.
int = ^b1000000
ready = ^b10000000
ovf = ^b1000000000000
err = ^b1000000000000000
break = ^b1
test = ^b001
rxrs = 176570
rxrd = rxrs+2
rxvec = 370
txrs = rxrd+2
txrd = txrs+2
txvec = rxvec+4
.macro mput adrmp
jsr r2,mput$
.word adrmp
.endm
rsk2 = 176674
rdk2 = rsk2+2
start: .print #prom1
.scca #area,#adrsc
bis #10100,@#jsw
mov @#rxvec,oldrxV
mov @#txvec,oldtxV
mov #rxloc,@#rxvec
bis #int,@#rxrs
; br .
1$: mov #1,r1
.ttyin
cmpb r0,#speedc
bne 11$
call setspd
br 1$
11$: cmpb r0,#exchr
beq exit$
cmpb r0,#reptch
bne 2$
.ttyout #64.
movb #reptch,r0
mov #nrept,r1
2$: tstb @#txrs
bpl .-4
movb r0,@#txrd
sob r1,2$
cmpb r0,#reptch
bne 1$
.ttyout #65.
.ttyout #12
.ttyout #15
br 1$
exit$: mov oldrxv,@#rxvec
mov oldtxv,@#txvec
bic #int,@#rxrs
.print #ex.ok
.exit
rxloc:
bit #ready,@#rxrs
beq 10$
movb @#rxrd,r0
cmpb r0,#reptch
beq rxloc
cmpb r0,#exchr
beq exit$
.ttyout
bit #ovf,@#rxrs
beq 1$
.ttyout #177
inc errovf
1$:
bit #err,@#rxrs
beq 10$
.ttyout #177
inc errpar
br rxloc
10$: rti
; Подпрограмма перемещения в К2 адреса МП
mput$:
call 5$ ; Подождем готовности К2
1$: call 4$ ; Вытолкнем в К2 первые 2 байта адреса
cmp r2,#2$ ; Байты завершения переданы ?
beq 3$ ; ..да - перейдем к проверке ответа
clrb @-(r2) ; Очистим байт ответа
jsr r2,1$ ; Передадим 2 байта завершения 377
.word -1 ; Байты завершения
2$: tstb @(r2)+ ; Проверим ответ
3$: rts r2 ; Выйдем в основную программу (или на 2$)
4$: mov pc,-(sp) ; Обеспечим повторный вход
movb (r2)+,@#rdk2 ; Передача байта в К2
5$: tstb @#rsk2 ; Ожидание готовности К2
bpl 5$
return ; выход [ 20 слов ]
SETSPD:
.print #lspd
.ttyin
sub #'A,r0
bmi retbad
cmp r0,#12.
bgt retbad
movb valspd(r0),spd.pm
mov r0,r1
mul #14.,r1
add #sspd,r1
mov #10.,r2
mov #str.pm+1,r0
movb (r1)+,(r0)+
sob r2,.-2
mput mp.put
mput mp.exe
.print #clrstr
return
retbad:
.ttyout #7
.print #clrstr
return
;spd.pm: .word 0
pp.beg:
spd.pm = .+2
mov #0,@#177704
bis #400,@#177700
bic #400,@#177700
mov pc,r0
add #str.pm-.,r0
mov r0,xxx
emt 52
xxx: .word 0
return
str.pm: .byte 1.
.blkb 10.
.byte 0
.even
pp.end:
mp.put: .byte 0,20,32,0
.word 1100
.word pp.beg,<pp.end-pp.beg>/2
mp.exe: .byte 0,30,32,0
.word 1100
.word 111111
errpar: .word 0
errovf: .word 0
area: .blkw 2
adrsc: .word 0
oldrxv: .blkw 1
oldtxv: .blkw 1
prom1: .ascii / ╙╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣ё/<15><12><33><'K>
.ascii / ╥ rs232 test started ╥/<15><12>
.ascii / ╥ ^C - Exit ╥/<15><12><33><'K>
.ascii / ╥ ^E - move 100. chars to C2 ╥/<15><12><33><'K>
.ascii / ╥ <tab> - set speed ╥/<15><12><33><'K>
.ascii / ╕╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╧/<15><12><33><'K>
.byte 200
ex.ok: .ascii <15><12>/Exit OK/
.byte 33,'K,0
clrstr: .byte 15,33,'K,200
lspd: .byte 12, 15
sspd: .ascii / A - 50 /<15><12><33><'K>
.ascii / B - 75 /<15><12><33><'K>
.ascii / C - 100 /<15><12><33><'K>
.ascii / D - 150 /<15><12><33><'K>
.ascii / E - 200 /<15><12><33><'K>
.ascii / F - 300 /<15><12><33><'K>
.ascii / G - 600 /<15><12><33><'K>
.ascii / H - 1200 /<15><12><33><'K>
.ascii / I - 2400 /<15><12><33><'K>
.ascii / J - 4800 /<15><12><33><'K>
.ascii / K - 9600 /<15><12><33><'K>
.ascii / L - 19200/<15><12><33><'K>
.ascii / M - 57600/<33><'K><15><12>
.ascii /Установите скорость : /<33><'K><200>
valspd: .byte 5,4,7,6,1,0,3,2,15,14,17,16,11
.end start
[свернуть]
Собственно интересный момент вот тут, который выполняется в периферийном процессоре УКНЦ (остальное это обвязка в ЦП и пересылка куска кода в ПП)
Ну и до кучи ссылка на пост с описанием КР1801ВП1-065 чтобы кто-нибудь долго не искал как поставить нужную скорость.Код:pp.beg:
spd.pm = .+2
mov #0,@#177704
bis #400,@#177700
bic #400,@#177700
https://zx-pk.ru/threads/12945-tekh-...065/page2.html
Не шаманство, штатно предусмотренный режим работы разработчиками :)
Но вот конкретно реализации не знаю ни одной :(
Хорошо, что Vslav произвёл вскрытие -65й.
Эту странность работы с флагами - знать бы тогда ... :)
Точнее догадки были, что там что-то не так, но это были гнусные домыслы и измышления, да ещё не исключался тупо брак... :)
И в однотомнике(первое издание) было прописано FR3-0, что при каком-то сочетании помеченной Vslav, как "Останов" использовался внешний источник тактовой частоты, который и задавал произвольную скорость обмена.
Но возможно, что это была ошибка в книге(скорее всего добросовестное заблуждение, такие данные дали), я Vslav более верю :)
По поводу установки скорости, в программе закомментированно:
;spd.pm: .word 0
Да и в инструкции на УКНЦ не заявлено изменение скоростей...
Вообще - надо схему смотреть... Чтобы понять куды там FR0-3 подведены....
Для квантовой УКНЦ оно кажется непригодно вообщем. Там вроде по схеме тупо на землю или +5В через перемычки.
Однако на схеме СЭМЗ немного иначе..
Картинка с куском схемы
https://i.imgur.com/5QxhjlR.png[свернуть]
У меня как-раз СЭМЗовая железка и эта программка что-то делает.
Смотреть надо что такое регистр D24, и откуда данные на него приходят...
Судя по схеме, через него может задаваться скорость.
Но сама программка - недописана :(
То есть меню выбора скорости есть, а вот далее :(
Это адресное пространство периферийного процессора:
177700 - регистр состояния клавиатуры
177702 - скан код клавиатуры
177704 - отмечен как РЕЗЕРВ, ФОРМИРУЕТСЯ СИГНАЛ "СИП"
- возможно тут собака и порылась ... Но без схемы что-то сказать сложно :(
177710 - программируемый таймер...
1515ХМ1-031 - надо смотреть, как я подозреваю, но это всё мои гнусные домыслы и измышления ;)
В укнц производства "Квант" стык 2 какое имеет соответствие выводам компорта?
103 TxD
104 RxD
107 CTS
108 RTS
109 DSR
Или я что-то путаю???
Они должны быть одинаковые что Квант что СЭМЗ.
Если нужно кабель собрать для загрузки со стык-С2 - да вот такой пойдет что от копипасты ниже.
Всякие RTS CTS там сто лет не нужны, работает нормально по шлейфу 3метра на скорости 57600 (ну мне пришлось подтягивать у микросхемы выводы нахально на 0 и +5В для выставления скорости 57600 ибо СЭМЗ, а в КВАНТе перемычки есть заранее)
Если верить описанию прототипа УКНЦ (есть на www.emuverse.ru) то будет как-то так:
Выдержка из документа
Код:ТАБЛИЦА 47
----------------------------------------------------------------
НОМЕР КОНТАКТА!ОБОЗНАЧЕНИЕ! НАИМЕНОВАНИЕ И НАЗНАЧЕНИЕ СИГНАЛА
!СИГНАЛА !
--------------+-----------+------------------------------------
1 ! 102 !ЦЕПЬ 102, СИГНАЛЬНОЕ ЗАЗЕМЛЕНИЕ
2 ! 105 !ЦЕПЬ 105, ЗАПРОС ПЕРЕДАЧИ
3 ! 108 !ЦЕПЬ 108, ОКОНЕЧНОЕ ОБОРУДОВАНИЕ
! !ДАННЫХ ГОТОВО
5 ! 103 !ЦЕПЬ 103, ПЕРЕДАВАЕМЫЕ ДАННЫЕ
6 ! 104 !ЦЕПЬ 104, ПРИНИМАЕМЫЕ ДАННЫЕ
7 ! 109 !ЦЕПЬ 109, ДЕТЕКТОР ПРИНИМАЕМОГО
! !ЛИНЕЙНОГО СИГНАЛА
8 ! 107 !ЦЕПЬ 107, АППАРАТУРА ПЕРЕДАЧИ ДАНН-
! !НЫХ ГОТОВА
9 ! 106 !ЦЕПЬ 106, ГОТОВ К ПЕРЕДАЧЕ
10 ! 102 !ЦЕПЬ 102, СИГНАЛЬНОЕ ЗАЗЕМЛЕНИЕ
-----------------------------------------------------------------
[свернуть]
Прежде всего у 65-й прошивки всего два флага, по одному на вход и выход...
Надо схему смотреть, какие и как флаги используются.
65-я про всё богатство заявленное и не ведает.
Варианта два, либо сигналы флагов объединены мелкой логикой в один,
либо часть этих флагов идёт мимо 65й прошивки.
Чтобы избавиться от старого советского блока питания - купил такую вот штуку: TMH0512D TRACO POWER (https://www.tme.eu/en/details/tmh051...s/traco-power/)
Вроде как конвертер 5В -> +/- 12В 80mA
Ну так вот - в итоге оно превратилось в +16В и -8В при подсоединенном штеккере стыка-С2.
С моим ком-портом обычного компьютера вполне работает, загрузка через HX идет, волшебный синий дымок не пошел. Но смущают такие напряжения. (хотя в разнице они и дают 24В)
Это я просто к тому что видимо "не все йогурты одинаково полезны" :)
Самое оно это блок питания от двд плееров, там +5 3-5а и + -12в до 1а
И купить двд можно за 100-300р
https://cdn.discordapp.com/attachmen...621_175012.jpg
Опытным путем удалось выяснить что если кто-то начнет закидывать ровно 512 байт в стык-С2 и причем этот стык будет не железным, а скажем-так факапным усб-уарт. То часть байт не закинется. Виноваты какие-то буфера. Я не знаю как сделал Патрон свой HX сервер (поскольку он у него работает даже с лажовыми нежелезными этими вещами навроде ftdi микросхемы) - вообщем помогло закидывание банального килобайта дописав под конец кучу нулей (код УКНЦ не переварит все-равно больше 512 байт, то-есть блока).
Самый простой способ - сделать задержку между отправленными символами...
Потом, как зальётся загрузчик - можно использовать протокол свой.
ftdi весьма приличная микросхема - у меня с ней вообще проблем нет - как при работе FPGA варианта uart, так и при работе всяких последовательных портов от железных PDP-11 (LSI, F11, J11 и ВМ3 (-065) плат), а на стороне PC был не только Патроновский VT52 и HX, но эмулятор TU58, который я переписал с C на C# и где модуль работы с COM портом точно не Патроновский
- - - Добавлено - - -
Поправка. Если это оригинальные ftdi, а не китайское вольное сочинение на тему ftdi - с ним (по отзывам, у меня только один ковертер с подозрением на то, что не оригинальный) может быть всё, что угодно.
- - - Добавлено - - -
И сразу вопрос - если
то что прилетит на сторону УК-НЦ при закидывании килобайта??
ежели "китайское вольное сочинение на тему ftdi"
То да, результат трудно предсказуем ... А уж закидывать нули, это вообще неправильно :(
Данные из буфера должны уходить вне зависимости от того, сколько там байт осталось.
Я уже написал в соответствующем ТГ-канале, что так делать нельзя.
Если кабель без квитирования, т.е. без поддержки CTS/RTS и в DCB-блоке соответствующие настройки, то стандартный загрузчик примет 512 байт, запустит их. А остальные 512 будут лететь в буфер 1801ВП1-065, но т.к. их никто не считывает, то будет стоять бит переполнения в регистре статуса.
В случае кабеля с квитированием и соответствующими настройками, УКНЦ примет 512 байт, запустит загрузчик. А вот программа, посылающая килобайт, будет ждать готовности от стыка С2, а его не будет.
Если надо кидать нули, значит буфферизация в чипе - не работает ...
Добраться до УК-НЦ сейчас мне тяжело, так что пока про УК-НЦ ничего не скажу.
В других же случаях ещё на было случая, что бы эта буферизация (и не в Windows, а в железе, скажем, у моих FTDI стоит умолчание - 4096 байт) как-то мешала.
В настройках COM порта
Я так понимаю, что что-то самописное используется для общения с УК-НЦ через COM порт?
BlaireCas, а учитывая, что у вас COM через USB, можете опробовать мою утилитку загрузки? Это тот же UkncComSender, только с другим загрузчиком и параметром для скорости. Мой загрузчик учитывает тайм-аут и считает контрольную сумму. Если что не так, то на экране будет вывод, что произошла ошибка. На железном порту всё прекрасно, но учитывая, что USB плюётся пакетами, не будет ли ошибки тайм-аута.
Вызов: UkncComSender COM-порт FileName [BaudRate]. Третий параметр необязательный, по умолчания 9600. В вашем случае надо 57600.
Актуальная версия дальше по теме.
Со стороны УКНЦ стандартный загрузчик из ПЗУ. Он банально грузит 512 байт по адресам 0-777 и если первый код = nop - то запускает прямо с адреса 0.
Со стороны ПК юзается софт Никиты (https://github.com/nzeemin/ukncbtl-u...cComSender.cpp, понятно с некими уже моими модификациями ибо мне не надо грузить .sav, а только загрузить 512 байт)