Важная информация

User Tag List

Страница 73 из 120 ПерваяПервая ... 697071727374757677 ... ПоследняяПоследняя
Показано с 721 по 730 из 1199

Тема: Орион-2010. Hard & Soft

  1. #721
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ewgeny7 Посмотреть сообщение
    Тут придется сделать полноценный автомат векторов прерываний, дабы при возникновении прерывания сигнал шел не на проц, а через "контроллер". Ну, собственно, к этому всё и шло. Простое "навешивание на соплях" с прерываниями USART не прокатило.
    Где-то ошибка, всего навсего.
    На живых Z80 в режиме IM2 без всяких контроллеров делалось и работало, если верить Интернетам.
    Хотя конечно, хозяин-барин, твой проект.
    Но прерывания по 50hz один черт нужны - весь софт же не перепишешь... И используется там режим IM2 опять же

    ---------- Post added at 20:48 ---------- Previous post was at 20:42 ----------

    Цитата Сообщение от pvlad Посмотреть сообщение
    Я что-то совсем не понял! Это что, такая надежность механизма прерываний в Z80? Тогда на кой хрен они нужны, если придется гадать куда "улетит" процессор! Нет! Мне кажется мы что-то с железом халтурим. Мне кажется надо не задавливать одну-две линии данных, чтобы получить "FE" (а единицы за счет шины - это чистое радиолюбительство!), а выставлять на шину вектор через какой-то 8-разрядный регистр. Выставлять полностью весь байт (но D0 всегда равен нулю) и не гадать в каком состоянии случайно окажется шина данных. И такой регистр необходимо делать для каждого вектора. Думаю, это то ответственное место в проекте, где радиолюбительствовать не следует - вылезет боком!

    Ну вот, пока писал, ewgeny7 тоже высказал эту же мысль!
    Это не халтура , а штатный режим процессора Z80, используемый наиболее часто в виду того, что наиболее удобен.
    Просто нужно заранее (на этапе проектирования устройства/разработки обработчиков прерывания) знать, что выдает устройство на шину в момент прерывания, и в соответствующее место таблицы ISR положить вектор (адрес) обработчика.

    Если устройство вдруг выдает при прерывании не то, на что расчитана таблица, то код "улетит", да. Или вызовется обработчик соседнего прерывания. А с чего устройство вдруг начнет выдавать не то, на что спроектировано? Только при аппаратной неисправности (в нашем случае - всего компа, ведь всё в одной ПЛИС), а от этого не застрахована никакая схема.
    Последний раз редактировалось Error404; 14.03.2010 в 20:55.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  2. #721
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #722
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    146
    Спасибо Благодарностей получено 
    76
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Где-то ошибка, всего навсего.
    На живых Z80 в режиме IM2 без всяких контроллеров делалось и работало, если верить Интернетам.
    В ПЛИС это посложнее, тут лишнюю микруху на шину не навесишь пару ног шины не дернешь
    В общем, контроллер я сделал, работает.
    Принцип работы такой - есть в Орионе некий регистр, именуемый "Vector".
    При приходе импульса прерывания INT50 в это регистр заносится число FF. Если придет импульс со стороны USART, то запишется соответственно FD. При этом Vector отслеживает комбинацию сигналов INTACK и выдает соответствующий байт на шину данных на время активности этого сигнала.
    Количество источников сигналов прерывания можно увеличивать. А если вдруг представить, что у альтеры есть свободная нога...
    Пока же я занимаюсь удлинением сигнала прерывания с USART, дабы надежней было.
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  4. #723
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ewgeny7 Посмотреть сообщение
    В ПЛИС это посложнее, тут лишнюю микруху на шину не навесишь пару ног шины не дернешь
    В общем, контроллер я сделал, работает.
    Принцип работы такой - есть в Орионе некий регистр, именуемый "Vector".
    При приходе импульса прерывания INT50 в это регистр заносится число FF. Если придет импульс со стороны USART, то запишется соответственно FD. При этом Vector отслеживает комбинацию сигналов INTACK и выдает соответствующий байт на шину данных на время активности этого сигнала.
    Количество источников сигналов прерывания можно увеличивать. А если вдруг представить, что у альтеры есть свободная нога...
    Пока же я занимаюсь удлинением сигнала прерывания с USART, дабы надежней было.
    Т.е. я правильно понял - в режиме IM2 переходит по требуемым векторам таблицы ISR средствами самого Z80?
    Нет необходимости прочитывать и дополнительно программно обрабатывать регистр "Vector"?
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  5. #724
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    146
    Спасибо Благодарностей получено 
    76
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Т.е. я правильно понял - в режиме IM2 переходит по требуемым векторам таблицы ISR средствами самого Z80?
    Нет необходимости прочитывать и дополнительно программно обрабатывать регистр "Vector"?
    Да, как мы и планировали.
    Программа твоя работает, и на чтение и на передачу. Вот длина импульса с USART коротковата, не всегда прерывание срабатывает. Удлиняю извращенно

    ---------- Post added at 23:00 ---------- Previous post was at 22:32 ----------

    В общем, на сегодня хватит, ударно поработали
    Маленькое (1.35Мб) видео на "народе" о работе USART.
    http://narod.ru/disk/18756760000/lv03_PC.avi.html
    Всем пока!
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  6. #725
    Activist
    Регистрация
    18.09.2009
    Адрес
    г.Ногинск, МО
    Сообщений
    246
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ewgeny7 Посмотреть сообщение
    А если вдруг представить, что у альтеры есть свободная нога...
    То можно сделать.... Но мы не будем торопиться. У нас есть более важные дела! "Я правильно сказал, товарищ майор?" (из анекдота про вьетнамцев).
    Если ты чего-то не знаешь, то это не значит, что этого не может быть.

  7. #726
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ewgeny7 Посмотреть сообщение
    Да, как мы и планировали.
    Программа твоя работает, и на чтение и на передачу. Вот длина импульса с USART коротковата, не всегда прерывание срабатывает. Удлиняю извращенно

    ---------- Post added at 23:00 ---------- Previous post was at 22:32 ----------

    В общем, на сегодня хватит, ударно поработали
    Маленькое (1.35Мб) видео на "народе" о работе USART.
    http://narod.ru/disk/18756760000/lv03_PC.avi.html
    Всем пока!
    Посмотрел видео
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  8. #727
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    146
    Спасибо Благодарностей получено 
    76
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Обновление принципиальной схемы.
    Изменения:
    ноги альтеры - 55, 66, 74, 75, 79:
    1. перемещены сигналы RESET, IORQ.
    2. добавлены сигналы A18, RXD, TXD.
    Добавлен модуль RS-232 (нумерация контактов разъема указана).
    Перерисован разъем JTAG до реальной распиновки (вид со стороны деталей).

    Файлы Quartus - http://narod.ru/disk/18766227000/beta_0.54.0.rar.html

    З.Ы. Забыл указать на схеме, что нарисованы другие чипы памяти - K6R4008 (2х512кб) TSOP44.
    Вместо них можно ставить K6R4008 (2х512кб) SOJ36, или K6R1008 (2х128кб) в TSOP32 (если вам хватит и 256кб). Переразводить плату под каждый из этих чипов не нужно, достаточно сделать разводку под TSOP44, а более мелкие по количеству ног чипы паяются посередине контактных площадок.
    Вложения Вложения
    Последний раз редактировалось Ewgeny7; 15.03.2010 в 11:14.
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  9. #728
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    146
    Спасибо Благодарностей получено 
    76
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Добавляю очередную доку, на этот раз - USART и контроллер прерываний Орион2010
    Вложения Вложения
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  10. #729
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ewgeny7 Посмотреть сообщение
    Добавляю очередную доку, на этот раз - USART и контроллер прерываний Орион2010
    Похоже, дело близится к релизу. Может, пора формировать первый пост?

    Будешь ли делать управляемый делитель (или как его правильно назвать) для программного выбора скорости UART? Мне кажется, что 57600 бод для Ориона в некоторых пограничных случаях это быстровато.

    Попробую посчитать: 57600 бод это 7200 байт в секунду. На частоте 5МГц у нас имеется в распоряжении 99840х50 tstates в секунду, т.е. за секунду CPU выполнит порядка 500000 усредненных операций=команд (10 tstates). Как минимум половину надо зарезервировать на накладные расходы, не относящиеся к UART (например в CPM много висит на прерывании Int50, которое должно работать независимо от того пришли данные с UART или нет). Итого в пределе (когда к примеру льем сплошной массив данных) для режима работы по прерыванию на частоте 5МГц имеем размер обработчика прерывания USART 250000/7200=35 команд Z80. Немного, хватит только для обслуги (ei/di/push/pop/reti) и простейшего помещения данных в буфер (откуда некая посторонняя прикладная программа еще должна успеть выгрести между прерываниями - буфер ведь не безразмерный - и переместить в файл).

    А вот 10 Мгц процессора похоже уже хватит и на скорости 57600 бод, но точно проверить можно только экспериментально (зависит от того насколько тормозно отработает принимающая прикладная программа, например, при записи принимаемых данных в файл - в тех операциях кода очень много).
    Последний раз редактировалось Error404; 15.03.2010 в 14:40.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  11. #730
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    146
    Спасибо Благодарностей получено 
    76
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Будешь ли делать управляемый делитель (или как его правильно назвать) для программного выбора скорости UART? Мне кажется, что 57600 бод для Ориона в некоторых пограничных случаях это быстровато.
    Вообще говоря, я хотел (но это большая тайна) сказать, что будет максимум 38400, и баста. Но, поскольку pvlad замахивался аж на 115200, то я указал в самом деле максимум для нашей схемы
    С установкой предделителя есть трудности в реализации в самих модулях USART. Там делитель расчитывается на стадии компиляции. Но, попив чайку выход я вроде как нашел. суть проста как три рубля. 115200/2= 57600, далее 28800, далее 14400.
    Т.е. я могу скомпоновать USART как для скорости 115200, а далее просто делить клок на его входе.
    Итого - получим скорости 57600, 28800, 14400, 7200, 3600, 1800
    Или, как альтернатива - 2400, 4800, 9600, 19200, 38400, 76800.
    Выбирай, какой список тебе больше по душе, такой и сделаю
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

Страница 73 из 120 ПерваяПервая ... 697071727374757677 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 22
    Последнее: 06.10.2008, 14:17
  2. MAGIC-SOFT
    от White_Hunter в разделе Люди
    Ответов: 1
    Последнее: 22.08.2008, 08:56
  3. MAGIC-SOFT
    от White_Hunter в разделе Люди
    Ответов: 2
    Последнее: 21.08.2008, 13:31
  4. soft dt
    от roxx в разделе Софт
    Ответов: 4
    Последнее: 30.01.2008, 18:41

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •