Jump to content
sluhbaryer

Flash-Картридж Dendy На Микроконтроллере

Recommended Posts

Всем доброго времени суток!

Возникла идейка создать девайс типа картриджа игровой приставки Dendy на микроконтроллере.

Суть идеи:

- установить flash-память и USB разъем (чтоб можно было подключать к ПК как обычную флешку);

- отформатировать в FAT32 и забрасывать файлы .nes;

- установить микроконтроллер, подключенный к шине адреса и шине данных приставки;

- микроконтроллер получает запрос на считывание (запись) данных с определенного адреса и выбирает данные из файла .nes;

- программа микроконтроллера будет учитывать особенности мапперов различных моделей (согласно классификации iNES).

У меня возникает несколько вопросов:

1. Стоит ли устанавливать на девайс отдельную RAM-память?

2. Где можно найти описание работы мапперов (некоторые у меня уже есть)?

3. Какие микросхемы памяти лучше использовать (FLASH или EEPROM)?

Заранее благодарен за ответы, советы, подсказки и прочие сообщения!

Share this post


Link to post
Share on other sites

У радио за 90-00 годы были статьи Рюмик. по роботе Денди там была полностью описана робота приставки

Edited by basf1

Share this post


Link to post
Share on other sites

У радио за 90-00 годы были статьи Рюмик. по роботе Денди там была полностью описана робота приставки

По работе приставки написано достаточно, а вот о работе мапперов...

Share this post


Link to post
Share on other sites

Конденсаторы Panasonic. Часть 4. Полимеры – номенклатура

В заключительной, четвертой статье из цикла «Конденсаторы Panasonic» рассматриваются основные достоинства и особенности использования конденсаторов этого японского производителя на основе полимерной технологии. Главной конструктивной особенностью таких конденсаторов является полимерный материал, используемый в качестве проводящего слоя. Полимер обеспечивает конденсаторам высокую электрическую проводимость и пониженное эквивалентное сопротивление (ESR). Номинальная емкость и ESR отличается в данном случае высокой стабильностью во всем рабочем диапазоне температур. А повышенная емкость при низком ESR идеальна для решения задач шумоподавления и ограничения токовых паразитных импульсов в широком частотном диапазоне.

Читать статью

Микроконтроллер не успеет обрабатывать запросы шины, только FPGA.

Share this post


Link to post
Share on other sites

Зачем FPGA? Ставим вместо ПЗУ Static RAM, запрещаем доступ к памяти со стороны приставки читаем в RAM образ с SD карточки, после считывания образа запрещаем доступ к памяти со стороны MK, разрешаем доступ со стороны приставки.

Share this post


Link to post
Share on other sites
                     

STM32G0 - средства противодействия угрозам безопасности

Результатом выполнения требований безопасности всегда является усложнение разрабатываемой системы. Особенно чувствительными эти расходы стали теперь, в процессе массового внедрения IoT. Обладая мощным набором инструментов информационной безопасности, микроконтроллеры STM32G0 производства STMicroelectronics, объединив в себе невысокую цену, энергоэффективность и расширенный арсенал встроенных аппаратных инструментов, способны обеспечить полную безопасность разрабатываемого устройства.

Подробнее...

Микроконтроллер не успеет обрабатывать запросы шины, только FPGA.

А с какой тогда частотой работает шина в приставке? На частоте процессора?

По моим данным (с разных статей и сайтов) частота CPU Dendy 1,79МГц.

Разве нельзя взять МК с гараздо большей частотой?

Зачем FPGA? Ставим вместо ПЗУ Static RAM, запрещаем доступ к памяти со стороны приставки читаем в RAM образ с SD карточки, после считывания образа запрещаем доступ к памяти со стороны MK, разрешаем доступ со стороны приставки.

Я планирую использовать эмулятор различных мапперов на МК (как бы универсальный картридж), т.е. его отключать от памяти мне никак нельзя...

Share this post


Link to post
Share on other sites

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

Удачи.

Share this post


Link to post
Share on other sites

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

Удачи.

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

Реализовать флеш-картридж под маппер №0 (по iNES), без МК могу хоть сейчас. Но ведь игр под такой картридж мало очень. Мне интересно разработать именно маштабируемую модель.

Share this post


Link to post
Share on other sites

вот и разработай сначала под nrom, как только проверишь и увидишь , что это работает, дальше будет двигаться.

инфы навалом тут:

http://wiki.nesdev.com/w/index.php/Nesdev_Wiki

описано всё при всё)))

но думаю сложно тебе будет)))

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

стоит понимать что с таким кариком (во время игры, т.е. когда он вставлен в консоль) возрастет общее потребление тока приставки.

лучше использовать низкоточные чипы и мк. иначе для пользователей будет заморочка - найти мощный бп.

Share this post


Link to post
Share on other sites

вот и разработай сначала под nrom

А почему именно под ром? Можно же попробовать с флеш-памятью замутить или еепром?

Share this post


Link to post
Share on other sites

Вот приблизительный план действий:

1. Проектирование usb флешки на микроконтроллере ATMega8U2 (или другом с поддержкой usb);

2. Тестирование флешки на макетной плате;

3. Подробное изучение структуры файлов .nes;

4. Подробное изучение пары наиболее популярных мапперов;

5. Разработка схемы и пробной прошивки картриджа;

6. Тестирование и дороботка прошивки.

nrom = маппер #0

Понял. Прошу прощения за неосведомленность.

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

Share this post


Link to post
Share on other sites

Подскажите, пожалуйста, может ли шина работать с частотой, отличной от тактовой частоты процессора? Если да, то в какую сторону?

Если рассуждать логически, то в с большей чем тактовая частота процессора шина работать не должна. Это получается около 2МГц. Если выбрать МК с гараздо большей частотой, то он, по идее, успеет считать данные с памяти и вывести на порты вывода.

Поправте, пожалуйста, меня если я не прав.

И еще один вопрос если тактовая частота процессора меньше 2МГц, то зачем к нему подключается кварц больше чем на 20МГц?

Share this post


Link to post
Share on other sites

Как формируется видеосигнал?

PPU формирует «готовый» низкочастотный видеосигнал, который непосредственно

Как я понял из документации, источников в интернете и книги, то процессор управляет видеопроцессором при помощи 8 регистров. У видеопроцессора есть своя 14-битная шина адреса, 8-битная шина данных и шина управления. На картридж выводяться эти шины для подключения ПЗУ с видеоданными.

Ну вот так как-то...

Share this post


Link to post
Share on other sites

Я задал наводящий вопрос, вы не поняли. Уточняю: как из содержимого видеопамяти формируется видеосигнал?

Share this post


Link to post
Share on other sites

Я задал наводящий вопрос

Это Вы на счет чего наводящий?

Edited by sluhbaryer

Share this post


Link to post
Share on other sites

вобщем ) такие девайсы очень не простые устройства. как сказали выше лучше заюзать fpga

в инете есть готовые устройства ценой около 4тыщ рублей))) есть и дороже и дешевле.

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

на ошибках быстрее разберешься что там и как.

потом как документацию ты читал скорее всего на фамиком, а денди и фамик разные вещи, глюков не оберешься.)))

Share this post


Link to post
Share on other sites

Это по поводу применения кварца? Он нужен для формирования частоты строчной развертки? Простите если какие-то глупости скажу...

потом как документацию ты читал скорее всего на фамиком, а денди и фамик разные вещи, глюков не оберешься.)))

Нет именно по Денди.

CPU UMC UM6527

PPU UMC UM6538

Все искал именно под Денди...

Share this post


Link to post
Share on other sites

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

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

вобщем изучай микроконтроллер. реализуй сначала нром) если получиться... дальше пойдешь.

Share this post


Link to post
Share on other sites

он нужен для работы приставки. не только для видео сигнала

Тактовая частота процессора зависит от него?

Share this post


Link to post
Share on other sites

Я задал наводящий вопрос

Это Вы на счет чего наводящий?

Вот насчет этого.

И еще один вопрос если тактовая частота процессора меньше 2МГц, то зачем к нему подключается кварц больше чем на 20МГц?

Share this post


Link to post
Share on other sites

Я задал наводящий вопрос

Это Вы на счет чего наводящий?

Вот насчет этого.

И еще один вопрос если тактовая частота процессора меньше 2МГц, то зачем к нему подключается кварц больше чем на 20МГц?

Для генерации частоты строчной развертки?

Edited by sluhbaryer

Share this post


Link to post
Share on other sites

Есть еще вопросик. Немного не о картридже... Отличаются ли между собой микросхемы UA6527P и UA6527, а также UA6538P и UA6538. Т.е. что означает индекс P?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By Anton Bondarenko
      Всем привет
      Прошу не ругать, впервые подобный вопрос задаю.
      Хочу сделать прибор, который будет посылать сигнал, когда возле прибора будет проходить металлический предмет. 
      — угол отслеживания до 30° а лучше прямая линия, траектория
      — время реакции очень высокое до 100 мс
      — ширина проема в котором нужно сканировать от 10 до 20метров,
      — передача сигнала через вифи
      Может есть готовые решения, или отдельные компоненты.
      Подскажите пжл в каком направлении искать.
      Смотрел датчики движения, но главная проблема — время реакции.
      Спасибо
       
    • By Илья Юрченко
      Добрый день, уважаемые форумчане! Для научной работы хотел собрать данные о том, насколько микроконтроллеры stm32 удовлетворяют нужды и требования программистов и разработчиков продуктов на нем. Если не сложно, ответьте, пожалуйста, важны данные)
      Разумеется "очень средне" неадекватная метрика, но в рамках работы нужна именно средняя удовлетворённость, и определение существует ли необходимость в создании другой серии универсальных плат на базе МК.
    • By Sofia Vin
      Предлагаем проектную работу в Москве:
      Микроконтроллер STM32F103.
        
      Есть встроенный код с использованием функций библиотеки FreeRTOS, код имеет описанный протокол для связи с внешним миром.
        
      Необходимо проводить доработку кода под задачи программиста верхнего уровня и его тестирование в составе оборудования. 
      Работа в лаборатории (м.Университет) и удаленно. 
      Оплата по договоренности.
      Если Вы обладаете опытом схемотехнического проектирования и программирования микроконтроллеров, и Вас заинтересовала данная возможность, ждем Ваши отклики по контактным данным:
      8 (925) 023-60-02   Алексей
      E-mail: nassa@marathon.ru
       
    • By Антон Плюшкин
      В общем есть небольшая тривиальная задача - сделать свитюльку. Контроллер управляет светодиодиками, цвета меняются, людишки довольны.
      Схема проста: Attiny44a -> 2n3904 x3 -> RGB-светодиод.
      Собрал, протестил, всё норм, но!
      Как только в коде я использую функцию задержки - _delay_ms (util/delay.h) - контроллер повисает!
      #define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> int main(void) { // Input/Output Ports initialization // Port A initialization // Function: Bit7=Out Bit6=Out Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRA=(1<<DDA7) | (1<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0); // State: Bit7=0 Bit6=0 Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0); // Port B initialization // Function: Bit3=In Bit2=Out Bit1=In Bit0=In DDRB=(0<<DDB3) | (1<<DDB2) | (0<<DDB1) | (0<<DDB0); // State: Bit3=T Bit2=0 Bit1=T Bit0=T PORTB=(0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Phase correct PWM top=0xFF // OC0A output: Non-Inverted PWM // OC0B output: Non-Inverted PWM // Timer Period: 0,031875 ms // Output Pulse(s): // OC0A Period: 0,031875 ms Width: 0 us // OC0B Period: 0,031875 ms Width: 0 us TCCR0A=(1<<COM0A1) | (0<<COM0A0) | (1<<COM0B1) | (0<<COM0B0) | (0<<WGM01) | (1<<WGM00); TCCR0B=(0<<WGM02) | (0<<CS02) | (0<<CS01) | (1<<CS00); TCNT0=0x00; OCR0A=0x00; OCR0B=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Ph. correct PWM top=0x00FF // OC1A output: Non-Inverted PWM // OC1B output: Disconnected // Noise Canceler: Off // Input Capture on Falling Edge // Timer Period: 0,031875 ms // Output Pulse(s): // OC1A Period: 0,031875 ms Width: 0 us // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=(1<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (1<<WGM10); TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (1<<CS10); TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 0 Interrupt(s) initialization TIMSK0=(0<<OCIE0B) | (0<<OCIE0A) | (0<<TOIE0); // Timer/Counter 1 Interrupt(s) initialization TIMSK1=(0<<ICIE1) | (0<<OCIE1B) | (0<<OCIE1A) | (0<<TOIE1); // External Interrupt(s) initialization // INT0: Off // Interrupt on any change on pins PCINT0-7: Off // Interrupt on any change on pins PCINT8-11: Off MCUCR=(0<<ISC01) | (0<<ISC00); GIMSK=(0<<INT0) | (0<<PCIE1) | (0<<PCIE0); // USI initialization // Mode: Disabled // Clock source: Register & Counter=no clk. // USI Counter Overflow Interrupt: Off USICR=(0<<USISIE) | (0<<USIOIE) | (0<<USIWM1) | (0<<USIWM0) | (0<<USICS1) | (0<<USICS0) | (0<<USICLK) | (0<<USITC); // Analog Comparator initialization // Analog Comparator: Off // The Analog Comparator's positive input is // connected to the AIN0 pin // The Analog Comparator's negative input is // connected to the AIN1 pin ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0); ADCSRB=(0<<ACME); // Digital input buffer on AIN0: On // Digital input buffer on AIN1: On DIDR0=(0<<ADC1D) | (0<<ADC2D); // ADC initialization // ADC disabled ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0); unsigned char VL_OCR0A = 0, VL_OCR0B = 0, VL_OCR1A = 0; OCR0A = 0; OCR0B = 0; OCR1A = 0; while(1) { _delay_ms( 100 ); VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } } Т.е. если указать задержку в начале цикла, то светодиод не светится вообще.
      Если задержку убрать - светодиод немного подсвечивает всеми цветами.
      while(1) { _delay_ms( 100 ); // <--- ЗАДЕРЖКА --- VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } Где я накосячил?
      З.Ы.: Замечаний по поводу оптимизации кода, излишних переменных и п.р. прошу не писать - изощряюсь как могу ибо не пойму почему не работает
    • Guest Денис
      By Guest Денис
      В общем, есть такое чудо китайской техники (фото)
      Что оно может:
      1. Заряжаться через microUSB порт
      2. Кнопка вкл/выкл, она же переключает режимы
      3. 3 режима свечения светодиода (он светит разными цветами)
      Что я хочу сделать:
      1. Пункты 1 и 2 выше
      2. Разнообразить количество режимов, переливание статичный цвет и тд...
      Вопрос: как это сделать? что купить?

      P.S. К сожалению, в гугле не нашел подробной инструкции, а я в электронике я дуб дубом


  • Сообщения

    • При поисках наткнулся на статью https://mysku.ru/blog/aliexpress/69899.html где народ на опыте делает выводы, что размер кристалла примерно 1 мм кв на 10Вт мощности. У меня 4х4 мм, что по таким соображениям даёт 160 Вт, а транзистор на 125 Вт. Поэтому интересно @KRAB конкретно этот тип транзисторов пилили или 1 см кв назвал по каким-то прикидкам? Мне чтобы понять, стоит ли заказывать новые транзисторы в Электронщике или искать другие магазины.
    • Обзор мультиметра Mustool MT8206. Позиционируется как прибор два в одном, т.к. кроме основных функций умеет показывать форму сигнала и частоту. Также есть функция записи показаний в память. Ссылка на мультиметр: https://ban.ggood.vip/NnLW
    • Катушки для IB металлодетекторов. Только они не в курсе, что данная ниша давно и плотно занята.
    • А что с своими не смогли заключить?капец,уже азиаты строят а своим лень...
    • Ну таких ещё поискать...не во всех регионах все переделывают,да может есть хорошие донаты с ,,умными квартирами,, или с полуумными ,но модными фишками , но их поискать.да и автор 40 предложил,не значит так оно и будет , интересно что они вообще делают и чем конкретно занимаются...
    • Я минусы ставлю на ваши слова в обмане,в том что я нечего не понимаю,а сами ровно такие как пишите...я этим не первый год занимаюсь,первая аренда с которой все начал уже более 14 лет еще чичваркин был у руля, у меня нет компаний которые захотели бы напрямую заключать договора,им проще одним переводом за все рассчитаться.тем более когда комуналка растет а аренда стоит ровная, не думаю если вы сдаете ,арендаторы хотябы раз в год не задают вопросы о скидках по аренде ссылаясь на сегодняшнюю ситуацию в работе ну у нас так,поэтому изначально прописывается и инфляционная наценка,а после таких звонков и нехай стоят так,какие наценки, какие комуналки....больше слова не скажу на эту тему,она у вас виртуальная, а я каждый день  этим занимаюсь почти
    • Электроэлемент, Резистор                                   срок     колл-во              цена                    сумма CRE2512-FZ-R001E-2@BOURNS              Нет         1 д.        50 шт              13,3464                 667,32 Вот Вам строчка из моего счёта Элитана, Вы хотите сказать, что BOURNS хуже Ваших резисторов?! Вам правильно на цену указали, здесь цена без НДС, с НДС они 15 руб. будут, и Ваши никак не дороже, уж что что, а подстроечниками СССР не славилось совсем...
  • Покупай!

×
×
  • Create New...