Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА: SoC для платы Марсоход2

Re: SoC для платы Марсоход2 11 года 5 мес. назад #1727

  • Ynicky
  • Ynicky аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 209
  • Спасибо получено: 39
Как и обещал, выкладываю проект и компилятор.
Вывожу на экран пока цифры и английские буквы (малые и большие).

Николай.

Вложенный файл:

Имя файла: implement_...4-25.zip
Размер файла:153 KB


Вложенный файл:

Имя файла: msh2soc_20...4-25.zip
Размер файла:131 KB


Вложенный файл:

Имя файла: src_2013-04-25.zip
Размер файла:126 KB


Вложенный файл:

Имя файла: synthesis_...4-25.zip
Размер файла:220 KB


Вложенный файл:

Имя файла: lcc_src_bin1.zip
Размер файла:174 KB


Вложенный файл:

Имя файла: lcc_bin2.zip
Размер файла:244 KB

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: SoC для платы Марсоход2 11 года 5 мес. назад #1736

  • Ynicky
  • Ynicky аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 209
  • Спасибо получено: 39
Побаловался с клавиатурой.
Теперь печатаются как английские так и русские буквы.
Для переключения регистра используется "Caps Lock".
На русский и обратно - правый "Ctrl".
Работают забой, пробел и "Enter".
Для игр добавил работу со стрелками.
Вот что получилось.
Прилагаю файлы.

Николай.


Вложенный файл:

Имя файла: ps2kbd.zip
Размер файла:3 KB


ps2 клавиатура
Вложения:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Ynicky.

Re: SoC для платы Марсоход2 11 года 4 мес. назад #1761

  • Ynicky
  • Ynicky аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 209
  • Спасибо получено: 39
Нашел в интернете простой код игры "Змейка".
Адаптировал к проекту.
Screen

Вложенный файл:

Имя файла: src_2013-05-09.zip
Размер файла:135 KB
Вложения:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Ynicky.

Re: SoC для платы Марсоход2 11 года 4 мес. назад #1823

  • Ynicky
  • Ynicky аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 209
  • Спасибо получено: 39
В эти выходные сделал зарядное устройство для щелочных батареек.
Ток заряда не превышает 100 мА. Больше не позволяет USB.
По этой же причине нельзя сделать зарядное устройство сразу на несколько батареек.

Пока не поставил транзистор, отключающий батарейку после заряда.
На днях доделаю. Но программу сделал с отключением, и проверил тестером вывод 11 CN3.
Исправил пару ошибок в проекте.
Screen

Вложенный файл:

Имя файла: implement_...5-26.zip
Размер файла:153 KB


Вложенный файл:

Имя файла: src_2013-05-26.zip
Размер файла:184 KB


Николай.
Вложения:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: SoC для платы Марсоход2 11 года 4 мес. назад #1846

  • Ynicky
  • Ynicky аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 209
  • Спасибо получено: 39
Поэкспериментировал с разными транзисторами.
Оказалось, что у разных транзисторов Uкэ в открытом состоянии разное.
Поэтому переделал схему. Напряжения указаны для этих конкретных транзисторов.
На батарейке указано напряжение в конце зарядки. На холостом ходу оно меньше.
Время заряда разных батареек оказалось разное (~ от 6 до 18 часов). Видимо
сказываются степень разряда и фирма.
По окончании заряда зажигаются все светодиоды.
При смене батарейки нужно нажать кнопку ближайшую к VGA разъему.

Николай.






Вложенный файл:

Имя файла: src_2013-06-03.zip
Размер файла:184 KB


Вложенный файл:

Имя файла: implement_...6-03.zip
Размер файла:153 KB
Вложения:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Ynicky.

Re: SoC для платы Марсоход2 11 года 4 мес. назад #1847

Простите за оффтопик, но зарядка батареек это так необычно. Сколько циклов зарадяки может выдержать батарейка? Насколько хорошо восстанавливаются харакетиристики батарейки после зарядки? Зачем используется FPGA для этого дела? Формируется какой-то необычный сигнал?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: SoC для платы Марсоход2 11 года 4 мес. назад #1848

  • Ynicky
  • Ynicky аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 209
  • Спасибо получено: 39
Существуют промышленные зарядные устройства для щелочных батареек:
www.dni.ru/tech/2011/3/15/209018.html
Заряжать можно только щелочные (алкалиновые) батарейки.
Они по технологии близки к щелочным аккумуляторам.
В зарядных устройствах применяют разные схемы контроля,
от аналоговых до микроконтроллерных.
Необходимо отключать зарядку при достижении определенного U.
В СнК на плате Марсоход2 все для этого есть.
Никаких специальных сигналов или импульсов не формирую.
Зарядка идет постоянным током.

Николай.
Спасибо сказали: Серый Волк

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Ynicky.

Re: SoC для платы Марсоход2 11 года 3 мес. назад #1856

  • Ynicky
  • Ynicky аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 209
  • Спасибо получено: 39
До сих пор в проекте не использовались встроенные блоки умножения.
Чтобы использовать их, я ввел в АЛУ команду умножения 16x16=32.
Чтобы она не тормозила процессор, сделал умножитель конвейерным.
Заняло это 16 блоков (Embedded Multiplier 9-bit elements) из 46.
Переписал библиотеку и скорректировал описание.
Также захотел написать программные библиотечные функции деления (div)
и взятия остатка (mod). Не нашел в интернете как это можно сэмулировать на С.
Может кто знает где это взять? Или хотя-бы знает подробный алгоритм.
Поделитесь пожалуйста.

Николай.

Вложенный файл:

Имя файла: src_2013-06-10.zip
Размер файла:185 KB
Вложения:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: SoC для платы Марсоход2 11 года 3 мес. назад #1858

Вот здесь два алгоритма деления через сдвиги: www.distedu.ru/mirror/_inform/dmivic.chat.ru/inform/div.html
Спасибо сказали: Ynicky

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: SoC для платы Марсоход2 11 года 3 мес. назад #1866

  • Ynicky
  • Ynicky аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 209
  • Спасибо получено: 39
Когда разбирался с делением, понял что в системе команд процессора не хватает
сдвигов по значению в регистре. Поменял операции АЛУ.
Скорректировал ассемблер и написал пятую версию компилятора.

Эмуляция деления на С для 16-ти разрядных процессоров в моем варианте
выглядит следующим образом:

unsigned int divu2(unsigned int uiA, unsigned int uiB)
{
int iI;
unsigned int uiR = 0;
unsigned int uiT;

if(uiB == 0) return 0xFFFF;
if(uiB == 1) return uiA;
if(uiB == uiA) return 1;
if(uiB > uiA) return 0;

for(iI = 15; iI >= 0; iI--)
{
if(iI == 0) uiT = 0;
else uiT = (uiB >> (16-iI));
if(uiT == 0)
{
uiT = (uiB << iI);
if(uiA >= uiT)
{
uiR += 1 << iI;
uiA -= uiT;
}
}
}
return uiR;
}


Вложенный файл:

Имя файла: src_2013-06-16.zip
Размер файла:200 KB


Вложенный файл:

Имя файла: LCC_bin1_2...6-16.zip
Размер файла:170 KB


Вложенный файл:

Имя файла: LCC_bin2_2...6-16.zip
Размер файла:244 KB
Вложения:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.301 секунд
Работает на Kunena форум