USB slave на z80

Микропроцессоры и микроконтроллеры от фирмы Zilog, а также компьютеры на них построенные

Moderator: Shaos

SergNR
Writer
Posts: 12
Joined: 22 Oct 2016 02:36
Location: Moscow, Russia

USB slave на z80

Post by SergNR »

Решил поделиться своими наработками, актуальность которых утрачена минимум как лет на 10-15, но вдруг кому пригодится.
Привожу схему реализации ведомого USB интерфейса для любой системы на базе z80. Что это даёт:
возможность разработки и отладки bios без перепрошивки ППЗУ и использования эмуляторов. Прямой доступ к памяти на лету. Возможность вывода данных в терминал
PC из программного кода z80.
В схеме есть несколько некрасивых решений, обусловленных экономией на корпусах в моём проекте. Так что за ряд монтажных ИЛИ на диодах и пару емкостей прошу ногами не пинать - знаю )
Программная часть со стороны PC или Mac максимально проста: Используется стандартный VCP-драйвер виртуального порта. (из под linux будет /dev/ttyUSBn), который предварительно необходимо проинициализировать с параметрами 8N1, аппаратное управление потоком.
Далее, перед началом операций чтения или записи данных в память системы на z80, посылаем в данный порт четыре байта 0xFE для синхронизации (либо необходимо подать !RESET).
Затем следует 5-ти байтовый цикл чтения или записи данных в произвольную область памяти:
1-ый байт 0xFF - начало потока данных (разрешает последующий приём)
2-ой байт lADDR - младший байт адреса памяти
3-ий байт hADDR - старший байт адреса памяти
4-ий байт 0xFF/0x0F - разрешение / запрет записи в память
5-ый байт 0xNN - данные для записи (если bit7 предыдущего байта = 0, то данный байт игнорируется и производится только чтение содержимого из указанного адреса)

В ответ на каждый посланный байт данных в консоль будет приходить содержимое данного адреса RAM до его записи.
Разумеется в адресном пространстве ППЗУ в этом случае должна быть подключена SRAM

P.S. Можно конечно было всё реализовать на микроконтроллере, но само его наличие в схеме практически лишает смысла в прикручивании всего этого к системе на z80 :)
You do not have the required permissions to view the files attached to this post.
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: USB slave на z80

Post by Lavr »

SergNR wrote:Можно конечно было всё реализовать на микроконтроллере, но само его наличие в схеме практически лишает смысла в прикручивании всего этого к системе на z80 :)
Я немного не понял - а вот это разве не микроконтроллер в схеме?
z80usb.gif
You do not have the required permissions to view the files attached to this post.
iLavr
SergNR
Writer
Posts: 12
Joined: 22 Oct 2016 02:36
Location: Moscow, Russia

Re: USB slave на z80

Post by SergNR »

Lavr wrote: Я немного не понял - а вот это разве не микроконтроллер в схеме?
Ну как бы в определенном смысле конечно это он. Весь вопрос в терминологии. В данном случае подразумевается устройство способное функционировать в соответствии с заданным пользователем набором команд, что определенно не относится к аппаратному преобразователю интерфейса usb<>parallel FIFO p.s. во флеш там записывается device id. Опционально.
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: USB slave на z80

Post by Lavr »

SergNR wrote:
Lavr wrote:Я немного не понял - а вот это разве не микроконтроллер в схеме?
Ну как бы в определенном смысле конечно это он. Весь вопрос в терминологии.
У нас тут где-то на форуме Tronix показвал USB slave на PIC чисто программный, т.е. PIC не имел апаратного интерфейса usb.
Так что, когда я увидел заголовок USB slave на z80, то ожидал увидеть нечто похожее... :wink:
Ну да ладно - это мои проблемы...
iLavr
User avatar
Shaos
Admin
Posts: 24014
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: USB slave на z80

Post by Shaos »

FTDI-чип микроконтроллером не является, т.к. не подразумевает программирования пользователем - он вещь в себе
Я тут за главного - если что шлите мыло на me собака shaos точка net
SergNR
Writer
Posts: 12
Joined: 22 Oct 2016 02:36
Location: Moscow, Russia

Re: USB slave на z80

Post by SergNR »

Lavr wrote:Так что, когда я увидел заголовок USB slave на z80, то ожидал увидеть нечто похожее... :wink:
Ну да ладно - это мои проблемы...
Боюсь это было бы слишком сурово и даже если z80 ооочень сильно разогнать, программно он не осилит протокол. Разве что хорошенько обвязать всё рассыпухой, чтобы все параллельно-последовательные преобразования выполнялись аппаратно.
User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Re: USB slave на z80

Post by fifan »

FT245BL - это преобразователь RS232 интерфейса.
User avatar
Shaos
Admin
Posts: 24014
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: USB slave на z80

Post by Shaos »

fifan wrote:FT245BL - это преобразователь RS232 интерфейса.
USB-to-Serial вроде как, на компе оно подцепляется как COM-порт, но RS232 интерфейсом по сути своей НЕ является...
Я тут за главного - если что шлите мыло на me собака shaos точка net
DimkaM
Maniac
Posts: 261
Joined: 22 Jun 2005 04:35
Location: МО Россия

Re: USB slave на z80

Post by DimkaM »

USB-slave подразумевает нечто большее, чем ком-порт поверх usb.
Опять же порты ком-порта давно придуманы(Кондратьевым) и было бы логично использовать их.

В целом, ввиду вымирания ком-портов на ПЦ, девайс довольно полезный.
Я активно использую на спектруме дебаггер NoIce. Когда то(до появления у меня более быстрого интерфейса) перекидывал файлы на спектрум, что бы не дергать постоянно сд-карту при отладке.
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: USB slave на z80

Post by Lavr »

Shaos wrote:FTDI-чип микроконтроллером не является, т.к. не подразумевает программирования пользователем - он вещь в себе
То есть, ты считаешь, что внутри "в себе" он всё делает чисто аппаратно?
Без какого-либо микропроцессорного ядра?
iLavr
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: USB slave на z80

Post by Lavr »

SergNR wrote:
Lavr wrote:Так что, когда я увидел заголовок USB slave на z80, то ожидал увидеть нечто похожее... :wink:
Боюсь это было бы слишком сурово и даже если z80 ооочень сильно разогнать, программно он не осилит протокол. Разве что хорошенько обвязать всё рассыпухой, чтобы все параллельно-последовательные преобразования выполнялись аппаратно.
Ну вот про что-то такое я и подумал: z80Н и аппаратные "костылики" вокруг него... 8)
iLavr
User avatar
Shaos
Admin
Posts: 24014
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: USB slave на z80

Post by Shaos »

Lavr wrote:
Shaos wrote:FTDI-чип микроконтроллером не является, т.к. не подразумевает программирования пользователем - он вещь в себе
То есть, ты считаешь, что внутри "в себе" он всё делает чисто аппаратно?
Без какого-либо микропроцессорного ядра?
"Есть ли жизнь на Марсе, нету ли жизни на Марсе - это науке неизвестно" (c) :roll:
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24014
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: USB slave на z80

Post by Shaos »

DimkaM wrote:USB-slave подразумевает нечто большее, чем ком-порт поверх usb.
Ну FT245 вроде чуть более интеллектуальный чип чем FT232 - вон даже кастомный DeviceID можно во внешней памяти подцепить...
Я тут за главного - если что шлите мыло на me собака shaos точка net
DimkaM
Maniac
Posts: 261
Joined: 22 Jun 2005 04:35
Location: МО Россия

Re: USB slave на z80

Post by DimkaM »

Хотя я не внимательно прочитал первый пост, тут не компорт со стороны z80. Нечто типа дма чтоли
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: USB slave на z80

Post by Lavr »

Shaos wrote:"Есть ли жизнь на Марсе, нету ли жизни на Марсе - это науке неизвестно" (c) :roll:
Ну а сам ты брякнул в лобовую, что на Марсе жизни нет... :ebiggrin:

А я вот где-то читал, что преобразователи USB интерфейса делаются на одном из распространенных
процессорных ядер с обвязкой, как СИМ-ки примерно...
Не скажу именно за этот FT245BL, но факт такой имеет место быть.
iLavr