и кому/кто с таким потоком будет справляться?rw6hrm wrote:...дальше заменяем ВВ51 на 68В50 и продолжаем выжимать скорость до 1М (по даташиту).
вв51 i8251
Moderator: Shaos
Re: вв51 i8251
Re: вв51 i8251
Доступность это основной критерий, какой толк от микросхемы, если её негде взять? А можно пояснить, для общего развития, что за недокументированные особенности? Я вроде все по документации делал.rw6hrm wrote: Единственная выгода ВВ51 - доступность, у нас, по крайней мере. Главное при использовании - соблюдать даташит и недокументированные особенности при старте, тогда он будет долго радовать своей неспешной работой.
Re: вв51 i8251
Будьте добры, выложите часть программы по эпизоду, выделенному красным.rw6hrm wrote:Из документированных - первое чтение в null сразу после инициализации для очистки регистра RxRDY и снятия "единички" с одноимённого вывода. Однако обычно вывод сбрасывается после второго-третьего "пустого" чтения, у меня зависело от тактовой частоты процессора. У кого-то и с первого раза получается.
Недокументированное - желательная запись в регистр управления нуля хотя бы два-три раза, прежде чем инициализировать чип далее. Без предварительной записи некоторые отечественные ВВ51 после запуска ловят глюки.
Касаемо 8251 - недокументированная часть не нужна, а вот пустое чтение нужно, и оно опять же срабатывает в зависимости от тактовой процессора.
Есть ещё мелочи, но они касаются синхронной работы, посему неинтересны.
В своё время, давно, с чем-то похожим я сталкивался и поборол.
Хочу сверить со своим вариантом. Потому что, когда мне позже попадалась собственная же
программа, один момент мне казался очень нелогичным, но комментария не было, а работать-
работало.
По коду у меня там как раз тройная запись, насколько я помню.
Код адаптировал из какого-то номера Радио, и тройная запись, видимо, тоже оттуда.
Но там комментария или пояснения в тексте вроде тоже не было.
iLavr
Re: вв51 i8251
Как-то так.Lavr wrote: Будьте добры, выложите часть программы по эпизоду, выделенному красным.
Code: Select all
initusart: xra a
out cusart
out cusart
out cusart
mvi a,ir ; Сброс
out cusart
mvi a,s9600
out cusart ; Установка режима порта
Кстати, мне довольно просто удалось разогнать КР580ВВ51А до скорости 57600 на тактовой 5МГц и синхре 0.9МГц. Работает как на прерываниях, так и на опросе в связке с Z80@10МГц. Правда, на больших массивах не успел еще проверить, но в режиме терминала ошибок нет.
Re: вв51 i8251
Никто не встречал UART как 8251, но с питанием наоборот, + на 4 ногу минус на 26 ногу?
Re: вв51 i8251
А тут даже на 38400 не все хотят работать(. При 2 МГц и 615 КГц clock.Xrust wrote: Кстати, мне довольно просто удалось разогнать КР580ВВ51А до скорости 57600 на тактовой 5МГц и синхре 0.9МГц. Работает как на прерываниях, так и на опросе в связке с Z80@10МГц. Правда, на больших массивах не успел еще проверить, но в режиме терминала ошибок нет.
Re: вв51 i8251
Что-то мне давно хотелось это покрутить-проверить...aav8 wrote:Покрутил в Proteus-е модель 8251. Оказалась кривая.
Стандартно настраиваю на 8N1 делитель 1:16. Прием происходит правильно.
Передача происходит с задержкой на один символ, или нужно ждать несколько секунд для след.символа.
Если поставить делитель 1:1 передача происходит правильно.
Но ест-но прием с ошибками. Сунул в схему 2-е штуки: одна принимает, другая передает....
Только занимательный факт имел место: в Proteus v7.7 SP2 пример использования i8251 есть,
хотя всего единственный вкупе с микропроцессором i8086 почему-то.

C:\Program Files\Labcenter Electronics\Proteus 7 Professional\SAMPLES\VSM for 8086\8086 Demo Board\DemoBoard.dsn
А вот в списке моделей USART 8251 почему-то и нет...

Позже на KAZUS.RU прочитал я, что "забыли" её изготовители внести в список моделей, хотя
их всех обслуживает 82xx.dll
В общем методом копи-паста вынул я i8251 из 8086 Demo Board и прицепил к нашему z80:

У кого есть подобное желание - покрутить USART 8251 - ниже архив с проектом. В архиве также исходник, как программировать К580ВВ51 учил нас журнал Радио, а также
одна переведенная статья из интернета, где понятно объясняют, зачем в "железную" 8251
при старте записывать трижды 00Н.
Выходит с инициализацией 8251 трудности также были, и это не "родимое пятно" К580ВВ51.
iLavr
Re: вв51 i8251
В реале разница есть. Не все ВВ51А работают на 38400, в отличие от 8251А.
Люди утверждают что частота CLK к TXC/RXC должна быть 4,5:1. Некоторые даже 5:1. Тогда как даташит говорит, что "Frequency of CLK must be greater then 30 times the Receiver or Transmitter data bit rates". Кому верить?
Люди утверждают что частота CLK к TXC/RXC должна быть 4,5:1. Некоторые даже 5:1. Тогда как даташит говорит, что "Frequency of CLK must be greater then 30 times the Receiver or Transmitter data bit rates". Кому верить?
Re: вв51 i8251
Верить не надо никому. Ибо вера и электроника понятия несколько разные...Mondx wrote:Кому верить?

В электронике практика - критерий истины.
Ибо ещё, помнится, Рональд Рейган говаривал:"Доуверяй but проуверяй!"

iLavr
Re: вв51 i8251
Что то в терминал Протеуса у меня ничего не выводится? dll скопировал, сигналы на ногах есть. 8.15 SP1.
Re: вв51 i8251
А сам терминал настроили 8N1 ?Mondx wrote:Что то в терминал Протеуса у меня ничего не выводится?
iLavr
Re: вв51 i8251
Так он уже настроен. Чудеса какие то. ls193 не работает. 192 тоже. А вот с ls93 всё хорошо - вывод на 2400 есть. Попозже поразбираюсь. Спасибо.
Re: вв51 i8251
Решил я попробовать на этой модели программно покомандовать сигналами /DTR и /RTS.
По мануалу от Intel - это "в натуре" 1-битные порты общего назначения.
Но поведение этих линий у модели весьма странное: в "low" они выпадают без проблем.
А вот в "high" или "1" не возвращаются никакими способами...
Меня как-то очень озадачило, что в мануале везде упоминается сброс в zero : Но про возврат в "high" или "1" не написано нигде и ничего.
По программному сбросу в "high" эти линии не возвращаются.
Но и по аппаратному сбросу не спешат это сделать...
Модель i8251 в Proteus глючная или я что-то не так делаю?
В архиве ниже - исходник, *.bin и *.hex.
По мануалу от Intel - это "в натуре" 1-битные порты общего назначения.

А вот в "high" или "1" не возвращаются никакими способами...

Меня как-то очень озадачило, что в мануале везде упоминается сброс в zero : Но про возврат в "high" или "1" не написано нигде и ничего.

По программному сбросу в "high" эти линии не возвращаются.
Но и по аппаратному сбросу не спешат это сделать...

Модель i8251 в Proteus глючная или я что-то не так делаю?
В архиве ниже - исходник, *.bin и *.hex.
iLavr
Re: вв51 i8251
Хотя попадался мне по поиску в Интернет и вот такой вариант: Собственно, и я ожидал от модели i8251 такого же поведения...Lavr wrote:Меня как-то очень озадачило, что в мануале везде упоминается сброс в zero :
Но почему-то она работает не так.

В "0" без проблем переключается, в "1" возвращаться не спешит.
iLavr
Re: вв51 i8251
Стал крутить более серьёзно, и глюки, похожие на то, что пишет цитируемый автор, обнаружились.Lavr wrote:Что-то мне давно хотелось это покрутить-проверить...aav8 wrote:Покрутил в Proteus-е модель 8251. Оказалась кривая.
Стандартно настраиваю на 8N1 делитель 1:16. Прием происходит правильно.
Передача происходит с задержкой на один символ, или нужно ждать несколько секунд для след.символа.
Если поставить делитель 1:1 передача происходит правильно.
Но ест-но прием с ошибками. Сунул в схему 2-е штуки: одна принимает, другая передает....
...
Покрутил всё это в выходные и, честно говоря, особых проблем и явных глюков не заметил.

Причем глюки весьма похожие...

Хотел я адаптировать через i8251 одну древнюю игрушку, восходящую ещё к Altair-8800. Действительно, приём и передача уверенно происходят на разных частотах.
На частоте выдачи символов глючит приём и наоборот.
При выдаче символов на терминал у меня происходит повторение предыдущего
выведенного символа.
Причём, если добиться устойчивой передачи, ввод начинает глючить...

В оригинале эта игра у меня функционирует под 6502 через ACIA 6850.
Grant Searle в своих поделиях цеплял ACIA 6850 в схему с процессором z80,
причем и рисунок схемы у него выполнен под Proteus, но у меня по его
схеме ACIA 6850 не заработала. Всё же её интерфейс расточен под 6502.

Хотел адаптировать в схему i8251, но пока вот так безуспешно...

iLavr