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

User Tag List

Страница 4 из 6 ПерваяПервая 123456 ПоследняяПоследняя
Показано с 31 по 40 из 52

Тема: Эмуляция ПЗУ с помощью МК

  1. #31
    Guru Аватар для CodeMaster
    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,226
    Спасибо Благодарностей отдано 
    140
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    182 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от solegstar Посмотреть сообщение
    W27C512 от Winbond...
    Я предлагал уже W29EE512, её проще найти, но тут религиозные ограничения на использование ПЗУ.
    "Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.

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

  3. #32
    Activist
    Регистрация
    19.04.2005
    Адрес
    SPb
    Сообщений
    313
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я пока поглядываю сюда: http://www.z80.info/z80ins.txt
    Но тут разбито на машинные циклы по 4 такта.
    Что можно почитать, чтобы узнать как устроен внутри машинный цикл Z80?

    Лелею надежду, что на чтение из ПЗУ есть больше 1 такта. Чтобы успеть успеть выставить адрес, переключить порт данных из 3го состояния и тп.

    Как читается ПЗУ? по фронту, по спаду, или как еще?

  4. #33
    Master
    Регистрация
    27.03.2005
    Адрес
    CПб
    Сообщений
    711
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от research Посмотреть сообщение
    Что можно почитать, чтобы узнать как устроен внутри машинный цикл Z80?
    Z80 User manual: http://www.zilog.com/docs/z80/um0080.pdf Стр. 12-14.

  5. #34
    Activist
    Регистрация
    19.04.2005
    Адрес
    SPb
    Сообщений
    313
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Blade, спасибо, очень ценная инфа!

    Как я понимаю, при чтении опкода процессор схватывает данные по фронту третьего такта. И у нас по факту чуть меньше 2х тактов Z80, или, допустим, 10 тактов AVR.
    Так понимаю, что аналогичная картина при чтении и записи из/в память.
    Жалко спека нет, тянет проверить что и как Хоть на 16К "ПЗУ"

  6. #35
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,404
    Спасибо Благодарностей отдано 
    318
    Спасибо Благодарностей получено 
    596
    Поблагодарили
    442 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А что мешает делать захват шин и грузить в ОЗУ что надо? Ну и уже обсуждалось, правда немного с другими отклонениями.

  7. #36
    Guru Аватар для CodeMaster
    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,226
    Спасибо Благодарностей отдано 
    140
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    182 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    А что мешает делать захват шин и грузить в ОЗУ что надо?
    Уже предлагал

    Цитата Сообщение от research Посмотреть сообщение
    для этого надо а) теневую раму иметь, б) потребуются больше сигналов, чем те, что идут на ПЗУ. На вскидку, получается очередная прослойка между Z80 и платой пентагона.
    Если обобщить, то он хочет ПЗУ, которое можно запрограмировать AVR910 или PICkit3
    "Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.

  8. #37
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,404
    Спасибо Благодарностей отдано 
    318
    Спасибо Благодарностей получено 
    596
    Поблагодарили
    442 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если Z80 пашет на 3.5МГц, то я думаю, что 16МГц АТМега128 успеет. По идее, никаких прерываний не надо, все в цикле и код будет что-то типа:
    Код:
           .def Const00 = r16
           .def ConstFF = r17
           .def DataReg = r18
    
           * * *
    
           ldi  Const00,#$00
           ldi  ConstFF,#$FF
    Loop:  sbic PIND,0        ; CS
           rjmp Loop          ;
           in   ZL,PINB       ; ADL
           in   ZH,PINC       ; ADH
           elpm DataReg,Z     ;
           out  PORTA,DataReg ;
    Wait0: sbic PIND,1        ; OE
           rjmp Wait0         ;
           out  DDRA,ConstFF  ;
    Wait1: sbis PIND,1        ;
           rjmp Wait1         ;
           out  DDRA,Const00  ;
           rjmp Loop          ;
    В примере все условно, но думаю и так понятно. Единственное условие для нормальной работы правильное формирование сигнала CS, с обязательной привязкой к MREQ. Полярность при этом пофигу - она нормально корректируется программно (ждать 0 или 1 - не принципиально же?). Возможно, что цикл можно оптимизировать, но есть несколько условий, например, адрес действителен только после активации CS (для этого и нужна привязка к MREQ, к тому же, этот сигнал является самым раним сигналом начала транзакции). Думаю, идея понятна?

  9. #38
    Activist
    Регистрация
    19.04.2005
    Адрес
    SPb
    Сообщений
    313
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ну, я бы кусок кода немого по иному реализовал, но общий смысл такой же.
    надо еще успеть выход данных из 3го состояния вывести, а потом снова загнать.

  10. #39
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,404
    Спасибо Благодарностей отдано 
    318
    Спасибо Благодарностей получено 
    596
    Поблагодарили
    442 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от research Посмотреть сообщение
    ну, я бы кусок кода немого по иному реализовал, но общий смысл такой же. надо еще успеть выход данных из 3го состояния вывести, а потом снова загнать.
    В примере присутствуют команды управления направлением порта данных.

  11. #40
    Activist
    Регистрация
    19.04.2005
    Адрес
    SPb
    Сообщений
    313
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    выше озвучивал мысль,что можно не опрашивать постоянно ногу выбора кристалла ПЗУ, а повесить изменение ноги на прерывание. Хотя... по потреблению и т.п. ,думаю, что мы ничего не отыграем, но в случае довеска на МК еще каких-нибудь функций, типа чтения с SD, то могли бы.

    вощем, по случаю, заажу МК, или поищу из того, что доступно. На руках только DSPIC33/128К.
    В них хранение данных организовано через пень, с потерей 33% либо 50%. Но греют душу 40mips, а цена такая же, как у AVR - 6-7 баксов. Правда, надо смотреть как дело с толерантностью по 5 вольтам...
    Последний раз редактировалось research; 19.02.2012 в 03:32.

Страница 4 из 6 ПерваяПервая 123456 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Программирование флэшек с помощью CD-ROM
    от _Ratibor_ в разделе Память
    Ответов: 5
    Последнее: 30.03.2011, 21:08

Ваши права

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