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

User Tag List

Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 23

Тема: Эмулятор дисковода на Atmega с возможностью записи

  1. #1
    Junior
    Регистрация
    07.06.2019
    Адрес
    г. Санкт-Петербург
    Сообщений
    7
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Эмулятор дисковода на Atmega с возможностью записи

    Долго изучал готовые решения в просторах интернета, но ничего подходящего для себя не нашёл. Разработанный мной ZX Spectrum включает в себя контроллер Nemo Ide и BDI, а поскольку у меня всё равно нет дискет для ZX, а основной источник контента - это образы, записанные на HDD, то эмулятор дисковода на картах SD не представляет для меня особого интереса. Ключевым фактором для выбора эмулятора для меня является возможность записи. В итоге пришлось обложиться документацией, измерительными приборами и делать всё самому.

    Безусловно львиная доля информации, а также ряд технических решений были получены из ветки https://zx-pk.ru/threads/26328-plani...a-atmega8.html (огромнейший респект EvgenRU).
    На данный момент моё решение уже готово и я хотел бы поделиться некоторыми результатами, а также узнать у общественности о востребованности такого решения.

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

    Общая концепция:
    В качестве платформы для конечного продукта был выбран чип Atmega88 в корпусе DIP-28, при этом сама разработка велась на Arduino Nano.
    Хранителем информации выбран чип памяти SRAM SPI. Это чипы на 64MB (8 мегабайт) в корпусах SOP-8 с доступом в режиме SPI.
    Это микросхемы LY68L6400SLIT, ESP-PSRAM64H и т.д. Для удобства использования приобрелись переходники SOP-8 - DIP-8.
    Выбор SRAM против Flash обусловлен возможностью обращения к любому адресу памяти и запись без задержек.
    Из недостатков можно ответить необходимость применения внешнего источника питания для сохранения информации (батарейка, АКБ и т.д.) и питание 3.3v, что требует согласования уровней.

    Работающая модель на Arduino Nano выглядит следующим образом:
    Нажмите на изображение для увеличения. 

Название:	IMG_20240112_110625_945.jpg 
Просмотров:	162 
Размер:	86.4 Кб 
ID:	80092

  2. Эти 3 пользователя(ей) поблагодарили rs_alexey за это полезное сообщение:

    ALS (12.01.2024), creator (12.01.2024), Rio444 (12.01.2024)

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

  4. #2
    Master Аватар для Rio444
    Регистрация
    23.11.2015
    Адрес
    г. Ростов-на-Дону
    Сообщений
    523
    Спасибо Благодарностей отдано 
    164
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    102 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    rs_alexey, интересно.
    А как образы записываются?
    На сколько времени хватает батарейки?
    Почему карты SD не представляют интереса? Интерфейс тоже достаточно простой, последовательный. Зато для сохранения данных не нужна батарейка.

  5. #3
    Junior
    Регистрация
    07.06.2019
    Адрес
    г. Санкт-Петербург
    Сообщений
    7
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Rio444 Посмотреть сообщение
    rs_alexey, интересно.
    А как образы записываются?
    На сколько времени хватает батарейки?
    Почему карты SD не представляют интереса? Интерфейс тоже достаточно простой, последовательный. Зато для сохранения данных не нужна батарейка.
    На микросхему памяти вмещается 8 дискет. Переключение происходит по кнопке.
    Для отображения текущего образа контроллер Atmega периодически передает номер выбранного образа и номер текущего трека по протоколу SPI.
    Эти данные считывает другой контроллер (Attiny2313) и выводит эти данные на семисегментный индикатор.
    Работаем как с обычными неформатированными дискетами. Т.е. форматируем их, а потом записываем на них что-либо. Я это делаю путём распаковки образа с HDD на FDD через WildCopier.

    Батарейка используется CR2032. Собрал я это дело около месяца назад. Пока ни разу не подвела.
    По даташиту ток потребления у памяти 200 микроампер. Этого должно хватить на года.

    При работе к SD запись и чтение необходимо производить блоками по 4 килобайта (и больше), а размер сектора на дискете 256 байт.
    Также при записи на SD контроллеру необходимо выделять время на завершение записи. Учитывая маленькое количество памяти в контроллере Atmega, то буферизацию сделать тоже не получается.
    Таким образом мы упираемся в проблему синхронизации между поступающими данными и данными для записи. При записи контроллер Atmega работает на полную катушку, простоя практически нет.
    Вся внутренняя программа написана на асемблере с жёсткой оптимизацией. В дебагере высчитывался каждый процессорный цикл.

    Нажмите на изображение для увеличения. 

Название:	IMG_20240112_135834_625.jpg 
Просмотров:	50 
Размер:	99.5 Кб 
ID:	80093Нажмите на изображение для увеличения. 

Название:	IMG_20240112_140223_824.jpg 
Просмотров:	44 
Размер:	68.4 Кб 
ID:	80094

  6. #4
    Veteran Аватар для Serg6845
    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    1,002
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    250
    Поблагодарили
    230 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от rs_alexey Посмотреть сообщение

    Батарейка используется CR2032. Собрал я это дело около месяца назад. Пока ни разу не подвела.
    По даташиту ток потребления у памяти 200 микроампер. Этого должно хватить на года.
    а посчитать?
    гуглим по CR2032 capacity - говорят 210мАч. делим на 200мкА и на 24ч - получаем чуть меньше 44 суток...

    Зверинецъ

    Специалист (был когда-то "совсем стандарт") - 1988-2023
    Ленинград1 +256К +AY+BDI+VGA выход +Ethernet (Speccyboot) +Xmodem (115200)+divmmc
    Ленинград2 + CF карта
    Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
    БК0010-01 стоковый
    [свернуть]

  7. #5
    Master Аватар для Rio444
    Регистрация
    23.11.2015
    Адрес
    г. Ростов-на-Дону
    Сообщений
    523
    Спасибо Благодарностей отдано 
    164
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    102 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от rs_alexey Посмотреть сообщение
    При работе к SD запись и чтение необходимо производить блоками по 4 килобайта (и больше), а размер сектора на дискете 256 байт.
    Везде пишут, что можно писать на SD по 512 байт.

    Цитата Сообщение от rs_alexey Посмотреть сообщение
    Учитывая маленькое количество памяти в контроллере Atmega, то буферизацию сделать тоже не получается.
    Если ограничиваться только атмегой, то да, будут сложности.

    - - - Добавлено - - -

    Цитата Сообщение от Serg6845 Посмотреть сообщение
    гуглим по CR2032 capacity - говорят 210мАч. делим на 200мкА и на 24ч - получаем чуть меньше 44 суток...
    У меня тоже что-то близкое вышло.
    Но можно например 2 батарейки АА.
    У алкалиновых ёмкость раз в 5-10 больше.

  8. #6
    Veteran Аватар для Serg6845
    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    1,002
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    250
    Поблагодарили
    230 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Rio444 Посмотреть сообщение
    У меня тоже что-то близкое вышло.
    Но можно например 2 батарейки АА.
    У алкалиновых ёмкость раз в 5-10 больше.
    а можно рядом поставить ту же SD карту с тем же SPI интерфейсом и в свободное время переписывать новые данные из SRAM на нее. аппаратно - одна нога атмеги. софт да, придется перепахивать.

    Зверинецъ

    Специалист (был когда-то "совсем стандарт") - 1988-2023
    Ленинград1 +256К +AY+BDI+VGA выход +Ethernet (Speccyboot) +Xmodem (115200)+divmmc
    Ленинград2 + CF карта
    Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
    БК0010-01 стоковый
    [свернуть]

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

    По умолчанию

    Serg6845, write trough/write back кеш?

  10. #8
    Activist Аватар для ALS
    Регистрация
    14.09.2012
    Адрес
    г.Севастополь
    Сообщений
    427
    Спасибо Благодарностей отдано 
    233
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    47 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от rs_alexey Посмотреть сообщение
    Батарейка используется CR2032
    Я бы поставил литиевый аккумулятор со схемой зарядки.

  11. #9
    Junior
    Регистрация
    07.06.2019
    Адрес
    г. Санкт-Петербург
    Сообщений
    7
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ALS Посмотреть сообщение
    Я бы поставил литиевый аккумулятор со схемой зарядки.
    Я следующим этапом и планировал так сделать. Что-то типа такого: https://www.chipdip.ru/product/tp405...ith-protection
    У меня на плате уже была батарейка для подпитки памяти, чтобы сохранять содержимое рамдиска. Грех было к ней не подпаяться. Ну через месяцок я скажу что с зарядом батарейки.

  12. #10
    Veteran Аватар для Serg6845
    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    1,002
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    250
    Поблагодарили
    230 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Serg6845, write trough/write back кеш?
    типа того...

    - - - Добавлено - - -

    Цитата Сообщение от ALS Посмотреть сообщение
    Я бы поставил литиевый аккумулятор со схемой зарядки.
    не нравится мне сама идея с ОЗУ с батарейкой. получается дисковод с неизвлекаемой дискетой (даже если их там 8). перенести что-то на другой комп - только дисковод в сборе перетыкать...

    Зверинецъ

    Специалист (был когда-то "совсем стандарт") - 1988-2023
    Ленинград1 +256К +AY+BDI+VGA выход +Ethernet (Speccyboot) +Xmodem (115200)+divmmc
    Ленинград2 + CF карта
    Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
    БК0010-01 стоковый
    [свернуть]

Страница 1 из 3 123 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Эмулятор AY-8910 на ATMega
    от Ramiros в разделе Звук
    Ответов: 471
    Последнее: 19.08.2022, 03:51
  2. Ограничитель тока записи 8 дюймового дисковода
    от vegapiratradio в разделе Разработка электроники
    Ответов: 25
    Последнее: 11.12.2021, 21:27
  3. Эмулятор с возможностью загрузки через линейный вход компьютера.
    от san010101 в разделе Эмуляторы отечественных компьютеров
    Ответов: 11
    Последнее: 06.12.2017, 19:15
  4. Ответов: 1
    Последнее: 30.09.2017, 07:44

Ваши права

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