"РК наших дней".

8-битные микроконтроллеры AVR (AT90, ATtiny, ATmega) от Atmel (в настоящий момент принадлежит Microchip)

Moderator: Shaos

Mondx
Doomed
Posts: 500
Joined: 10 Aug 2022 07:27
Location: Crimea

Re: "РК наших дней".

Post by Mondx »

Ну нет. ПК - это ведь Персональный Компьютер. Т.е., УНИВЕРСАЛЬНЫЙ компьютер! А тут, я бы назвал, бейсик-компьютер. А это немножко не то.
Как бы, во Flash Ардуино можно достаточно оперативно загружать и другие программы (c SD например), но тут другие ограничения - объём ОЗУ например. Хотя и Ардуино разные бывают, но тут должен быть, как я понимаю, народный (т.е. доступный, недорогой) набор.
MiniKot
Writer
Posts: 19
Joined: 26 Mar 2021 14:44

Re: "РК наших дней".

Post by MiniKot »

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

У меня есть исходники от автора где реализован SPI, но у меня не хватает знаний для того чтобы сделать работу с sd картой.

Нужно отметить что Arduino нужно рассматривать как железку, плату с контроллером, программа написана на ассемблере.
MiniKot
Writer
Posts: 19
Joined: 26 Mar 2021 14:44

Re: "РК наших дней".

Post by MiniKot »

Порт на на китайский микроконтроллер lgt8f328p
Исходники https://vk.com/s/v1/doc/FDlJ0L9iO9EvaqqZlTob5V2HwOkLIlPcw_AX3mp28cqGed3WLJw

Image
emax
Novelist
Posts: 43
Joined: 15 Sep 2014 22:32
Location: Пермь

Re: "РК наших дней".

Post by emax »

При тактовой 32 МГц, можно наверно и на обычном VGA картинку получить. Не пробовали?
MiniKot
Writer
Posts: 19
Joined: 26 Mar 2021 14:44

Re: "РК наших дней".

Post by MiniKot »

Не пробовал. Думаю если подобрать подходящий кварцевый резонатор, должно получиться, при этом изображение будет "полосками". Скорее всего для vga придется переписать весь код отвечающий за вывод изображения. Простой подъем частоты приведет к отвалу софтового UART и внешней памяти 24с256. Пока хочу попробовать отремапить "железный" UART к которому подключена клавиатура, чтобы можно было собирать на фиолетовых платах Nano.
MiniKot
Writer
Posts: 19
Joined: 26 Mar 2021 14:44

Re: "РК наших дней".

Post by MiniKot »

Покрутил сегодня немного, не получится переназначить RXD с PD0 на PD5. Некуда девать выводы RGB, они должны быть 5,6,7 пином порта.
MiniKot
Writer
Posts: 19
Joined: 26 Mar 2021 14:44

Re: "РК наших дней".

Post by MiniKot »

Сборка проекта из исходников в Simply Linux.
При первом знакомстве с проектом Йорга, самое сложное было понять как собрать проект из исходников. Казалось бы ничего сложного, но для простого пользователя, который никогда не использовал Линукс и ничего не знал о ассемблере задача оказалась не простой. Благодаря помощи Юрия Ревич и Йорга, разобраться все же удалось. Далее небольшая инструкция: Как собрать проект из исходного кода и изменить.

Image

Для сборки проекта в Simply Linux необходимо установить assembler AVRA.
- Старт -> Настройки -> Менеджер пакетов
- Открываем Менеджер пакетов synaptic
- Кликаем на кнопочку "Искать"
- Набираем avra и жмем "Искать"
- в найденных пакетах выбираем avra и кликаем на кнопку "Применить" и еще раз жмем "Применить"

Ассемблер AVRA установлен. Для проверки, в терминале вводим
avra --version
Если все хорошо, вы увидите что у вас установлена avra версии 1.3.0
Переходим в каталог с проектом, у вас будет другой путь, я написал лишь пример
cd /home/minikot/Dragon_v2.08/
далее собираем
avra main.asm
Поздравляю, ваш проект собран! Теперь вы можете изменить имя компьютера, рисунок на экране и окунуться с головой в язык программирования ассемблер.

Таблица символов
Image

Для изменения таблицы символов нужно отредактировать ctab_1_128c8.dat в libmio/generator/ . Например дерево в таблице символов выглядит так
...G..
..GGG.
.GGGGG
.GGGGG
.GGGGG
.GGGGG
..GMG.
...M..
...M..
..MMM.

Заглавные буквы это цвета G - зеленый, M - пурпурный. После изменения таблицы, ее необходимо сгенерировать перед сборкой.
perl gentab_1.pl
perl gentab_2.pl
Генерация таблицы происходит с помощью скрипта Perl, как правило Perl есть в Симпли линукс из коробки.

Фоновый рисунок
Image

По умолчанию фоновый рисунок - это космическая ракета, возможно он будет меняться от версии к версии. Для изменения рисунка нужно отредактировать макрос menu_newscreen1 в файле menu.asm. Функция libmio_thistex сохраняет в памяти заданные координаты и символы

libmio_thistext
.db 14,15,0x20,0x20,0x20,0x05,0x05,0x07,0x07,0x07,0x05,0x05,0x20,0x20,0

первое и второе число после .db - координаты Y,X, затем через запятую символы. Адрес символа можно посмотреть в таблице символов TABLE. Строчка должна заканчиваться нулем.
forthuser
Senior
Posts: 165
Joined: 12 Jan 2023 07:26

Re: "РК наших дней".

Post by forthuser »

Данный проект похож идейно на Fignition,
но там чёрно-белый вывод и Форт (Forth) язык как основа его программирования использованный
в Jupiter Ace компьютере от разработчиков ZX-Spectrum когда они ушли от Синклера и создали своё дело.

P.S. Форт можно, к примеру, встретить и реализованный для ретро железа - компьютера TI99 :)
http://turboforth.net/ и он очень даже хорошо показывает свои возможности в рамках его железа.

А, вообще, представленный проект в топике интересный, но не думали ли что его реализацию уместнее делать на контроллерах подобных STM32, RP2040, ESP32 ... или недорогих RISC-V цены на RISC-V контроллеры от WCH при покупке и в ЧипДип
На них уже разных и Форт уже понаделали начиная от Mecrisp реализации ...
(в них, вроде, программа выполняется из ОЗУ после загрузки из флеш и вся доступная ОЗУ пвмять может конфигурироваться
сколько её считать ОЗУ, а сколько "Флеш" в рабочей программе).
C заливкой в них программы тоже нет вопрсов через USB загрузчиком.
MiniKot
Writer
Posts: 19
Joined: 26 Mar 2021 14:44

Re: "РК наших дней".

Post by MiniKot »

Посмотрел, FIGnition интересный проект, если правильно понял у него встроенная клавиатура. Хочется что нибудь носимое со встроенной клавиатурой и дисплеем.
Найти проект на RISC-V, например ch32v203 было бы здорово, но реализовать его смогут скорее всего те кто знаком с STM32. Карманный девайс на форт или бейсике - звучит заманчиво.
forthuser
Senior
Posts: 165
Joined: 12 Jan 2023 07:26

Re: "РК наших дней".

Post by forthuser »

MiniKot wrote: Ассемблер AVRA установлен. Для проверки, в терминале вводим
avra --version
Из реп у себя установил 1.3.0-2 (Linux Puppy Xenial) , но при сборке авторского chipbasic не найден
в include подключаемый файл m32def.inc.

Собрал AVRA 1.4.2 отсюда https://github.com/Ro5bert/avra
но при сборке проекта выводит сообшение, что

 
avra main_us.asm
AVRA: advanced AVR macro assembler (version 1.4.2)
Pass 1...
Pass 2...
/usr/local/include/avr/m32def.inc(44) : PRAGMA PARTINC directive currently ignored
/usr/local/include/avr/m32def.inc(48) : PRAGMA AVRPART directive currently ignored
/usr/local/include/avr/m32def.inc(53) : PRAGMA AVRPART directive currently ignored
/usr/local/include/avr/m32def.inc(760) : PRAGMA AVRPART directive currently ignored
/usr/local/include/avr/m32def.inc(761) : PRAGMA AVRPART directive currently ignored
/usr/local/include/avr/m32def.inc(762) : PRAGMA AVRPART directive currently ignored
/usr/local/include/avr/m32def.inc(763) : PRAGMA AVRPART directive currently ignored
modules/exparser.asm(850) : Error : Found no label/variable/constant named ADCSR
modules/exparser.asm(851) : Error : Found no label/variable/constant named ADCSR
modules/interpreter.asm(56) : Error : Found no label/variable/constant named ADCSR
modules/interpreter.asm(56) : Error : I/O out of range (0 <= P <= 63)

P.S. Дальше, конечно, соберу разобрашись и под Linux файл с ассемблером ChipBasic (как собирал и
под Windows, к примеру, amForth c помощью родного Avra2 ассемблера от Atmel для Atmega162),
но не думал что и в этом моменте могут быть "грабли" :)
MiniKot wrote:Карманный девайс на форт или бейсике - звучит заманчиво.
MiniKot wrote: Благодаря помощи Юрия Ревич и Йорга, разобраться все же удалось.
Интересно, а в книгах Ю.Ревича такие проекты не представлены?
MiniKot
Writer
Posts: 19
Joined: 26 Mar 2021 14:44

Re: "РК наших дней".

Post by MiniKot »

Вставьте в конце файла main_us.asm
.equ ADCSR = ADCSRA

На предупреждение PRAGMA не обращайте внимания или закомментируйте все строчки с PRAGMA в m32def.inc

Для того чтобы изучить ассемблер купил книги Юрия Ревич, что было не понятно просил совета по электронной почте, он мне помогал.
forthuser
Senior
Posts: 165
Joined: 12 Jan 2023 07:26

Re: "РК наших дней".

Post by forthuser »

MiniKot wrote:Вставьте в конце файла main.asm
.equ ADCSR = ADCSRA
Да, так нормально

 
Assembly complete with no errors.
Segment usage:
Code : 12546 words (25092 bytes)
Data : 0 bytes
EEPROM : 0 bytes

MiniKot wrote: На предупреждение PRAGMA не обращайте внимания или закомментируйте все строчки с PRAGMA в m32def.inc
Это понятно.
MiniKot wrote: Для того чтобы изучить ассемблер купил книги Юрия Ревич, что было не понятно просил совета по электронной почте, он мне помогал.
У меня, в целом, достаточная практика работы с ассемблером, но всё же предпочитаю использоввать даже "самопальные" средства разработки в таком исполнении.
Среда для программирования и внутрисхемной отладки AVR и др (ff303 проект 20-ти летней давности)

Форт-ассемблер для AVR
...
AVRForth
amForth
FlashForth
...
Хотя для AVR при программировании есть использование упрощённого псевдо- ассемблера в блок-схемном изображении
Algorithm Builder for AVR, Начинаем

Одной из фишек у меня в ассемблерном коде была пара последовательных команд проверяющая два флага условий независимо друг от друга (одно условие отвечало за контроль по выходу из цикла по истечению тайм-аут времени, а второе по нужному условию "бита"- вроде Zero и Сarry флаги) и выхода или продолжения цикла по одной команде ветвления. :)
(т.е. тест 2-ух условий был независим друг от друга для формирования флагов, а далее их
анализ в одной команде ветвления)
forthuser
Senior
Posts: 165
Joined: 12 Jan 2023 07:26

Re: "РК наших дней".

Post by forthuser »

В рамках использования ассемблера для AVR встретился проект симуляции PDP-11
My PDP-11 Projects

P.S. А, с PDP-11 много интересных событий и разработок было сделано, например начался Си язык программирования. :)
MiniKot
Writer
Posts: 19
Joined: 26 Mar 2021 14:44

Re: "РК наших дней".

Post by MiniKot »

Наверное здорово хорошо разбираться в ассемблере, у меня нет обширных и крепких знаний в ассемблере, просто хотел чтобы игрушка работала.
В проекте avr-chipbasic32 была возможность сохранить всего 4 программы. А на avr-chipbasic16 можно было сохранить 16 программ, но раскладка клавиатуры была qwertz. Как же это раздражало когда вместо y пишется z и наоборот.
С другой стороны когда программы хранятся в флеш памяти микроконтроллера, они стираются при обновлении прошивки, а когда программы хранятся во внешней епром памяти ты можешь делать с контроллером что угодно, даже заменить на другой.
Можно было бы конечно подключить ардуино с SD картой и через последовательный порт скидывать и загружать программы на SD карту, но тогда это уже будет не одночиповый компьютер, а двухчиповый :)
MiniKot
Writer
Posts: 19
Joined: 26 Mar 2021 14:44

Re: "РК наших дней".

Post by MiniKot »

forthuser wrote:В рамках использования ассемблера для AVR встретился проект симуляции PDP-11
My PDP-11 Projects

P.S. А, с PDP-11 много интересных событий и разработок было сделано, например начался Си язык программирования. :)
Почитал страничку... Там человек жалуется на отсутствие ассемблера под macOS, если не ошибаюсь. Ассемблер avra при должном усилии, собирается почти под любую ОС.