nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 16 Jun 2019 17:05



Reply to topic  [ 26 posts ]  Go to page 1, 2  Next
Экспериментальный недокомпьютер NedoPC-28 
Author Message
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17828
Location: Colorado
Reply with quote
Под спойлером первая версия платы с бортовым ОЗУ - оставлена тут для истории:

 "первая версия платы"

Предлагаю вашему вниманию схему экспериментальной платы NedoPC-28 v1.0 на основе микроконтроллера Parallax SX28 (максимальная тактовая частота 75 МГц), состоящую всего из 20 корпусов:
NedoPC-28-v1-sch.png (115K)

Файл схемы для Eagle (подготовлено в v4.16 для Linux):
NedoPC-28-v1-eagle.zip (53K)

Внешние контакты платы (указано название разъема и количество пинов в скобках):
JP1 ( 4 ) - разъем тактирования для подключения SX-Blitz (или SX-Key) или самодельной платы с осциллятором или резонатором;
JP2 ( 8 ) - непосредственные входы-выходы микроконтроллера для внешнего использования (RA0,RA1,RA2,RA3,RTCC,RB5,RB6,RB7), причём 4 из них могут являться источниками прерывания работы микроконтроллера (7 i/o, 1 interrupt);
JP3 ( 2 ) - опциональное внешнее подключение ресета;
JP4 ( 8 ) - внешняя шина данных (8 i/o);
JP5 ( 15 ) - шина NI-15 (8 i/o, 5 o);
JP6 ( 8 ) - входной порт (8 i);
JP7 ( 8 ) - входной порт (8 i);
JP8 ( 8 ) - входной порт (8 i);
JP9 ( 8 ) - входной порт (8 i);
JP10 ( 8 ) - входной порт (8 i);
JP11 ( 8 ) - выходной регистр (8 o);
JP12 ( 8 ) - выходной регистр (8 o);
JP13 ( 8 ) - выходной регистр (8 o) выводящий наружу младшие байт внутренней шины адреса;
JP14 ( 8 ) - выходной регистр (8 o) выводящий наружу старший байт внутренней шины адреса.

Итого имеем:
- 1 вход прерываний (RTCC) - не может быть непосредственно использован как вход или выход данных;
- 23 входов-выходов (3 из которых также могут быть запрограммированы как входы прерваний - а именно RB5,RB6,RB7);
- 40 входов (ввод через буфера);
- 37 выходов (вывод через регистры).
т.е. всего 100 возможных входов/выходов для приёма/передачи данных!

На борту находятся два корпуса срамов по 8 килобайт, подсоединённых как одна 16 килобайтная память, в то же время адресующие её сигналы могут быть использованы как выходы (JP13 и JP14).

P.S. Теперь о том как с этой платой предполагается работать. Микроконтроллер SX-28 (IC20) имеет лишь 20 сигналов ввода-вывода и данная плата должна дать возможность использовать большее количество сигналов (а именно 100), но не напрямую. На плате имеется внутренняя шина данных, подключённая к порту C микроконтроллера (RC0...RC7). Место куда эту шину подключать, определяется младшими 4 битами порта B (RB0...RB3), которые дешифруются с помощью IC1 и IC2 (а само действие запускается временным обнулением бита RB4):
0000 ( S0 ) - чтение из бортовой памяти (IC18 или IC19) по ранее сохранённому адресу;
0001 ( S1 ) - чтение с внешней шины данных (JP4) через буфер IC3 (есть возможность использовать буфер не только на вход, но и на выход - см.описание регистра управления);
0010 ( S2 ) - чтение с шины NI-15 (JP5) через буфер IC5;
0011 ( S3 ) - чтение буфера IC7 (JP6);
0100 ( S4 ) - чтение буфера IC10 (JP7);
0101 ( S5 ) - чтение буфера IC11 (JP8);
0110 ( S6 ) - чтение буфера IC12 (JP9);
0111 ( S7 ) - чтение буфера IC13 (JP10);
1000 ( S8 ) - запись в бортовую память (IC18 или IC19) по ранее сохранённому адресу;
1001 ( S9 ) - запись в регистр IC4 (для дальнейшего вывода во внешнюю шину данных JP4);
1010 ( S10 ) - запись в регистр IC6 (для дальнейшего вывода в шину NI-15 через разъём JP5);
1011 ( S11 ) - запись в регистр управления IC8 (о назначении отдельных битов см.ниже);
1100 ( S12 ) - запись в регистр IC14, хранящий младший байт адреса бортовой памяти (байт доступен извне через разъем JP13);
1101 ( S13 ) - запись в регистр IC15, храняший старший байт адреса бортовой памяти (байт доступен извне через разъем JP14);
1110 ( S14 ) - запись в регистр IC16, выход которого доступен через разъем JP11;
1111 ( S15 ) - запись в регистр IC17, выход которого доступен через разъем JP12.

Назначение битов регистра управления IC8 (запись по адресу 1011):
бит 0 - сигнал _CS шины NI-15 (JP5) - может использоваться как обычный выход;
бит 1 - сигнал ALE шины NI-15 (JP5) - может использоваться как обычный выход;
бит 2 - сигнал M_IO шины NI-15 (JP5) - может использоваться как обычный выход;
бит 3 - сигнал _RD шины NI-15 (JP5) - может использоваться как обычный выход;
бит 4 - сигнал _WR шины NI-15 (JP5) - может использоваться как обычный выход;
бит 5 - разрешение вывода данных из регистра IC6 (записанного по адресу 1010) в шину NI-15 (JP5);
бит 6 - разрешение вывода данных из регистра IC4 (записанного по адресу 1001) во внешнюю шину данных (JP4);
бит 7 - управление направлением буфера IC3 (обычно "0", но может быть установлено в "1" для вывода во внешнюю шину данных без защёлкивания через адрес 0001 - при этом бит 6 должен быть установлен в "1", чтобы выход регистра IC4 не шёл в эту шину).

Приведённая выше информация устарела и не может считаться достоверной

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


Last edited by Shaos on 20 Nov 2007 17:35, edited 6 times in total.



12 Nov 2006 13:53
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17828
Location: Colorado
Reply with quote
Post 
Господа у кого есть Eagle - просьба открыть на просмотр мою схемку - мне надо понять, требует ли оно мою либу или в схему уже всё включено...

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


13 Nov 2006 20:41
Profile WWW
Fanat

Joined: 21 Nov 2002 12:09
Posts: 88
Location: E-burg/Russia
Reply with quote
Post 
Shaos wrote:
Господа у кого есть Eagle - просьба открыть на просмотр мою схемку - мне надо понять, требует ли оно мою либу или в схему уже всё включено...
Открылось без проблем, ничего не просит.


14 Nov 2006 09:10
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17828
Location: Colorado
Reply with quote
Post 
Caro wrote:
Shaos wrote:
Господа у кого есть Eagle - просьба открыть на просмотр мою схемку - мне надо понять, требует ли оно мою либу или в схему уже всё включено...
Открылось без проблем, ничего не просит.


Отлично - спасибо!

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


14 Nov 2006 12:28
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17828
Location: Colorado
Reply with quote
Post 
Чего-то не могу развести в пределах разрешённых иглом 100x80 мм - придётся делить на две платы - плату самого SX и плату расширителя портов ввода-вывода...

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


Last edited by Shaos on 28 Nov 2006 21:31, edited 1 time in total.



17 Nov 2006 20:40
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17828
Location: Colorado
Reply with quote
Post 
Shaos wrote:
Чего-то не могу развести в пределах разрешённых иглом 100x80 мм - придётся делить на две платы - плату самого SX и плату расширителя портов ввода-вывода...


Разбил на три платы - две из которых пойдут в производство как одна (потом сам распилю). Это модуль NedoCPU-28, в котором будет сидеть мелкий SX-28 с обвязкой, и модуль NedoMem-16K, в котором будут сидеть два срама по 8K. Вот картинки схемы и получившейся платы. А вот архив с файлами игла и уже подготовленными герберами:

http://nedopc.org/nedopc/28/NedoPC-28-v1_1-eagle.zip (69K)

Плату куда это всё втыкается буду делать завтра...

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


Last edited by Shaos on 28 Nov 2006 21:31, edited 1 time in total.



18 Nov 2006 23:08
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17828
Location: Colorado
Reply with quote
Post 
Shaos wrote:
Разбил на три платы - две из которых пойдут в производство как одна (потом сам распилю). Это модуль NedoCPU-28, в котором будет сидеть мелкий SX-28 с обвязкой, и модуль NedoMem-16K, в котором будут сидеть два срама по 8K. Вот картинки схемы и получившейся платы. А вот архив с файлами игла и уже подготовленными герберами:

http://nedopc.org/nedopc/28/NedoPC-28-v1_1-eagle.zip (69K)

Плату куда это всё втыкается буду делать завтра...


В связи с этим ввожу два новых интерфейса:

NI-3x8 - используется для связи модуля NedoCPU (построенного на базе SX-28 или PIC или какого-то какого-то микроконтроллера) с материнской платой и состоит из трёх расположенных последовательно друг за другом 8-ногих контактов:

Code:
A0
A1
A2
A3
RTCC (или A4, если есть у бортового MCU)
"1" (или A5, если есть у бортового MCU)
+5V
GND

B0
B1
B2
B3
B4
B5
B6
B7

C0
C1
C2
C3
C4
C5
C6
C7


NI-32 - используется для связи модулей NedoMem (до 512К адресуемого пространства) с материнской платой и состоит из 32 контактов, расположенных в два ряда:

Code:
 D0 | A0
 D1 | A1
 D2 | A2
 D3 | A3
 D4 | A4
 D5 | A5
 D6 | A6
 D7 | A7
_RD | A8
_WR | A9
_CS | A10
A18 | A11
A17 | A12
A16 | A13
+5V | A14
GND | A15



В случае платы NedoMem-16K адресные входы A14-A18 не используются

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


Last edited by Shaos on 19 Nov 2006 22:45, edited 2 times in total.



19 Nov 2006 16:12
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17828
Location: Colorado
Reply with quote
Post 
Shaos wrote:
Разбил на три платы - две из которых пойдут в производство как одна (потом сам распилю). Это модуль NedoCPU-28, в котором будет сидеть мелкий SX-28 с обвязкой, и модуль NedoMem-16K, в котором будут сидеть два срама по 8K. Вот картинки схемы и получившейся платы. А вот архив с файлами игла и уже подготовленными герберами:

http://nedopc.org/nedopc/28/NedoPC-28-v1_1-eagle.zip (69K)

Плату куда это всё втыкается буду делать завтра...


Просьба к тем, кто работал с высокими частотами оценить на глаз потолок рабочих частот разводки моего NedoCPU-28 - хотелось бы иметь возможность пускать чип на пределе рабочих частот, а именно 75 МГц (ну или хотя бы 50):

Image

P.S. А вообще, как я понимаю, двухслойная плата нормально с высокими частотами работать не будет - надо покупать стандартную редакцию Eagle и учиться разводить четырёхслойки, где нижний слой - одна сплошная земля...

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


Last edited by Shaos on 23 Nov 2006 11:20, edited 1 time in total.



19 Nov 2006 22:40
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17828
Location: Colorado
Reply with quote
Post 
Shaos wrote:
Разбил на три платы - две из которых пойдут в производство как одна (потом сам распилю). Это модуль NedoCPU-28, в котором будет сидеть мелкий SX-28 с обвязкой, и модуль NedoMem-16K, в котором будут сидеть два срама по 8K.
.......
Плату куда это всё втыкается буду делать завтра...


Третью плату обозвал NedoMama-100 (по количеству гнёзд ввода-вывода)

В результате имеем NedoPC-28 = NedoMama-100 + NedoCPU-28 + NedoMem-16K

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


20 Nov 2006 19:20
Profile WWW
God

Joined: 02 Jan 2006 03:28
Posts: 1387
Location: Abakan
Reply with quote
Я вообще-то не спец по этим вопросам, однако:
В 4-х слойных ПП вроде бы как внутренние 2 слоя VCC и GND.
Помимо изоляции слоев образуют некое подобие емкости.

P.S. Саша, попробуй еще поиграться с длинами дорожек...


22 Nov 2006 09:32
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17828
Location: Colorado
Reply with quote
Post 
Shaos wrote:
Разбил на три платы - две из которых пойдут в производство как одна (потом сам распилю). Это модуль NedoCPU-28, в котором будет сидеть мелкий SX-28 с обвязкой, и модуль NedoMem-16K, в котором будут сидеть два срама по 8K. Вот картинки схемы и получившейся платы. А вот архив с файлами игла и уже подготовленными герберами:

http://nedopc.org/nedopc/28/NedoPC-28-v1_1-eagle.zip (69K)

Плату куда это всё втыкается буду делать завтра...


Image

Получил вчера изготовленные и ускоренно высланные платы - две штуки:

Image

Заплатил $60 за изготовление и $15 за ускоренную доставку (2 дня)

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


23 Nov 2006 07:29
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17828
Location: Colorado
Reply with quote
Post 
Shaos wrote:
Shaos wrote:
Разбил на три платы - две из которых пойдут в производство как одна (потом сам распилю). Это модуль NedoCPU-28, в котором будет сидеть мелкий SX-28 с обвязкой, и модуль NedoMem-16K, в котором будут сидеть два срама по 8K.
.......
Плату куда это всё втыкается буду делать завтра...


Третью плату обозвал NedoMama-100 (по количеству гнёзд ввода-вывода)

В результате имеем NedoPC-28 = NedoMama-100 + NedoCPU-28 + NedoMem-16K


А вот и NedoMama развелась (4 проводка придется напаять - не воткнулись):

Image

Вот большие картинки - схема и плата

Архив с исходниками для Eagle увеличился в размерах включив файлы недомамы:

http://nedopc.org/nedopc/28/NedoPC-28-v1_1-eagle.zip (178K)

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


24 Nov 2006 14:05
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17828
Location: Colorado
Reply with quote
Post 
В связи с разбиением платы на части и иной нумерацией микросхем и разъемов изменилось и описание девайса, который теперь состоит из трёх плат (см. принципиальные схемы тут и тут):

Разъемы платы и количество пинов в скобках:
JP1, JP2, JP3 (24) - подключение платы NedoCPU (NI-3x8);
JP4 ( 8 ) - внешняя шина данных (8 i/o);
JP5 ( 15 ) - шина NI-15 (8 i/o, 5 o);
JP6 ( 8 ) - входной порт (8 i);
JP7 ( 8 ) - входной порт (8 i);
JP8 ( 8 ) - входной порт (8 i);
JP9 ( 8 ) - входной порт (8 i);
JP10 ( 8 ) - входной порт (8 i);
JP11 ( 8 ) - выходной регистр (8 o);
JP12 ( 8 ) - выходной регистр (8 o);
JP13 ( 8 ) - выходной регистр (8 o) выводящий наружу младшие байт внутренней шины адреса;
JP14 ( 8 ) - выходной регистр (8 o) выводящий наружу старший байт внутренней шины адреса.
JP15 ( 8 ) - непосредственные входы-выходы микроконтроллера для внешнего использования (RA0,RA1,RA2,RA3,RTCC,RB5,RB6,RB7), причём 4 из них могут являться источниками прерывания работы микроконтроллера (7 i/o, 1 interrupt);
JP16 (32) - подключение бортовой памяти NedoMem (NI-32).

Итого имеем следующие входы-выходы:
- 1 вход прерываний (RTCC) - не может быть непосредственно использован как вход или выход данных (теоретически может быть использован как вход-выход при подключении другого модуля NedoCPU, построенного к примеру на PIC у которого будет пин A4);
- 23 входов-выходов (3 из которых также могут быть запрограммированы как входы прерваний - а именно RB5,RB6,RB7);
- 40 входов (ввод через буфера);
- 37 выходов (вывод через регистры).
т.е. всего 100 возможных входов/выходов для приёма/передачи данных (отсюда и название материнской платы - NedoMama-100).

Модуль процессора NedoCPU может быть построен на базе другого микроконтроллера ( не SX-28 ) с аналогичным количеством портов, например PIC16F870. В материнскую плату может быть воткнута бортовая память ( например NedoMem-16K ) объемом до 64К, причём адресующие её сигналы могут быть использованы как выходы (JP13 и JP14). На выход NI-15 можно припаять как угловые иголки, для втыкания платы NedoMama-100 вертикально в другую NI-15 материнку либо бредборду (в этом случае преобразователь напряжения 7805 (IC17) можно не припаивать, считая что питание идёт с шины), либо 15 дырчатый разъем-маму для втыкания других NI-15 устройств или простых разветвителей шины NI-15 (типа NedoMama-1) - в таком случае плата располагается горизонтально - разъемами вверх (и в бок), а микросхемами вниз.

Теперь о том как с этим устройством предполагается работать. Микроконтроллер SX-28 ( модуль NedoCPU-28 ) имеет лишь 20 сигналов ввода-вывода и данная плата должна дать возможность использовать большее количество сигналов (а именно 100), но не напрямую. На плате имеется внутренняя шина данных, подключённая к порту C микроконтроллера (RC0...RC7) - разъем JP3. Место куда эту шину подключать, определяется младшими 4 битами порта B (RB0...RB3) - разъем JP2, которые дешифруются с помощью IC1 и IC2 (а само действие запускается временным обнулением бита RB4):
0000 ( S0 ) - чтение из бортовой памяти NedoMem по ранее сохранённому адресу;
0001 ( S1 ) - чтение с внешней шины данных (JP4) через буфер IC3 (есть возможность использовать буфер не только на вход, но и на выход - см.описание регистра управления);
0010 ( S2 ) - чтение с шины NI-15 (JP5) через буфер IC5;
0011 ( S3 ) - чтение буфера IC7 (JP6);
0100 ( S4 ) - чтение буфера IC9 (JP7);
0101 ( S5 ) - чтение буфера IC10 (JP8);
0110 ( S6 ) - чтение буфера IC11 (JP9);
0111 ( S7 ) - чтение буфера IC12 (JP10);
1000 ( S8 ) - запись в бортовую память NedoMem по ранее сохранённому адресу;
1001 ( S9 ) - запись в регистр IC4 (для дальнейшего вывода во внешнюю шину данных JP4);
1010 ( S10 ) - запись в регистр IC6 (для дальнейшего вывода в шину NI-15 через разъём JP5);
1011 ( S11 ) - запись в регистр управления IC8 (о назначении отдельных битов см.ниже);
1100 ( S12 ) - запись в регистр IC13, хранящий младший байт адреса бортовой памяти (байт доступен извне через разъем JP13);
1101 ( S13 ) - запись в регистр IC14, храняший старший байт адреса бортовой памяти (байт доступен извне через разъем JP14);
1110 ( S14 ) - запись в регистр IC15, выход которого доступен через разъем JP11;
1111 ( S15 ) - запись в регистр IC16, выход которого доступен через разъем JP12.

Назначение битов регистра управления IC8 (запись по адресу 1011):
бит 0 - сигнал _CS шины NI-15 (JP5) - может использоваться как обычный выход;
бит 1 - сигнал ALE шины NI-15 (JP5) - может использоваться как обычный выход;
бит 2 - сигнал M_IO шины NI-15 (JP5) - может использоваться как обычный выход;
бит 3 - сигнал _RD шины NI-15 (JP5) - может использоваться как обычный выход;
бит 4 - сигнал _WR шины NI-15 (JP5) - может использоваться как обычный выход;
бит 5 - разрешение вывода данных из регистра IC6 (записанного по адресу 1010) в шину NI-15 (JP5);
бит 6 - разрешение вывода данных из регистра IC4 (записанного по адресу 1001) во внешнюю шину данных (JP4);
бит 7 - управление направлением буфера IC3 (обычно "0", но может быть установлено в "1" для вывода во внешнюю шину данных без защёлкивания через адрес 0001 - при этом бит 6 должен быть установлен в "1", чтобы выход регистра IC4 не шёл в эту шину).

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


24 Nov 2006 14:28
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17828
Location: Colorado
Reply with quote
Post 
Сборка NedoCPU-28:

Image

Image

Собранный вариант с радиатором воткнут в бредборду:

Image

Прошивка через SX-Blitz и работа со встроенным генератором на 4 МГц:

Image

Затем перепрошил на использование HS3 и перебробовал все внешние осцилляторы - вот этот самый быстрый что у меня был - на 66.666 MHz:

Image

Тестовая программа инкрементировала 16-битное число с задержкой и выводила младшее слово в порт B, а старшее в порты A и C:

Code:
#ifndef DEVICE
#define DEVICE pins28+pages1banks1+oschs3+turbo
#endif

   processor sx28

   include "sxdefs.inc"

device   equ   DEVICE

   include "shaosx.inc"

trisb   equ   0x00
initb   equ   0x00

pattern equ   0x08
bigpat   equ   0x09
count1   equ   0x0A
count2   equ   0x0B

   org   0x10

reset:   mode    0x0f
   option

   movlw   initb
   movwf   portc
   movwf   portb
   movwf   porta
   movlw   trisb
   tris    portc
   tris   portb
   tris   porta
   movlw   0x00
   movwf   pattern
   movlw   0xFF
   movwf   bigpat
   movwf   porta
   movwf   portc
loop:
   movrw   pattern
   movwf   portb
   delay2   0x00,count1,count2
   decfsz   pattern,f
   goto   loop
   decf   bigpat,f
   movrw   bigpat
   movwf   porta
   movwf   portc
   goto   loop

   END


К портам подключены светодиоды по которым я мог анализировать скорость счёта. Турбо получается в среднем в 3 раза быстрее обычного режима. Турбо 66.666 МГц быстрее чем турбо 4 МГц в ожидаемые 16 раз.

Теперь бы оценить степень помех, которые генерирует сей девайс на таких частотах - у меня при его работе с генераторами выше 50 МГц создалось ощущение, что волосы на голове зашевелились, постепенно становясь дыбом ;)

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


26 Nov 2006 13:23
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17828
Location: Colorado
Reply with quote
Post 
Shaos wrote:
Shaos wrote:
Третью плату обозвал NedoMama-100 (по количеству гнёзд ввода-вывода)

В результате имеем NedoPC-28 = NedoMama-100 + NedoCPU-28 + NedoMem-16K


А вот и NedoMama развелась (4 проводка придется напаять - не воткнулись):

Image

Вот большие картинки - схема и плата

Архив с исходниками для Eagle увеличился в размерах включив файлы недомамы:

http://nedopc.org/nedopc/28/NedoPC-28-v1_1-eagle.zip (178K)


Вот и подошли недомамы - $115 за 4 штуки с бесплатной доставкой:

Image

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


04 Dec 2006 20:41
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 26 posts ]  Go to page 1, 2  Next

Who is online

Users browsing this forum: No registered users and 0 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.