x86128: (Default)
[personal profile] x86128 posting in [community profile] besm6
В целях практики в Verilog изобрел для МЭСМ-6 велосипед UART.



Код тут: gist

Со стороны МЭСМ программируется через два регистра - управляющий/статусный и регистр буфера FIFO.
Управляющий регистр при записи имеет вид:

Запись в управляющий регистр устанавливает делитель частоты, включает цепи приема/передачи и режим самотестирования(loopback).
Разрядность делителя 9 бит (+4 бита для постоянного множителя х16).UART работает на частоте процессора 50МГц поэтому 9 битного делителя хватает на диапазон скоростей от 9600 до 115200.
Во время чтения регистра поля имеют вид:

где rx/tx empty сообщает о том что соотв. FIFO пустое.
tx_finish - устанавливается когда все байты из tx FIFO переданы и выдвинуты все биты последнего байта.

Запись байта в буфер FIFO укладывает его в очередь, если очередь переполнена, то затирается последний уложенный байт.
При чтении из буфера FIFO, вместе с 8-мью битами данных читается бит состояния очереди, который равен 0 если биты данных имеют смысл и 1 если очередь была пуста.


Короткая программка реализующая "эхо" полученных символов:
*
* UART echo-test.
*
start   start   '1'
* UART registers
U0_DT   equ     '77740'   , data fifo
U0_CT   equ     '77747'   , control and status reg
U0_CTS  equ     '77746'   , set bits
U0_CTC  equ     '77745'   , clear bits
        ntr 3
* reset uart
        xta     '0'
        atx     U0_CT
* set divider
        xta     =b'033'    , 115200
        atx     U0_CTS
        xta     =b'1000'   , enable rx tx
        atx     U0_CTS
l4      xta     U0_DT
        ati     4
        aax     =b'400'    , wait for data
        u1a     l4
        ita     4
        atx     U0_DT      , push data to tx fifo
* wait for send complete
loop    xta     U0_CT
        aax     =b'10000'   , tx_finish bit
        uza     loop
        uj l4
*-------------------------
align   адрес   start+'1777'            , данные с адреса 2000
        fin


Нужны ли для МЭСМ режимы передачи отличные от 8n1, т.е. с битом четности, доп. стопом и произвольной длиной байта?

Забавно получилось. Когда пришел за резисторами в местный Чип и Дип, спросил есть ли у них логический пробник, молодые люди сделали вопросительные удивленные лица. Видимо сейчас даже у самого начинающего радиолюбителя есть осциллограф для таких целей 😂
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

Сообщество любителей БЭСМ-6

December 2025

S M T W T F S
 123456
78910111213
14151617181920
21222324252627
282930 31   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 15th, 2026 08:49 am
Powered by Dreamwidth Studios