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

User Tag List

Показано с 1 по 8 из 8

Тема: Практический вопрос по программированию ВВ55А

  1. #1
    Guru
    Регистрация
    15.09.2009
    Адрес
    SPb
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    230
    Спасибо Благодарностей получено 
    262
    Поблагодарили
    190 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Практический вопрос по программированию ВВ55А

    Задача: использовать порты А и B для двунаправленной передачи данных с хитрым управлением через порт С. Хитрым потому, что стандартные режимы 1 и 2 ВВ55а не подходят.

    Записываю в УС (далее везде режим 0): порты A и B - вывод, старшая половина C - вывод, младшая - ввод.
    Вывожу что-то в A и B.
    Записываю в C значение 0xFF.
    Дальше мне нужно поменять направление портов A и B, для этого записываю в УС: порты A и B - ввод, старшая половина C - вывод, младшая - ввод.
    При этом на выводах микросхемы вижу что младший бит старшей половины порта С стал в ноль.
    Так и должно быть?
    Можно ли этого как-либо избежать?

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

  3. #2
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,847
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    229
    Поблагодарили
    167 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Возможно, что при переключении режима, порты, которые включаются (или остаются) на вывод, устанавливаются в значения, не противоречащие сигналам на ножках микросхемы. Т.е. как будто бы на короткое время включаются на ввод. Проверь, какие значения оказываются в порту С в режиме ввода.

    ---------- Post added at 13:12 ---------- Previous post was at 13:03 ----------

    Для проверки моего предположения можно поставить на выходе два инвертора и сделать обратную связь через 1к резистор. Получится простейший триггер, вход которого будет "притянут" к нужному нам значению.

  4. #3
    Guru
    Регистрация
    15.09.2009
    Адрес
    SPb
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    230
    Спасибо Благодарностей получено 
    262
    Поблагодарили
    190 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    b2m, Ножки в воздухе.
    Нашел где-то в инете что при установке режима портов все выводные разряды сбрасываются в 0.
    :-(
    Придётся защелку ставить, а так не хотелось...

  5. #4
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,847
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    229
    Поблагодарили
    167 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от dk_spb Посмотреть сообщение
    Ножки в воздухе
    А если всё-таки к еденице притянуть?

    ---------- Post added at 16:59 ---------- Previous post was at 16:53 ----------

    Цитата Сообщение от dk_spb Посмотреть сообщение
    Нашел где-то в инете что при установке режима портов все выводные разряды сбрасываются в 0
    Хотя, вполне возможно.

    Просто при реализации эмуляции различных компьютеров часто возникал вопрос, какие значения должны иметь порты после сброса. И не всегда это должны были быть нули. Но при сбросе все порты устанавливаются на ввод, и если по схеме порт чем-то управляет, например выбирает карту памяти, то что конкретно выберется, зависит от схемы. Однако установка режима, это не сброс, и обнуление портов вполне возможно.

  6. #5
    Master
    Регистрация
    22.07.2007
    Адрес
    St.Petersburg
    Сообщений
    593
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    dk_spb, поставь линейку 74LS573 и не мучайся.

  7. #6
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,114
    Спасибо Благодарностей отдано 
    791
    Спасибо Благодарностей получено 
    654
    Поблагодарили
    401 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Код:
           mode_clear <= '0';
            if (I_CS_L = '0') and (I_WR_L = '0') then
              case I_ADDR is
                when "00" => r_porta   <= I_DATA;
                when "01" => r_portb   <= I_DATA;
                when "10" => r_portc   <= I_DATA;
    
                when "11" => if (I_DATA(7) = '0') then -- set/clr
                               r_portc <= r_portc_masked or r_portc_setclr;
                             else
                               --svo: uncommented
                               mode_clear <= '1';
                               r_porta    <= x"00";
                               r_portb    <= x"00"; -- clear port b input reg
                               r_portc    <= x"00"; -- clear control sigs
                               r_control  <= I_DATA; -- load new mode
                             end if;
                when others => null;
              end case;
            end if;
    Вот MikeJ тоже колебался, а мне пришлось сброс портов при изменении режима раскомментировать. Иначе чего-то там не работало: судя по логам, в musician.rom на Векторе скакала картинка на экране.
    Больше игр нет

  8. #7
    Guru
    Регистрация
    15.09.2009
    Адрес
    SPb
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    230
    Спасибо Благодарностей получено 
    262
    Поблагодарили
    190 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Угу. Бяка там со сбросом....

  9. #8
    Guru
    Регистрация
    26.02.2010
    Адрес
    Запорожье
    Сообщений
    2,171
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    часто возникал вопрос, какие значения должны иметь порты после сброса. И не всегда это должны были быть нули. Но при сбросе все порты устанавливаются на ввод
    Насколько мне помнится на Микроше порты А и В после сброса всегда имели не нулевое значение...

    Проще включить да посмотреть

    ---------- Post added at 21:16 ---------- Previous post was at 20:42 ----------

    Вобщем, с ПЗУ "МИКРОША" порты обнулены.

    с ПЗУ "МИКРОША-86РК" при включении порты А нулевой, порт В имеет произвольные значения, после "сброса" порт А обнуляется, порт В сохраняет последнее записанное значение.
    .

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

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

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

Похожие темы

  1. много инфы по приставочному железу, программированию и т.д.
    от ng_dead в разделе Зарубежные компьютеры
    Ответов: 0
    Последнее: 17.01.2008, 16:57
  2. Наиболее полная дока по программированию GS
    от Evgeny Muchkin в разделе Программирование
    Ответов: 1
    Последнее: 28.03.2007, 14:41
  3. Общедоступная wiki по программированию на Спектруме
    от valker в разделе Программирование
    Ответов: 11
    Последнее: 01.03.2007, 09:23

Ваши права

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