UART Console: Difference between revisions

From Vita Development Wiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
== UART0 ==
== UART0 ==


The UART0 is a debugging console. The logic level is 1.8V.
The UART0 is a debugging console used by ARM, cMep and Syscon. The logic level is 1.8V.


=== PSTV UART0 location ===
=== PSTV UART0 location ===
[[File:Pstv_uart0.png]]
[[File:Pstv_uart0.png]]


=== OLED PSVita UART0 location ===
=== OLED PSVita UART0 location ===
[[File:vita-1000-uart.png|600px]]
[[File:vita-1000-uart.png|600px]]


Line 12: Line 14:
* First way is to solder directly to the testpads near the PMIC (yellow and cyan points).
* First way is to solder directly to the testpads near the PMIC (yellow and cyan points).


* Second way is through the multi-connector or the testpads above it (blue and red points). To use the multi-connector points though, you need either to tell the syscon to select the Kermit UART (procedure currently unknown) or manually flip the switch (green point to 1.8V).
* Second way is through the multi-connector or the testpads above it (blue and red points). To use the multi-connector points though, you need either to tell Syscon to select [[Kermit]] UART (procedure currently unknown) or manually flip the switch (green point to 1.8V).


The switch is controlled by a [http://www.ti.com/lit/ds/symlink/ts3a5018.pdf TS3A5018] chip and the RTS gate is a [http://toshiba.semicon-storage.com/ap-en/product/logic/one-gate-logic/detail.TC7WG126FK.html TC7WG126FK] chip.
The switch is controlled by a [http://www.ti.com/lit/ds/symlink/ts3a5018.pdf TS3A5018] chip and the RTS gate is a [http://toshiba.semicon-storage.com/ap-en/product/logic/one-gate-logic/detail.TC7WG126FK.html TC7WG126FK] chip.


== UART5 ==
== UART5 ==
The UART5 is a debugging console used for the 3G modem on PS Vita models that have it.


=== OLED PSVita UART5 location ===
=== OLED PSVita UART5 location ===


It is on the PCI-E connector pins 8,10,12,14 is RFR, CTS, TX, RX.
It is on the PCI-E connector pins 8,10,12,14 is RFR, CTS, TX, RX.
* On 3G PSVita units, you can solder to the PCI-E connectors or install yifan's PSVSD.
* On 3G PS Vita units, you can solder to the PCI-E connectors or install yifan lu's PSVSD board.
* On Wifi PSVita units, you need to fill in the 88ohm termination resistors (or just short the pads) and some way to enable it (not known yet).
* On Wifi PS Vita units, you need to fill in the 88ohm termination resistors (or just short the pads) and some way to enable it (not known yet).


== UART initialization/deinitialization code ==
== UART initialization/deinitialization code ==

Revision as of 21:25, 30 August 2021

UART0

The UART0 is a debugging console used by ARM, cMep and Syscon. The logic level is 1.8V.

PSTV UART0 location

Pstv uart0.png

OLED PSVita UART0 location

Vita-1000-uart.png

There are two ways of using UART0:

  • First way is to solder directly to the testpads near the PMIC (yellow and cyan points).
  • Second way is through the multi-connector or the testpads above it (blue and red points). To use the multi-connector points though, you need either to tell Syscon to select Kermit UART (procedure currently unknown) or manually flip the switch (green point to 1.8V).

The switch is controlled by a TS3A5018 chip and the RTS gate is a TC7WG126FK chip.

UART5

The UART5 is a debugging console used for the 3G modem on PS Vita models that have it.

OLED PSVita UART5 location

It is on the PCI-E connector pins 8,10,12,14 is RFR, CTS, TX, RX.

  • On 3G PS Vita units, you can solder to the PCI-E connectors or install yifan lu's PSVSD board.
  • On Wifi PS Vita units, you need to fill in the 88ohm termination resistors (or just short the pads) and some way to enable it (not known yet).

UART initialization/deinitialization code

scePervasiveUartClockEnableForDriver(port); // Turn on clock
scePervasiveUartResetDisableForDriver(port); // Out of reset
sceUartInitForKernel(port);
/*
 * Use UART port (read/write)
 * ...
 */
scePervasiveUartResetEnableForDriver(port); // Put to reset
scePervasiveUartClockDisableForDriver(port); // Turn off clock