Standard Pin Allocation: Open for Comments

Topics regarding the Uzebox hardware/AVCore/BaseBoard (i.e: PCB, resistors, connectors, part list, schematics, hardware issues, etc.) should go here.
User avatar
uze6666
Site Admin
Posts: 4801
Joined: Tue Aug 12, 2008 9:13 pm
Location: Montreal, Canada
Contact:

Standard Pin Allocation: Open for Comments

Post by uze6666 »

Here's a working draft for pin allocation to try to make all variations somewhat "standard". If you think more/other pins should be reserved for future functions, feel free to comment.

Uze

Code: Select all

Pins allocation / reserved
--------------------------
PA0 (ADC0/PCINT0)      : (Joypad) NES/SNES: P1 Data IN
PA1 (ADC1/PCINT1)      : (Joypad) NES/SNES: P2 Data IN 
PA2 (ADC2/PCINT2)      : (Joypad) NES/SNES: Latch 
PA3 (ADC3/PCINT3)      : (Joypad) NES/SNES: Clock 
PA4 (ADC4/PCINT4)      : SPI RAM  CS
PA5 (ADC5/PCINT5)      : (Joypad) /Free
PA6 (ADC6/PCINT6)      : (Joypad) / Free
PA7 (ADC7/PCINT7)      : ESP_PROG

PB0 (PCINT8/XCK0/T0)   : Used for Composite Sync
PB1 (PCINT9/CLKO/T1)   : Reserved for Syncronous clock to other devices
PB2 (PCINT10/INT2/AIN0): Reserved 
PB3 (PCINT11/OC0A/AIN1): Used for AD725 4FSC
PB4 (PCINT12/OC0B/SS)  : AD725 enable
PB5 (PCINT13/MOSI)     : ISP, SD, SPI RAM
PB6 (PCINT14/MISO)     : ISP, SD, SPI_RAM
PB7 (PCINT15/SCK)      : ISP, SD, SPI_RAM

PC0 (SCL/PCINT16)      : Used for video DAC
PC1 (SDA/PCINT17)      : Used for video DAC
PC2 (TCK/PCINT18)      : Used for video DAC
PC3 (TMS/PCINT19)      : Used for video DAC
PC4 (TDO/PCINT20)      : Used for video DAC
PC5 (TDI/PCINT21)      : Used for video DAC
PC6 (TOSC1/PCINT22)    : Used for video DAC
PC7 (TOSC2/PCINT23)    : Used for video DAC

PD0 (PCINT24/RXD0)     : Reserved for UART0 RX (Currently used MIDI IN)
PD1 (PCINT25/TXD0)      : Reserved for UART0 TX
PD2 (PCINT26/INT0)     : 'Soft' Power-on Switch (Fuzebox, Uzebox EX1) (see note 2)
PD3 (PCINT27/INT1)     :  ESP_RST/'Soft' Power-on Switch (AVCore) (see note 2)
PD4 (PCINT28/OC1B)     : LED (power/SD access)
PD5 (PCINT29/OC1A)     : Reserved for Coin Counter (Uzebox JAMMA)
PD6 (PCINT30/OC2B/ICP) : SD Slave select
PD7 (OC2A/PCINT31)     : Used for Audio out 


Notes
-----
1)PORTA current config is for NES/SNES type joysticks.
2)For some reason, the AVCore and Fuzebox did not use the same pin for the "soft power" switch. Hence, in code, both pins must be tested to detect button presses.
havok1919
Posts: 474
Joined: Thu Aug 28, 2008 9:44 pm
Location: Vancouver, WA
Contact:

Re: Standard Pin Allocation: Open for Comments

Post by havok1919 »

uze6666 wrote:Here's a working draft for pin allocation to try to make all variations somewhat "standard". If you think more/other pins should be reserved for future functions, feel free to comment.
The only thing I have 'different' on the 'stamp':

PA4 : Joypad acknowledge (Playstation controllers)
(Conceptually I consider PAx to be "inputs" since they have the ADC and other joypad signals there)

-Clay
Tinctu
Posts: 65
Joined: Sun Aug 31, 2008 2:22 pm

Re: Standard Pin Allocation: Open for Comments

Post by Tinctu »

What about free pins for:
Start
Menu/Pause
onboard buttons?

plus 2x9PIN D-SUB ATARI joystick

or just PSX plugs for PSX gamepads as alternative to NES/SNES???

I love Nintento.I got 2xGBA... but old NES,SNES stuff here in Europe is pretty rare.
And I dont want to broke functional NES,SNES just for UZE...

So OK I will support PSX idea too.PSX gamepads are cheap.[3th party only for 2-5 usd]
Connectors are available.Gamepads are available worldwide (simply I can buy extra long PSX cable).
Image
User avatar
uze6666
Site Admin
Posts: 4801
Joined: Tue Aug 12, 2008 9:13 pm
Location: Montreal, Canada
Contact:

Re: Standard Pin Allocation: Open for Comments

Post by uze6666 »

As designed by Havok, the uzebox (stamp/baseboard) will use PORTA and will support EITHER:

-Two NES or SNES Controllers
-One Atari/Commodore Joystick
-One Sega Genesis Controller
-One Playstation 1/2 Controller
-General Purpose ADC inputs
-General Purpose I/O (5V, CMOS Logic Levels)

If building yourself, use any of the above. Different baseboard could be done to support the different joysticks. Note that there is not enough pins left on the mega644 to support 2 joysticks of any other kind than NES/SNES. It may be feasible using latches on the baseboard.

For more details look this thread:
viewtopic.php?p=313#p313

Since it seems we wont be able to source SNES connectors and molding some seems a bit expensive, I'm starting to get used to the PSX controller idea too... :|

Uze
Tinctu
Posts: 65
Joined: Sun Aug 31, 2008 2:22 pm

Re: Standard Pin Allocation: Open for Comments

Post by Tinctu »

Ohh 2 players only with NES...
OK Uze I will stop my d-sub campaign :D...
I will buy 4-player multitap for NES.
And original 2xNES gamepads.

So is not possible to support 2xPSX??? Only one PSX plug???
havok1919
Posts: 474
Joined: Thu Aug 28, 2008 9:44 pm
Location: Vancouver, WA
Contact:

Re: Standard Pin Allocation: Open for Comments

Post by havok1919 »

Tinctu wrote:Ohh 2 players only with NES...
OK Uze I will stop my d-sub campaign :D...
I will buy 4-player multitap for NES.
And original 2xNES gamepads.
Unless someone can find a supplier of the SNES or NES connectors, the only options we have are DB9 or PSX. (I have PSX connectors that work for PCB mounting from another project.) [EDIT: I'm still going after tooling/molding, but first I'll ask Andre. Maybe he wants to make some money on his NES connectors.]
So is not possible to support 2xPSX??? Only one PSX plug???
Well you could, it would just take another 'select' line for the second pad. Could use PA5... We're just trying to think up "standard" configurations so that people could build/use different implementations depending on what they have available and it all would "just work". (So for example, any controller with with U/D/L/R and a few buttons could play any game, but something like a Vectrex controller or a PSX DualShock with 'analog' positioning could be preferable for an Arkanoid clone, etc.)

Thinking about it some more, for some applications a PS/2 style keyboard or mouse might work too. (I think the keyboard or mouse generate the serial clock though, so it might be tough to read during video generation...) Could even use old PC joysticks with the DB-15 connector. (Sense the position with the ADC.)

-Clay
Tinctu
Posts: 65
Joined: Sun Aug 31, 2008 2:22 pm

Re: Standard Pin Allocation: Open for Comments

Post by Tinctu »

I got brand new Quickshoot PC joy at home... :D
6845
Posts: 3
Joined: Fri Sep 05, 2008 10:19 pm

Re: Standard Pin Allocation: Open for Comments

Post by 6845 »

Hello folks,

I would like 2 have 2 psx controllers.
My hint is to use a 6 I/O Port
5 signals for the psx controller, and 1 signal to switch this 5 signals to the 2nd pad.
if this is too complicated you could use a small pic cpu to map the 2 psx controlla to a 3 wire protocol .... (clk, data, strobe)

Just an Idea,
Kind regards
6845
havok1919
Posts: 474
Joined: Thu Aug 28, 2008 9:44 pm
Location: Vancouver, WA
Contact:

Re: Standard Pin Allocation: Open for Comments

Post by havok1919 »

6845 wrote:I would like 2 have 2 psx controllers. My hint is to use a 6 I/O Port
5 signals for the psx controller, and 1 signal to switch this 5 signals to the 2nd pad.
if this is too complicated you could use a small pic cpu to map the 2 psx controlla to a 3 wire protocol .... (clk, data, strobe)
Like I said a couple posts up above, you can use two PSX controllers-- the second controller just needs its own select line. (I didn't want to go taking too many "free" lines on the AVR, so I didn't try to dedicate one, but if we stick to the "PORTA is controllers" idea then just use PA6 for the second controller select. All the other lines go to the PSX pads in parallel, no need to switch or mux anything.

The PSX protocol is really just about like four wire SPI anyway-- it has an 'ack' line added, but that's all.

-Clay
havok1919
Posts: 474
Joined: Thu Aug 28, 2008 9:44 pm
Location: Vancouver, WA
Contact:

Re: Standard Pin Allocation: Open for Comments

Post by havok1919 »

6845 wrote:Kind regards
6845
6845-- I gotta ask, is your user ID a reference to the old Motorola CRT controller IC?

-Clay
Post Reply