nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 20 Sep 2018 17:50



Reply to topic  [ 14 posts ] 
Замена Z80SIO/2 на 580ВВ51 
Author Message
Maniac
User avatar

Joined: 13 Nov 2007 12:09
Posts: 272
Location: Ставрополь
Reply with quote
Собственно за основу берётся схема http://searle.hostei.com/grant/cpm/index.html , в которой планируется заменить недоставаемый (да и нифига не нужный) двухканальный Z80SIO/2 на один 580ВВ51 (про второй канал не спрашивайте, он по другому будет сделан). В SIO есть вывод INT, активно используемый программно. Вопрос: какой вывод в ВВ51 можно использовать вместо него? Просто не особо хочется кардинально лопатить софт, плюс есть отрицательный опыт работы с СОМ-портом без прерываний (некоторые символы пропадают, плюс тут СР/М, которому прерывания нравятся)... ВВ51 будет использоваться в двухпроводном режиме (RX/TX).
...или всё же полопатить софт? ;)
Заранее всем пасиб.


15 Jun 2017 08:03
Profile WWW
Doomed

Joined: 08 Apr 2013 05:04
Posts: 443
Location: 213.247.249.139
Reply with quote
А какая-нить SC16C2550 не вариант? 2канальный уарт.

...а переделка софта с работы на z80sio на работу на 8251 -- это не входит в понятние 'лопатить софт'? :)


15 Jun 2017 09:01
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
rw6hrm wrote:
В SIO есть вывод INT, активно используемый программно. Вопрос: какой вывод в ВВ51 можно использовать вместо него?
...есть отрицательный опыт работы с СОМ-портом без прерываний (некоторые символы пропадают, плюс тут СР/М, которому прерывания нравятся)...

Я сам вопрос немного не понял: у "SIO есть вывод INT, активно используемый программно."
Т.е. он аппаратно не заведен на прерывания? А с ВВ51 нужен вывод, дающий аппаратное прерывание?
Если я правильно понял вопрос - могу подсказать, если нет - поясните вопрос.
ВВ51 можно использовать и по прерыванию, и по опросу, насколько я помню.

TxRDY (15) Готовность передатчика, RxRDY (14) Готовность приемника.
Уровень лог. "1" на этих выводах используется как запрос прерывания.
Но их же состояние можно прочитать через слово состояния БИС:
разряд D0=1 - TxRDY,
разряд D1=1 - RxRDY.

_________________
iLavr


15 Jun 2017 11:20
Profile
Maniac
User avatar

Joined: 13 Nov 2007 12:09
Posts: 272
Location: Ставрополь
Reply with quote
angry_troll wrote:
А какая-нить SC16C2550 не вариант? 2канальный уарт.

Планируется использовать только один СОМ-порт. Второй канал переделывается на параллельный ввод/вывод (с логикой работы СОМ-порта ;), а именно http://qsl.net/rw6hrm/html/8bitdisp.htm чтоб не тормозило).
Lavr wrote:
Я сам вопрос немного не понял: у "SIO есть вывод INT, активно используемый программно."
Т.е. он аппаратно не заведен на прерывания? А с ВВ51 нужен вывод, дающий аппаратное прерывание?
Если я правильно понял вопрос - могу подсказать

Имел в виду, что INT обрабатывается в софте, причём в нескольких местах; аппаратно он заведён на процессор (в ссылке же есть схема). Так что вопрос понят правильно.
Quote:
TxRDY (15) Готовность передатчика, RxRDY (14) Готовность приемника.

...понял. А я хотел на их светодиодики повесить, чтоб моргали ^___^. Осталось понять, в каких случаях срабатывает INT в SIO. Пошел читать мануал.
Спасибо!


15 Jun 2017 12:56
Profile WWW
Doomed

Joined: 08 Apr 2013 05:04
Posts: 443
Location: 213.247.249.139
Reply with quote
rw6hrm wrote:
angry_troll wrote:
А какая-нить SC16C2550 не вариант? 2канальный уарт.

Планируется использовать только один СОМ-порт.


Тогда sc16c550 или аналог от техасских отвёрток! С фифо на 16 байт.


15 Jun 2017 14:19
Profile
Maniac
User avatar

Joined: 13 Nov 2007 12:09
Posts: 272
Location: Ставрополь
Reply with quote
Вопрос только два, и они достаточно глупы.
а) где взять эту балалайку? У меня под столом её нет. А выписывать, ждать почту,.. да ну его нафиг тогда, проще на ТТЛ собрать аналог уарта.
б) и зачем? когда что-то уже есть под руками и не требует дополнительных финансовых затрат ;)

Я бы с удовольствием применил 6850 вместо ублюдочного ВВ51, но поженить отродье Моторолы с последышем Интела не так-то просто. А, и кстати: исключительно DIP.


15 Jun 2017 14:41
Profile WWW
Doomed

Joined: 08 Apr 2013 05:04
Posts: 443
Location: 213.247.249.139
Reply with quote
Ну моё дело предложить, а там конечно делай как тебе сподручнее :-)

ps: в голову пришло только что: pic16f877 с его parallel slave port. DIP кстати.


15 Jun 2017 15:41
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Ну я бы 8250 предложил - у меня "под столом" их парочка валяется... :wink:
Но у топикстартера, как я понимаю, этой "балаллайки под столом" тоже нет.
А есть у него 580ВВ51 - с ним он и "взыграет русскую народную песню". :lol:

Собственно, на мой взгляд, 580ВВ51 - не такой уж и "ублюдочный", я его
лично пробовал - нормально работает, хотя и по опросу; по прерываниям - не
делал... 8250 супротив 580ВВ51 в обслуживании проще.

Но и 580ВВ51, я полагаю, топикстартеру малины "шибко" не испортит...
Попадалось мне - на ZX.PK.RU его толпой запускали и все программные тонкости
разжевали: есть там один забавный момент с тремя нулями при инициализации... 8)

_________________
iLavr


15 Jun 2017 16:12
Profile
Maniac

Joined: 05 Nov 2008 20:47
Posts: 251
Location: 81.28.208.238
Reply with quote
Прерывания от ВВ51 очень просто - готовности собираются через ИЛИ-НЕ и подаются на запрос прерывания
(активный низкий уровень). Я использовал какую-то ЛР


15 Jun 2017 18:51
Profile
Maniac
User avatar

Joined: 13 Nov 2007 12:09
Posts: 272
Location: Ставрополь
Reply with quote
Lavr, Вы, как всегда, правы ;), используем для поделок то, что есть в наличии. Про эпопею инициализации на дружественном форуме в курсе. Почему ВВ51 не особо нравится - на 6850 спокойно работал на скорости 115200 асинхронно, а при желании можно было разогнаться до 2Мбит. Как это сравнить с максимальной 19200 - ума не приложу. Хотя для планируемого приложения - периодической связи с РС - этого вполне хватит.
aav8, да, спасибо, я уже этот момент понял. В указанной выше схеме прерывание используется только по приёму символа.


15 Jun 2017 23:07
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
rw6hrm wrote:
Lavr, Вы, как всегда, правы ;), используем для поделок то, что есть в наличии.

Да я это считаю одним из правил нашего хобби - извернуться на том, что есть!
Мне лично порой это даже просто проффесионально интересно - поработать в
рамках искусственно созданных трудностей...
Ведь не серийное что-то конструируешь, а что-то своё, любимое, и надо реально
пустить в дело то, что "лежит под столом" - иначе зачем оно там лежит? :wink:

_________________
iLavr


16 Jun 2017 03:39
Profile
Maniac
User avatar

Joined: 13 Nov 2007 12:09
Posts: 272
Location: Ставрополь
Reply with quote
...и вот я обломался, применив вместо SIO ВВ51. Далее кратко и сумбурно.
Машинка под СР/М, два режима работы: обычный мониторный режим (ПЗУ в младших адресах) и собсна СР/М (ПЗУ отключается и идёт работа с биосом в верхних адресах). Машинка имеет два канала ввода - через ВВ51 и отдельный блок клавиатуры, ввод символа планируется по прерываниям. А вот далее запутался полностью чота...
Если применить Z80SIO, то мы можем записать в него адрес подпрограммы обработчика по прерыванию (младший бит) и вызывать его в режиме IM2. Причём как в мониторном режиме, так и в СР/М адрес можно перезаписать запросто. А вот с ВВ51 такой трюк не проходит, про IM2 можно забыть. Если в мониторном режиме можно работать по прерыванию в режиме IM1 (с фиксированным адресом в младших адресах, 0038Н), то как обойти эту хрень в режиме СР/М, когда биос сидит в верхних адресах...
Конечно, можно работать в режиме прерываний IM1 всегда, в СР/М просто записывая в нулевой странице на адресе 0038H джамп на обработчик в биосе, но, насколько я знаю, этот адрес может использоваться некоторыми программами, в частности DDT или SID.
В общем, как поступить? Нет охоты платку переделывать...


05 May 2018 09:26
Profile WWW
Senior
User avatar

Joined: 19 Feb 2017 04:46
Posts: 151
Location: Россия
Reply with quote
rw6hrm wrote:
насколько я знаю, этот адрес 0038 может использоваться некоторыми программами, в частности DDT или SID.

Это не довод.

Во первых, потому, что номер RST по прерыванию можно задавать не резисторами привязки на +5В, а целым регистром типа ИР22, которым можно выдавать на шину код любого RST.

Во-вторых, потому что изменение номера используемого RST в отладчике это работа на несколько минут. Производные от DDT (SID, ZSID, ZSID3) используют RST 38, а вот Z80 отладчики MONS, ZBUG и отладчик ИРИШИ использует RST 30.

Т.к я сам в DOS использую все RST (в т.числе и иногда RST 38), то мне пришлось решать обратную задачу - менять RST в отладчиках, где RST 30, на RST 38.

Всё изменение, нужное, чтобы сменить номер RST - в байте CF, который кладётся в стоп точку, вместо байта FF. И смена адреса RST, который инициализируется при директиве G перед уходом на прогон байтом C3 и адресом BREAK (заменить адреса 38 и 39,3A на 30 и 31,32).

Да и вообще, отладчик не нужен, если есть эмулятор, т.к отлаживать удобнее в нём.

rw6hrm wrote:
Я бы с удовольствием применил 6850 вместо ублюдочного ВВ51, но поженить отродье Моторолы с последышем Интела не так-то просто.

Читал где-то, что 6850 программируется проще, чем ВВ51. А если речь о железе, то древняя 6850 из 1974 года без извратов и потому без проблем включаются в шину любого процессора. Интерфейс 6850 стал стандартом последовательного интерфейса для контроллеров. Кто-то на сайте ZX-PK.ru уже применил 6850 в ОРИОНЕ. 6850, якобы, лучше оттого, что более скоростной.


Last edited by barsik on 05 May 2018 17:56, edited 2 times in total.



05 May 2018 10:53
Profile
Maniac
User avatar

Joined: 13 Nov 2007 12:09
Posts: 272
Location: Ставрополь
Reply with quote
barsik wrote:
Это не довод.

Это была одна из возможных причин паники ;) Понял, короче можно спокойно работать в режиме IM1 с адресом 0038Н как в ПЗУ, так и в нулевой странице, а если какая программа к нему и привяжется - откорректировать программу. Не думаю, что Вордстар и DBase обратятся к этому адресу (а больше мне и не надо). Всё, я успокоился и пошёл дописывать процедуры. Большое спасибо.
barsik wrote:
Читал где-то, что 6850 программируется проще, чем ВВ51.
...
6850, якобы, лучше оттого, что более скоростной.

Да, 6850 мне понравился больше, в "Аюше" он у меня летал на 115200, размер меньше, жрёт меньше. Но, к сожалению, на седьмой части суши достать его не очень просто, поэтому, сжав зубы, выбрал ВВ51 и 9600. Мало ли, мож кто и повторит конструкцию...


05 May 2018 12:08
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 14 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.