nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 10 Dec 2018 18:35



Reply to topic  [ 34 posts ]  Go to page Previous  1, 2, 3  Next
PIC17C4X в режиме микропроцессора (nedoPC-17) 
Author Message
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17209
Location: Colorado
Reply with quote
Post 
Shaos wrote:
Image


Эта плата была сделана с несколькими ошибками:

1) выбранный мной SOIC-корпус для микросхем SRAM CY6264 оказался узковат и чтобы припаять эти микросхемы к получившейся плате пришлось слегка подгибать ножки;
2) использовался кварц, что подразумевает специальное программирование пика - без программирования он ожидает внешний клок (как видно генератор приделан кое-как);
3) не была предусмотрена схема сброса WizNet-а, в результате он работал через раз (диод, резистор и конденсатор припаяны навесиком);
4) преобразователь уровней RS232 имеет один неправильно подключённый конденсатор, но как ни странно - последовательный порт работал нормально;
5) конкретно на этой плате, изображённой на фотке, вместо 4x2И была впаяна микросхема 4x2ИЛИ (из-за ошибки в первоначальной схеме) и дешифратор адресов стал работать несколько иначе (это не проблема для сборки других плат из этой серии, т.к. эти микросхемы по ногам совпадают).

Все ошибки уже исправлены в версии 1.1 - но платы пока не заказываю в связи с финансовыми трудностями...

_________________
:eugeek: https://twitter.com/Shaos1973


Last edited by Shaos on 06 Dec 2009 20:51, edited 5 times in total.



04 Dec 2009 20:34
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17209
Location: Colorado
Reply with quote
Post 
История создания первого пикспьютера (пока не забылось и есть возможность восстановить) - частично в картинках:

02 ноября 2007: Решил принять участие в конкурсе журнала Circuit Cellar, посвящённый WizNET чипу W5100 (держит 4 сокета максимум с буферами по 2К на каждый и поддерживает "в железе" протоколы Ethernet: IEEE 802.3 10-BASE-T, IEEE 802.3u 100BASE-TX, MAC, PHY, TCP/IP: TCP, UDP, IPv4, ICMP, ARP, IGMP, PPPoE, допускает прямой доступ к памяти, непрямой доступ к памяти или работу по SPI). Заказал пару платок WIZ810MJ в Корее для экспериментов (2 x $12 + $30 = $54).

04 ноября 2007: Задумался над предназначением предполагаемого конкурсного устройства - выбрал тему сбора данных и передачи их по интернет. Требование конкурса - использовать коммерчески доступный микроконтроллер. Сразу же решил взять PIC в качестве микроконтроллера (но ещё не определился какой).

06 ноября 2007: Решил взять PIC17 в качестве микроконтроллера для конкурсного устройства (он всё ещё "коммерчески доступен"), чтобы получить стимул создать первый рабочий экземпляр пикспьютера, который давно планировал. Начал набрасывать маппинг памяти (8 окон по 8 Kwords) и примерную схему дешифратора адреса. Решил использовать оптопары для ввода фиксируемых данных, а также часы реального времени для сохранения точного времени считывания данных.

08 ноября 2007: Зарегистрировал в конкурсе свой проект под названием "Remote digital I/O board". Описание: Digital I/O-board with memory (2048 x 8 digital samples with full timestamps for each). Simple Web-interface to get collected data and to control the board (set time, change sample frequency, control outputs) through network. CPU will be PIC17C44 in microprocessor mode with external memory. Onboard RTC chip (real time clock) for collecting timestamps. I/O channels: 8 opto-isolated inputs and 2 high-voltage relays as outputs. Пришло подтверждение на участие - выдали номер 001098. Пришли WIZ810MJ (прямиком из Южной Кореи). Увидел, что разъём нестандартный (шаг 2 мм) и заказал у DigiKey шесть SMD-коннекторов для втыкания платки (нужно 2 для одной платы). Разработал формат текстового представления данных с метками даты и времени. Доработка маппинга памяти - присматриваюсь к GAL16V8 в качестве дешифратора адреса.

10 ноября 2007: Выложил первое описание схемы в этот топик: Первая версия платы "пикспьютера" будет с COM-портом, 8 Kwords ROM, 8 Kwords RAM, Real-Time Clock, Ethernet+TCP/IP и двумя NI-15, до мегавордов и исабаса пока не дорос...

11 ноября 2007: Приобрёл за $413 стандартный Eagle Layout + Schematic (160 x 100 мм, 4 слоя и 99 листов схем).

13 ноября 2007: Получил SMD-коннекторы для втыкания WIZ810MJ плат (шаг 2 мм).

02 декабря 2007: Стал набрасывать подключение PIC17F42A в PLCC-корпусе. Выбирал память (ОЗУ и ПЗУ), чтобы работала с 20-мегагерцовым PIC17 (должно быть как минимум 120 нс).

03 декабпя 2007: Закончил разработку предварительного маппинга памяти. Пока думаю использовать регистр и мелкую логику для окна 0 (там всегд должен быть ROM).

06 декабря 2007: Решил использовать 22V10 в качестве регистра и дешифратора адреса.

07 декабря 2007: Окончательно определился с адресами устройств в памяти и разработал "ручную" прошивку для 22V10.

10 декабря 2007: Из-за некоторых проблем с прошиваемостью GAL22V10 перешёл на 16V8 (надеясь использовать ATF16V8, который есть в списке поддерживаемых моим программатором). Снова потребовалась микросхема внешней мелкой логики - 4x2И для окна 0. Набросал схемы подключения оптопар и реле. А также вставил в схему две NI-15 и одну NI-23 (16-битный вариант NI-15).

15 декабря 2007: Закончил "ручное" программирование 16V8 для дешифратора адреса - см. npc17v10.jed.

19 декабря 2007: Закончил разработку платы версии 1.0 в Eagle и заказал производство 4-х плат (всего $340).

Image

20 декабря 2007: Обдумываю веб-интерфейс работы с устройством.

24 декабря 2007: Обнародовал на форуме окончательную спецификацию первого пикспьютера: PIC17C4X работающий на частоте 20 МГц, 64 Kwords ROM с переключением страниц по 8 Kwords, 8 Kwords RAM, MAX3232 и COM-порт, Real-Time Clock, Ethernet+TCP/IP, два разъёма NI-15, один разъём NI-23 (16-битный вариант NI-15), дешифратор адресов на 16V8, 8 оптопар, 2 реле (подключены напрямую к выводам PIC17 с открытым коллектором).

02 января 2008: Пришли недавно купленные ATF16V8 и как оказалось, мой программатор их не шьёт - пришлось взять старый PALCE16V8.

03 января 2008: Пришли платы - получилось долго из-за рождества и нового года.

Image

09 января 2008: Припаял основные микросхемы (пока без WizNET, RTC, RS232, оптопар и реле). Оказалось, что подобранный мной SOIC-корпус для ОЗУ CY6264 оказался узковат - пришлось загибать ножки у микросхемы, чтобы она припаялась к своим контактным площадкам. Тестирую программой зашитой в ПЗУ, которая пишет #AA в порт B (к нему подключены 5 светодиодов что для WizNET припаяны). Оказалось, что незапрограммированный PIC17 требует внешний клок на OSC1, а не осциллятор как я сделал - пришлось навешивать TTL-генератор вместо кристалла, т.к. перепрограммировать PIC17 нет возможности.

Image

10 января 2008: Начал составлять инклудник с макросами для PIC17 под названием pixmacro.inc - начал с макросов dealy1 и delay2.

11 января 2008: Выяснилось, что по умолчанию PIC17 имеет вачдог (WDT), который в этой плате срабатывает каждые 12 мс. Расширил программу для ROM, тестирующую светодиоды и назвал её pixtest1.asm. Задумал приделать к плате жидкокристаллический индикатор 16x2 в место подключения оптопар и реле для дальнейшей отладки.

12 января 2008: Пишу программу для дисплея.

13 января 2008: Добавил макрос callw в pixmacro.inc.

17 января 2008: Оживил дисплей - совсем забыл что A2 и A3 имеют открытый коллектор - всё заработало только после добавления подтягивающих резисторов на питание. Программа для ROM, выводящая слово "PIXPUTER" на дисплей называется pixtest2.asm. Запланировал проверять периферию в следующем порядке: RS232, RTC, WizNET.

Image

18 января 2008: Начал писать третий ROM-тест pixtest3.asm в составе четырёх подтестов: тест 3-0 для чтения первых 8 байт нулевого окна (где находится первая страница ПЗУ) и вывод их на дисплей в hex-виде, тест 3-1 для чтения первых слов каждой страницы ПЗУ (через их переключение в окно 3) и вывода их на дисплей в hex-виде, тест 3-2 для тестирования записи и чтения в каждый байт RAM из доступных 8К (всегда в окне 2 адресного пространства - в диапазоне адресов #4000...#5FFF), тест 3-3 для тестирования запуска программ из других страниц ПЗУ (которые всегда выводятся в окно 3 адресного пространства - в диапазоне адресов #6000...#7FFF).

19 января 2008: Добавил макросы memr, memrn, memrf, memw, memwn, memwf в pixmacro.inc. Столкнулся с некорректной работой ROM-теста pixtest3.asm. Из окна 3 адресного пространства - с адреса #6000 - всегда читалось последняя страница 64К-словного ПЗУ и запись ненулевого байта в регистр REG3ADR (который должен переключать окна ПЗУ в окне 3 адресного пространства) не приводило к желаемому результату - более того, программа зависала (тест 3-1 и тест 3-3). Как оказалось, я вместо 4x2И припаял 4x2ИЛИ, что привело к тому, что дешифратор адреса стал работать иначе - в регистр REG3ADR ничего кроме нуля писать стало нельзя (т.к. окно 0 перестанет держать код программы из начала ПЗУ), и по адресу #6000 теперь всегда видна последняя страница ПЗУ. С этим пока жить можно - как видно в исходном коде теста в обоих случаях закомменчена запись в REG3ADR.

20 января 2008: Добавил макросы memwd, fcall, fcallw в pixmacro.inc. Закончил третий ROM-тест pixtest3.asm (с запретом записи в REG3ADR). Тест памяти ОЗУ прошёл успешно. Тест 3-3 как и ожидалось сразу же показывает, что по адресу #6000 раположена последняя страница ПЗУ.

24 января 2008: Готов первый вариант четвёртого ROM-теста pixtest4.asm, тестирующего взаимодействие по последовательному порту (запись через опрос, чтение - через прерывание). Реализовал чтение из памяти по указанному адресу и вывод прочитанного слова в терминал. До момента окончания приёма проектов на конкурс остаётся ОДНА неделя...

Image

25 января 2008: Добавил в четвёртый ROM-тест pixtest4.asm возможности по чтению слов из памяти (частично уже было готово за день до этого), записи слов в память и запуск подпрограмм с произвольного адреса. После включения в терминале видим приглашение ввода ">". Сейчас поддерживаются следующие команды: ?HHHH - чтение одного слова по шестнадцатиричному адресу HHHH; ?HHHH=KKKK - чтение KKKK байтов (шестнадцатиричное число) по шестнадцатиричному адресу HHHH; !HHHH - обнуление ячейки по шестнадцатиричному адресу HHHH; !HHHH=KKKK....KKKK - запись шестнадцатеричных слов KKKK начиная с шестнадцатиричного адреса HHHH; $HHHH - вызвать подпрограмму по адресу HHHH и вернуть управление на приглашение ввода. Вставил RTC чип DS1687-5 и с лёгкостью его завёл через этот интерфейс "вручную" (доступен с адреса #3000). Планирую на питоне написать программу по работе с этим интерфейсом - запись .hex файла программы в ОЗУ, проверка правильности и запуск...

26 января 2008: Добавил макросы memr1, memr1n, memw1, memw1n, memw1d, fcallf в pixmacro.inc. Написал программу на питоне pixtest.py, которая берёт файл в HEX формате (имя файла задаётся прямо внутри питоновского кода), засылает в плату через COM-порт (используя команду записи в память), читает обратно (используя команду чтения из памяти), сверяет с оригиналом и если всё ок - запускает (используя команду запуска по произвольному адресу - в данном случае #4000). Сделана первая программа, запускаемая из RAM таким способом и пишущая HELLO на дисплей - pixram1.asm (первый RAM-тест). Таким же способом была запущена микропрограммка по выводу текущего времени и даты на дисплей pixram2.asm (второй RAM-тест).

Image

27 января 2009: Собрал плату полностью - осталось воткнуть в панельки оптоизоляторы и реле, для чего сначала нужно убрать дисплей, подключенный к тем же ногам, но он мне пока нужен - чтобы победить WizNET. Через питон научился инициализировать сетевой чип (задавать MAC-адрес, IP-адрес, маску), однако обнаружилось, что он заводится крайне нестабильно - ping нормально отработал только однажды. В интернете удалось раздобыть информацию о том, что WizNET требует наличия железного сброса, которого у меня предусмотрено небыло, а это "0" длительностью не менее 2 uS на ногу RESET - пришлось в экстренном порядке резать дорожку и городить навесиком схемку из конденсатора, резистора и диода.

Image

29 января 2008: Добавил макросы memr1f, memw1f, incwf, decwf, saveb, savew в pixmacro.inc. Внесены последние изменения в четвёртый ROM-тест pixtest4.asm (RS-232). Начал разбираться с программированием WIZnet чипа. Разработал формат записи MAC-адреса, IP-адреса, порта, маски и gateway в CMOS-память RTC-чипа.

30 января 2008: Добавил макросы addwfn, addwff, subwff, movff в pixmacro.inc. Впервые связался с программным WEB-сервером через обычный браузер. Завершена корректировка инклудника с константами WIZnet - wiznet.inc. Разработал интерфейс веб-взаимодействия (чтения записей и установки-сброса реле).

31 января 2008: К трём часам утра готов третий RAM-тест, проверяющий сетевой функционал - pixram3.asm. Программа является простейшим WEB-сервером. Отключил дисплей и воткнул оптопары и реле. В полшестого утра закончил конкурсную прошивку ioboard.asm, которая копит данные с указанной в настройках частотой (от 1 раза в секунду до 2^n - пределов возможностей не тестировал), а по запросу выдаёт табличку в обратном хронологическом порядке (данные сохраняются по кольцу - до 2048 записей с метками времени) со строками вида: 080131171603FF0, где первые 12 цифр это год, месяц, день, час, минута и секунда, а далее 2 шестнадцатиричных числа обозначающих байт из 8 оптоизолированных входов и одно шестнадцатироичное число показывающее состояние 2 релюшек. Кроме того можно через веб управлять реле - включать и выключать отдельными запросами. Плюс к этом плата продолжает отзываться на COM-порт со скоростью 9600 - работают теже три команды: чтение, запись и запуск. Через них можно поменять настройки сетевых интерфейсов в энергонезависимой памяти часов реального времени, откуда они берутся при старте платы и даже запретить сетевое взаимодействие совсем (вместе с запретом прерываний на семплирование данных). В последний момент закончил документацию и отправил работу на конкурс в 12:55 по местному времени...

Image

_________________
:eugeek: https://twitter.com/Shaos1973


Last edited by Shaos on 13 Nov 2010 08:18, edited 7 times in total.



05 Dec 2009 22:33
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17209
Location: Colorado
Reply with quote
Post 
Послеконкурсная история пикспьютера:

06 марта 2008: Спонсоры конкурса (разработчики WIZnet) просят выслать девайс за их счёт в Калифорнию на выставку.

13 марта 2008: Посылка отправлена за мой счёт.

25 марта 2008: Посылку наконец забрали с почты и увезли на выставку.

27 марта 2008: Получил чек на 100 баксов от журнала Circuit Cellar и сертификат в рамке про "Distinctive Excellence" (Отличительное Превосходство) - в конкурсе не выиграл, но грамоту таки получил ;)



02 апреля 2008: Опубликован список победителей конкурса. Я попал в список отличившихся (но не победивших): https://web.archive.org/web/20080420234647/http://www.circuitcellar.com/wiznet/winners/DE/index.html

08 мая 2008: Посылка с девайсом пришла с выставки - плата слегка помята (в лице регуляторов напряжения), но в целом выглядит сносно. В качестве ещё одного "утешительного" приза в посылку вложена 1GB фирменная флешка WIZnet (переломившаяся пополам через полгода).

Image

14 ноября 2008: Редакция журнала Circuit Cellar предложила мне написать статью в журнал про эту девайсину...

19 октября 2009: Почти через год журнал напомнил про статью - видимо придётся дописывать...

_________________
:eugeek: https://twitter.com/Shaos1973


Last edited by Shaos on 06 Dec 2009 22:31, edited 4 times in total.



06 Dec 2009 20:03
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17209
Location: Colorado
Reply with quote
Post 
Итого у меня теперь одна собранная плата версии 1.0 и три голых - если кто желает поиграться с платой, могу предложить голую по себестоимости, т.е. 340/4 = $85...

_________________
:eugeek: https://twitter.com/Shaos1973


06 Dec 2009 20:36
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17209
Location: Colorado
Reply with quote
Post 
Совсем забыл выложить полную документацию по проекту на английском (сколько есть):

http://nedopc.org/nedopc/17/IO_Board.pdf (6.4MB)

_________________
:eugeek: https://twitter.com/Shaos1973


06 Dec 2009 22:48
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17209
Location: Colorado
Reply with quote
Post 
Shaos wrote:
14 ноября 2008: Редакция журнала Circuit Cellar предложила мне написать статью в журнал про эту девайсину...

19 октября 2009: Почти через год журнал напомнил про статью - видимо придётся дописывать...


15 декабря 2009: Готов первый вариант статьи, но оказалось что он мелковат для печатного варианта журнала - взял время на увеличение объёма...

31 января 2010: Видя, что времени на увеличение статьи нет, я согласился на печать уменьшенной версии в электронном приложении к журналу

07 февраля 2010: Статья со всеми сопроводительными материалами послана редактору

10 февраля 2010: Статья принята к рассмотрению

17 марта 2010: Статья принята к печати - редакторы начали рeдактирование...

_________________
:eugeek: https://twitter.com/Shaos1973


17 Mar 2010 17:33
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17209
Location: Colorado
Reply with quote
Post Re:
Shaos wrote:
02 апреля 2008: Опубликован список победителей конкурса. Я попал в список отличившихся (но не победивших): http://www.circuitcellar.com/wiznet/win ... index.html


Страничка исчезла - теперь только через архив:

https://web.archive.org/web/20080420234647/http://www.circuitcellar.com/wiznet/winners/DE/index.html

https://web.archive.org/web/20080705234315/http://www.circuitcellar.com/wiznet/winners/DE/001098.html

_________________
:eugeek: https://twitter.com/Shaos1973


06 May 2015 19:46
Profile WWW
Senior

Joined: 23 Feb 2015 16:37
Posts: 151
Location: OMS
Reply with quote
Ну друг мой, теперь можно в веб-морду добавить канвас и пробовать выводить графику средствами PIC =)
А так зачёт! Кстати а статья появилась?


25 Jun 2015 04:50
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17209
Location: Colorado
Reply with quote
Odin P. Morgan wrote:
Ну друг мой, теперь можно в веб-морду добавить канвас и пробовать выводить графику средствами PIC =)
А так зачёт! Кстати а статья появилась?


Насколько я знаю нет - по английски я ещё тот пейсатель ;)

_________________
:eugeek: https://twitter.com/Shaos1973


25 Jun 2015 06:26
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17209
Location: Colorado
Reply with quote
Post Re:
Shaos wrote:
Shaos wrote:
Image


Эта плата была сделана с несколькими ошибками:

1) выбранный мной SOIC-корпус для микросхем SRAM CY6264 оказался узковат и чтобы припаять эти микросхемы к получившейся плате пришлось слегка подгибать ножки;
2) использовался кварц, что подразумевает специальное программирование пика - без программирования он ожидает внешний клок (как видно генератор приделан кое-как);
3) не была предусмотрена схема сброса WizNet-а, в результате он работал через раз (диод, резистор и конденсатор припаяны навесиком);
4) преобразователь уровней RS232 имеет один неправильно подключённый конденсатор, но как ни странно - последовательный порт работал нормально;
5) конкретно на этой плате, изображённой на фотке, вместо 4x2И была впаяна микросхема 4x2ИЛИ (из-за ошибки в первоначальной схеме) и дешифратор адресов стал работать несколько иначе (это не проблема для сборки других плат из этой серии, т.к. эти микросхемы по ногам совпадают).

Все ошибки уже исправлены в версии 1.1 - но платы пока не заказываю в связи с финансовыми трудностями...


Больше чем через 8 лет я таки решил заказать исправленную версию 1.1 платы, причём по традиции красного цвета и с золотыми контактами :)

Image

Исходники для Eagle плюс герберы: http://nedopc.org/nedopc/17/NedoPC-17-v1_1.zip (1.2 Мб)

Image

Image

Image

P.S. seeedstudio.com взяли за 10 красных 4-слойных платок с ENIG:
Quote:
Sub-Total: $157.22
Shipping Cost: $29.05
Total: $186.27

или примерно $18.63 за платку, что в 4.5 раза дешевле версии 1.0, производство которой я заказывал почти 8 лет назад...

_________________
:eugeek: https://twitter.com/Shaos1973


10 May 2016 18:42
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17209
Location: Colorado
Reply with quote
Восстанавливаем карту памяти по прошивке палки:
Code:
GAL16V8*QP20*QF2194*G0*F0*
NOTE I-PINS: 1:_WR 2:A15 3:A14 4:A13 5:A12 6:A11 7:A10 8:A9 9:A8 11:_RD *
NOTE O-PINS: 12:WR_REG3 13:_CS_WIN5 14:_CS_BUS2 15:_CS_BUS1 16:_CS_RTC 17:_CS_NET 18:_CS_ROM 19:_CS_RAM *
NOTE-A15,W-A14--A13--A12--A11--A10--A9---A8,R*
NOTE--0000-0000-0000-0000-0000-0000-0000-0000*
NOTE PIN 19: _CS_RAM = ! (!A15 A14 !A13) *
L0000 1011 0111 1011 1111 1111 1111 1111 1111*
NOTE PIN 18: _CS_ROM = ! (!A15 !A14 !A13 + !A15 A14 A13) *
L0256 1011 1011 1011 1111 1111 1111 1111 1111*
L0288 1011 0111 0111 1111 1111 1111 1111 1111*
NOTE PIN 17: _CS_NET = ! (A15 !A14 !A13 !_WR + A15 !A14 !A13 !_RD + A15 A14 !_WR + A15 A14 !_RD) *
L0512 0110 1011 1011 1111 1111 1111 1111 1111*
L0544 0111 1011 1011 1111 1111 1111 1111 1110*
L0576 0110 0111 1111 1111 1111 1111 1111 1111*
L0608 0111 0111 1111 1111 1111 1111 1111 1110*
NOTE PIN 16: _CS_RTC = ! (!A15 !A14 A13 A12 !A11 !A10 !A9 !A8) *
L0768 1011 1011 0111 0111 1011 1011 1011 1011*
NOTE PIN 15: _CS_BUS1 = ! (!A15 !A14 A13 A12 A11 !A10 !A9) *
L1024 1011 1011 0111 0111 0111 1011 1011 1111*
NOTE PIN 14: _CS_BUS2 = ! (!A15 !A14 A13 A12 A11 !A10 A9) *
L1280 1011 1011 0111 0111 0111 1011 0111 1111*
NOTE PIN 13: _CS_WIN5 = ! (A15 !A14 A13) *
L1536 0111 1011 0111 1111 1111 1111 1111 1111*
NOTE PIN 12: WR_REG3 = (!A15 !A14 A13 A12 !A11 A10 A9 A8 !_WR) *
L1792 1010 1011 0111 0111 1011 0111 0111 0111*
NOTE XOR CONFIGURATION: *
L2048 00000001*
NOTE SIGNATURE: *
L2056 01001110 01010000 01000011 00110001*
L2088 00110111 01110110 00110001 00110000*
NOTE AC1 CONFIGURATION: *
L2120 00000000*
NOTE PRODUCT TERM DISABLE: *
L2128 10000000 11000000 11110000 10000000 10000000 10000000 10000000 10000000*
NOTE GLOBAL CONFIGURATION (SYN,AC0): *
L2192 10*
C30C0*


Code:
000xxxxx xxxxxxxx -> /CS_ROM (pin 18) - higher 3 bits always 000
0010xxxx xxxxxxxx -> not used...
00110000 xxxxxxxx -> /CS_RTC (pin 16)
00110001...00110110 -> not used...
00110111 xxxxxxxx and /WR -> WR_REG3 (pin 12)
0011100x xxxxxxxx -> /CS_BUS1 (pin 15) - 1st NI-15
0011101x xxxxxxxx -> /CS_BUS2 (pin 14) - 2nd NI-15
001111xx xxxxxxxx -> not used...
010xxxxx xxxxxxxx -> /CS_RAM (pin 19)
011xxxxx xxxxxxxx -> /CS_ROM (pin 18) - higher 3 bits set by REG3
100xxxxx xxxxxxxx and (/WR or /RD) -> /CS_NET (pin 17)
101xxxxx xxxxxxxx -> /CS_WIN5 (pin 13) - extension NI-23
110xxxxx xxxxxxxx and (/WR or /RD) -> /CS_NET (pin 17)
111xxxxx xxxxxxxx and (/WR or /RD) -> /CS_NET (pin 17)


REG3 (в исходниках тестов писался по адресу 0x37F3):

bit 0 - A13 для ROM
bit 1 - A14 для ROM
bit 2 - A15 для ROM
bit 3 - IO/M для WIN5 (разъём NI-23)

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

P.S. Покопался в своих старых тетрадочках - в первоначальных набросках архитектуры пикспьютера по адресу 0x2000 предполагалась видеопамять для первого текстового экрана 80x25, а по адресу 0x2800 - для второго. Кроме того предполагалось 16 управляющих регистров 0x37F0...0x37FF, но для чего - не могу найти :(

P.P.S. Светодиод вверх ногами нарисовал :oops:


Attachments:
pixputer-071203.jpg
pixputer-071203.jpg [ 126.3 KiB | Viewed 3037 times ]

_________________
:eugeek: https://twitter.com/Shaos1973
16 May 2016 17:21
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17209
Location: Colorado
Reply with quote
Итак, получается, что через интерфейс NI-23 можно подключить:
0x2000...0x2FFF - видеопамять для двух текстовых экранов
0x3100...0x36FF - дополнительные устройства ввода-вывода
0x3C00...0x3FFF - ещё две шины NI-15 (3rd & 4th)
0xA000...0xBFFF - пятое окно (/CS_WIN5)
Кроме того путём перепрограммирования 16V8 можно высвободить место в четвёртом окне, т.к. WizNet там занимает только области с 0x8000 до 0x802F и с 0x8400 до 0x87FF (т.е. можно скажем освободить области 0x8100...0x83FF и 0x8800...0x9FFF)
P.S. Возможно шину расширения надо расширить до "NI-25", добавив туда 2 сигнала - выходной синхросигнал 20 МГц и входной запрет осциллятора (чтобы можно было останавливать проц, если он полез в область видеопамяти во время её отрисовки)
P.P.S. Либо перенести всё что есть из окна 1 (RTC, регистр REG3 и шины NI-15) в окно 4, растолкав между областями, используемыми в WizNet, освободив при этом окно 1 полностью...

_________________
:eugeek: https://twitter.com/Shaos1973


16 May 2016 20:10
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17209
Location: Colorado
Reply with quote
Shaos wrote:
P.P.S. Либо перенести всё что есть из окна 1 (RTC, регистр REG3 и шины NI-15) в окно 4, растолкав между областями, используемыми в WizNet, освободив при этом окно 1 полностью...


Освобождая окно WIN1 можно скажем RTC и регистр REG3 воткнуть между регистрами и сокетами WizNET, а области NI-15 расположить после сокетов:

0x80XX - область регистров WizNET
0x81XX - ??????? (проще всего присовокупить эту область к предыдущей и никогда не использовать)
0x82XX - REG3 (обязав программистов обращаться только к 0x82F3 чтобы в будущем можно было больше регистров поддержать?)
0x83XX - RTC
0x84XX - область первого сокета WizNET
0x85XX - область второго сокета WizNET
0x86XX - область третьего сокета WizNET
0x87XX - область четвёртого сокета WizNET
0x88XX - BUS1
0x89XX /
0x8AXX - BUS2
0x8BXX /
0x8CXX - BUS3 (расширение на будущее)
0x8DXX /
0x8EXX - BUS4 (расширение на будущее)
0x8FXX /

а следующие далее 4K (от 0x9000 до 0x9FFF) можно логически присоединить к окну WIN5 (от 0xA000 до 0xBFFF) получив 12К подряд, в которых скажем можно расположить графический экран по типу Специалиста :o

P.S. Выходящий наружу /CS_WIN5 можно переименовать в /CS_WIN1 и формировать соответствующе, чтобы он мог скажем подключать внешний ROM-картридж с 2*8K-слов...

_________________
:eugeek: https://twitter.com/Shaos1973


19 May 2016 16:32
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17209
Location: Colorado
Reply with quote
Есть чуть более навороченные PIC17C7XX, которые имеют больше ног и больше переменных, а также многоканальный 10-битный АЦП, второй COM-порт, модуль SPI/I2C, ну и кроме того позволяют программироваться "In-Circuit", хоть и тоже однократки:


Attachments:
File comment: PIC17s
pic17s.png
pic17s.png [ 87.59 KiB | Viewed 3003 times ]

_________________
:eugeek: https://twitter.com/Shaos1973
20 May 2016 23:52
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17209
Location: Colorado
Reply with quote
Shaos wrote:
Больше чем через 8 лет я таки решил заказать исправленную версию 1.1 платы, причём по традиции красного цвета и с золотыми контактами :)

Image

Исходники для Eagle плюс герберы: http://nedopc.org/nedopc/17/NedoPC-17-v1_1.zip (1.2 Мб)

...

P.S. seeedstudio.com взяли за 10 красных 4-слойных платок с ENIG:
Quote:
Sub-Total: $157.22
Shipping Cost: $29.05
Total: $186.27

или примерно $18.63 за платку, что в 4.5 раза дешевле версии 1.0, производство которой я заказывал почти 8 лет назад...


Через 13 дней пришли платки :)



Кликабельно...

_________________
:eugeek: https://twitter.com/Shaos1973


23 May 2016 19:19
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 34 posts ]  Go to page Previous  1, 2, 3  Next

Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.