ZXevolution + RS-232

ZX evolution software and hardware

Postby DimkaM » 08 Aug 2011, 18:38

Поудалял свои посты, разобрался в чём проблема.
ZX-Evo rev B, ZX-Evo rev C, ZXNetUsb rev A, ZXNetUsb rev С
http://nedoos.ru/ http://ti6.zxevo.ru/
DimkaM
 
Posts: 1387
Joined: 24 Mar 2010, 13:42
Location: джунгли Амазонки
Group: Registered users

Postby DimkaM » 10 Aug 2011, 12:20

1.А это, аппаратный буфер есть какой нить?
2.Может его как чистить надо при инициализации?
3.И куда CHRV пропал?
ZX-Evo rev B, ZX-Evo rev C, ZXNetUsb rev A, ZXNetUsb rev С
http://nedoos.ru/ http://ti6.zxevo.ru/
DimkaM
 
Posts: 1387
Joined: 24 Mar 2010, 13:42
Location: джунгли Амазонки
Group: Registered users

Postby lvd » 10 Aug 2011, 14:14

ЧРВ пропал на дачу
Многого нет здесь: http://lvd.nedopc.com
Image
User avatar
lvd
 
Posts: 1786
Joined: 07 Apr 2007, 22:28
Group: Registered users

Postby CHRV » 11 Aug 2011, 23:25

DimkaM wrote:1.А это, аппаратный буфер есть какой нить?
2.Может его как чистить надо при инициализации?
3.И куда CHRV пропал?

1. бухер есь на 16байтов
2. Нужно
3. Я до октября буду пропадать а в октябре может воще надолго пропаду ....

ЛВД ответы знает но шланг!
Многое есть здесь: www.nedopc.com
User avatar
CHRV
Желесяка
 
Posts: 966
Joined: 15 Apr 2007, 22:52
Group: Registered users

Postby lvd » 11 Aug 2011, 23:28

Я ответов про сериал не знаю :)
Многого нет здесь: http://lvd.nedopc.com
Image
User avatar
lvd
 
Posts: 1786
Joined: 07 Apr 2007, 22:28
Group: Registered users

Postby DimkaM » 12 Aug 2011, 08:49

1.
CHRV wrote:2. Нужно

Так пойдёт:
Code: Select all
    LD C,LOW REG.LSR
.L1
    LD B,HIGH REG.LSR
    IN B,(C)
    BIT 0,B
    RET Z
    LD B,HIGH REG.DAT
    IN B,(C)
    JR .L1

Или чё по проще есть, а то я доки не понимаю?
----------------------------
2.
CHRV wrote:1. бухер есь на 16байтов

То есть максимум блоками по 16байт можно передавать гарантированно?
Получается я должен отослать 16 байт и ждать взад какой либо байтик подтверждения(соответственно вторая сторона должна его выдать).
Или я чё то не допонимаю в СОМпортах?
Я это к чему, у мну чёйта данные портются. Толи компорт криво припаялся, толи ещё чё %)
Шлю по килобайту разом. Видимо забирать не успеваю. Причём чем выше скорость, тем хуже выходит.
----------------------------
3.
CHRV wrote:1. бухер есь на 16байтов
И передача и прём по 16 байт?
ZX-Evo rev B, ZX-Evo rev C, ZXNetUsb rev A, ZXNetUsb rev С
http://nedoos.ru/ http://ti6.zxevo.ru/
DimkaM
 
Posts: 1387
Joined: 24 Mar 2010, 13:42
Location: джунгли Амазонки
Group: Registered users

Postby lvd » 12 Aug 2011, 10:33

DimkaM wrote:То есть максимум блоками по 16байт можно передавать гарантированно?
Получается я должен отослать 16 байт и ждать взад какой либо байтик подтверждения(соответственно вторая сторона должна его выдать).
Или я чё то не допонимаю в СОМпортах?


Не имею понятия конкретно про реализацию ЧРВ, но вообще обычно бывают битики типа tx buffer empty или full. Ориентируясь на них и надо пихать новые байты. К ожиданию ответа взад не имеет никакого отношения.

DimkaM wrote:Я это к чему, у мну чёйта данные портются. Толи компорт криво припаялся, толи ещё чё %)
Шлю по килобайту разом. Видимо забирать не успеваю. Причём чем выше скорость, тем хуже выходит.

Портятся как? Пропуск байтов или байты херовые принимаются/посылаются?
Первое -- почти наверняка переполнение буферов (ибо afaik аппаратное управление потока через rts/cts у чрв в аврке не реализовано, надо ими управлять руками, зетником).

Для примера, давным-давно я делал приём и передачу байтиков на пуре Z80 (без контроллеров, битодрыжество в портах) на 9600 и с управлением потоком со стороны пц через rts/cts. Ничего не терялось.
Основной принцип -- выключил rts/cts в писюк и ждёшь завершения фонтана (когда он завершится -- хз, потому буфер должен быть).
Многого нет здесь: http://lvd.nedopc.com
Image
User avatar
lvd
 
Posts: 1786
Joined: 07 Apr 2007, 22:28
Group: Registered users

Postby CHRV » 12 Aug 2011, 10:43

Весь мануал читать не обязательно, достаточно пункт 8.11 "Порт RS232 (коммуникационный интерфейс)" кстати вего 4 страницы.
Как че делать - это методом проб и ошибок...
Т.е. я могу конечно написать как нужно, но мне влом. Другой работы щаз хватает.
По ходу есть разные флажки в регистрах порта о том что бухер полон или бухер пуст - их нуно анализировать.
Например при отправке если бухер отправки полон - то безсмысленно чето туда пихать.

Алгоритм примерно седующий:
1. Установка скорости и формата передачи
2. Сброс бухера
3. Суем туда например 16 байт (или меньше как тебе нравится)
4. Ждем пока бухер не опустеет - проверяя соответствующий флаг в регистре
5. Переходим к пункту 3

ПО хорошему еще нуно анализировать/управлять CTS/RTS, но это на следующем этапе отладки :).
Многое есть здесь: www.nedopc.com
User avatar
CHRV
Желесяка
 
Posts: 966
Joined: 15 Apr 2007, 22:52
Group: Registered users

Postby SfS » 12 Aug 2011, 10:54

Ежели я правильно понял - то есть два варианта - с фифо и без фифо.

- Без фифо:
1. установить скорость передачи и режим "фифо отключён" FCR.0 = 0.
2. сунуть данные в регистр DAT.
3. Ждать, пока бит LSR.6=1 (то есть, как этот бит обнулился - данные переданы).
4. Если есть ещё данные на передачу - переход к шагу 2.
5. Конец отправки.

- С фифо:
1. установить скорость передачи и режим "фифо включён" и очистить буфер фифо на передачу (FCR.0 = 1 и FCR.2 = 1)
2. Запихать не более 16 байт в DAT.
3. Ждать, пока бит LSR.5=1 (то есть, как этот бит обнулился - фифо пустое).
4. Если есть ещё данные на передачу - переход к шагу 2.
5. Конец отправки.

Я прав? Али как?)
ZX-Phoenix.
Pentevo ZX-Evoluton Rev. B (зелёная)
SfS
 
Posts: 245
Joined: 24 Jun 2010, 08:07
Group: Registered users

Postby DimkaM » 12 Aug 2011, 13:14

lvd wrote:ибо afaik аппаратное управление потока через rts/cts у чрв в аврке не реализовано, надо ими управлять руками, зетником
rts/cts у мну тоже не реализовано, три проводка всего лишь :confused: , а апгрейдить уже проблематично - ужо всё термоклеем залито.
В общем буду байт подтверждения юзать.
CHRV wrote:4. Если есть ещё данные на передачу - переход к шагу 2.
Мне больше интересно - сообщает ли приёмник передатчику, что он готов принять данные? И как он это делает.
ZX-Evo rev B, ZX-Evo rev C, ZXNetUsb rev A, ZXNetUsb rev С
http://nedoos.ru/ http://ti6.zxevo.ru/
DimkaM
 
Posts: 1387
Joined: 24 Mar 2010, 13:42
Location: джунгли Амазонки
Group: Registered users

PreviousNext

Return to Пентева - софт и железо

Who is online

Users browsing this forum: No registered users and 6 guests

cron