check in
Completed

UKNZ_kakave_mouse_rtc_ide

STDUKNZ_kakave_mouse_rtc_ide

tag

183
0
0
0
Mode:Full

License

GPL 3.0

Creation time:2025-01-10 14:22:53Update time:2025-02-06 07:42:30

Description

Проект платы эмулятора контроллера дисковода, контроллера жесткого диска IDE, мыши и часов реального времени для слота расширения ПП компьютера УКНЦ.

Развитие проекта kakave - проект эмулятора контроллера 4-х дисководов. Программное обеспечение (STM32) полностью повторяет оригинальное, изменена только электронная схема.

Продолжение проекта uknz_kakave_mouse. Полностью переработана печатная плата, вместо atmega32 применена atmega324. Переработано программное обеспечение.

Контроллер HDD IDE взят отсюда, схема перенесена в ПЛИС. ПЗУ загрузчика эмулируется Атмегой.

Софт для Атмеги изначально разрабатывался мной с помощью участников чата УКНЦ, затем был доработан Денисом, а окончательно довел его "до ума" Tadeusz Klimaszewski. Он так же разработал софт для поддержки RTC в RT-11 и обещает продолжить работу над проектом, сделав возможным подключать к контроллеру еще и PS/2 клавиатуру.

 

Важные пояснения к проекту.

 

Вся электронная схема реализована на ПЛИС EPM7128STC100. STM32 занимается эмуляцией дисководов гибких дисков и их контроллера. Образы дискет находятся на uSD карте. На ATMEGA324PA реализован контроллер мыши PS/2, часов реального времени (RTC) на микросхеме DS3231 и загрузчик с жесткого диска.

На плате имеется перемычка с надписью J3 HDD PWR - через нее подается питание 5V на 20 контакт разъема IDE-40 или 41,42 контакты IDE-44. Это полезно, если вы используете в качестве IDE устройства Disc On Module, чаще всего там предусмотрено питание по этим контактам. Если вы будете использовать для подключения шлейф, то скорее всего 20-й контакт будет в качестве ключа.

Перемычка J2 BOOT для стабильной работы устройства должна быть замкнута. Сюда же выведена цепь NRST микроконтроллера STM32.

Перемычка J4 PROG используется при прошивке микроконтроллеров ATMEGA и STM32. Она переводит контакты ПЛИС, соединенные с портами микроконтроллеров в режим приема информации, чтобы не мешать процессу программирования.

Перемычка J5 5V предназначена для подачи внешнего питания на плату контроллера при программировании ПЛИС.

Для программирования ATMEGA324PA в среде Arduino IDE необходимо установитить ядро MightyCore и необходимые библиотеки: YetAnotherArduinoPcIntLibrary-master, microDS3231 и ps2.

При использовании программатора usbasp, настоятельно рекомендуется обновить его прошивку!

В архиве RTC.ZIP находится софт для работы с часами реального времени в ОС RT-11.

 

 

 

 

Процедура обновления прошивки Atmega.

1. Необходимо уточнить тип микроконтроллера Atmega. Могут использоваться 164P, 164РА, 324P, 324PA или даже другие совместимые.

2. Необходимо уточнить частоту кварца X1. На момент написания инструкции рекомендован кварц частотой 14.7456МГц. Это должно быть отражено в прошивке.

3. Программирование микроконтроллера осуществляется внутрисхемно, через разъем J1 ISP любым совместимым внутрисхемным программатором. Если вы используете готовую прошивку, то более ничего не понадобится, надо только выбрать прошивку под свой тип микроконтроллера и тактовую частоту.

Если вы компилируете прошивку из исходника, потребуется Arduino IDE. Необходимо будет установить ядро MightyCore, библиотеки YetAnotherArduinoPcIntLibrary-master, microDS3231, ps2, выбрать тип и модификацию микроконтроллера, частоту кварца и другие параметры.

 

 

Кроме того, в зависимости от модификации платы контроллера, может потребоваться изменить в тексте программы определения. Для описанной модификации такие параметры:

#define KAKAVE_IDE    1        // change to 0 for for "mouse/RTC version"
#define DEBUG_KKV     0       // czange to 0 for switching off debug information
#define IDE_withRTC     1       // change to 0 for Kakave+ IDE on ATmega32 without PCINT

После компиляции, если вы используете совместимый с Arduino IDE программатор, можно сразу прошить микроконтроллер из Arduino. Если используется несовместимый тип программатора, компилируйте через пункт меню "Экспорт бинарного файла" и прошивайте полученный файл при помощи своего программатора.

4. В описанной здесь модификации платы контроллера на контакт 5 (reset) разъема ISP был заведён сигнал INIT с шины МПИ. Это будет мешать переводу микроконтроллера в режим программирования. Практика эксплуатации устройства показала, что без INIT Atmega отлично работает. Поэтому для обновления прошивки дорожку нужно перерезать (место отмечено стрелкой). Восстанавливать её потом не обязательно. Так же при программировании рекомендуется замкнуть перемычку J4 PROG, а после завершения процесса обязательно ее удалить.

 

 

5. При обновлении прошивки модифицировать фьюзы, как правило, не требуется. Если вы прошиваете "чистый" микроконтроллер, фьюзы придется прошить. В Arduino IDE это делается несколько непрозрачно, путем настройки меню "Инструменты", а непосредственно прошивка фьюзов выполняется пунктом "Записать загрузчик".

В зависимости от типа микроконтроллера, конкретные параметры установки фьюзов могут меняться. В случае сомнения, можно воспользоваться калькулятором фьюзов. Для Atmega324PA фьюзы выставляются следующим образом:

 

 

Следует обязательно учитывать, что в разных средах программирования фьюзы могут быть прямыми или инверсными. Для исключения путаницы очень рекомендую использовать для прошивки avrdude-prog. Или, еще лучше, шейте прямо из Arduino IDE.

 На момент написания инструкции новейшая прошивка v3.6 - устранена проблема зависания 3D Arena при работе с мышкой.

Design Drawing

The preview image was not generated, please save it again in the editor.

BOM

Bom empty

Attachments

OrderFile nameDownload times
1
YetAnotherArduinoPcIntLibrary-master.zip
4
2
ps2.zip
3
3
KKVE_IDE.pof
1
4
KKVE_IDE40_STL.zip
1
5
KKVE_IDE44_STL.zip
2
6
microDS3231.zip
3
7
RTC.zip
2
8
KKVE_IDE_RTC.qar
1
9
kakave_m_ide_rtc_v3_6_atmega324pa_14745600L.hex
0
10
kakave_m_ide_rtc_v3_6.ino
0
Clone
Add to Album
0
0
Share
Report

Project Members

Comment

All Comments(1)
Sort by time|Sort by popularity
Followers0|Likes0
Related projects
Empty

Bottom Navigation