Rock64 Boot-up Bug with Serial Console Cable
#1
Bug 
Greetings,

The Rock64 often will not boot-up with a serial console connected to the console uart pins (6, 8, & 10).

Symptom:  lights come on, nothing happens at all.

Solution:  unplug the Tx line coming in on pin(10) prior to applying power for boot-up.




The Tx line often (if not always) has 3v3 on it when the other end is powered up, even in the idle state.  This voltage present on pin(10) of the Rock64 prevents it from booting, sadly.  I have reliably verified that unplugging the Tx line in on pin(10) of the Rock64 will allow the boot-up to start...  as it boots up , carefully plug the Tx line back onto pin(10).

Also noticed that the Tx line (if left connected to pin[10] on Rock64 power-down) will back-feed into the board, which will dimly light the red LED (small glow) !  This back-feed is preventing boot-up.

Fortunately the serial console monitor does not need this line connected to monitor as long as it has the Rx connection and a good ground,  so unplugging the line from pin(10) does not prevent monitoring the boot-up messages on the serial console.

Note:   This problem occurs on both of my boards;  dev board pre production, and the production master-piece which came last week !

Note:   At this point I don't know if the current draw on the Tx line might damage the monitor ; currently I'm using my PineA64 desk machine as the serial monitor for my Rock64 boards.


marcushh777    Cool

please join us for a chat @  irc.pine64.xyz:6667   or ssl  irc.pine64.xyz:6697

( I regret that I am not able to respond to personal messages;  let's meet on irc! )
  Reply
#2
(08-24-2017, 04:33 PM)MarkHaysHarris777 Wrote: Greetings,

The Rock64 often will not boot-up with a serial console connected to the console uart pins (6, 8, & 10).

Symptom:  lights come on, nothing happens at all.

Solution:  unplug the Tx line coming in on pin(10) prior to applying power for boot-up.


The async serial standard dictates a "marking" or "1" condition as idle which is a negative voltage on ancient RS232 circuits, but positive 3.3 or 5 volts on TTL so the serial line will idle at that level - and placing ANY voltage on a SOC's input pins prior to proper power up is very bad juju since it can result in SCR latchup of the SOC frying the chip - so you are lucky that it's just causing a recoverable boot issue.

This is tough to fix in software since it involves direct current leakage at the hardware level.

There are several simple fixes to safely prevent this while maintaining full serial console functionality.

1)  Hardware - use a USB - TTL adaptor cable with an open collector TX driver (may also need 10k pullup to the Rock64 3.3 volt rail if the SOC internal pullup is not enabled on pin 10)

2) Hardware  - add a simple 2n2222 or similar NPN switching transistor (or logic level n-channel mosfet) buffer.  The NPN transistor collector is connected to the Rock64's Serial Console IN on pin 10, the base is connected to the Rock64 3.3 volt supply rail through a 4.7K resistor, and the emitter goes to the TX OUT of your USB-TTL serial converter (depending on whether software on-chip pullup is enabled on pin 10, may also need a 10k pullup from pin 10 to the Rock64's GPIO to the Rock64 3.3volt supply rail).

3) Hardware/Software  - and lastly, the simplest fix from a hardware point of view, but one that may require  minor software patches is to add a 10k series resistor between the USB-TTL converter TX OUT and Rock64 pin 10 UART2_RX console input - and then make sure that the console port has no pullup enabled in software and is set to 56k or lower baudrate. Serial port configuration changes may be needed for this to work because the serial port won't work reliably with a series resistor at high data rates or when working against a strong on chip pullup.  Big downside to this is that the port will oscillate or pick up noise if not terminated with a pullup if there is no console connected. Some SOC's provide a 'weak pullup' to get around this type of situation, but I am not sure that this is available with the RK3328.

If you are handy with a soldering iron the 2n2222 or equivelent low level switching transistor fix is probably simplest.  All these fixes assume that the issue is purely a power up sequence current leakage issue that can be fixed by limiting current flow into the serial port prior to the Rock64 powering up.

All bets are off if there is also a software issue regarding the port seeing a ttl "1" condition too early in the boot sequence.
  Reply


Possibly Related Threads...
Thread Author Replies Views Last Post
  My Rock64 died (with a happy ending!) rmbusy 1 98 08-15-2019, 06:48 PM
Last Post: tllim
Information Brushless Fan (5v) for Rock64 Clear Case Soft PWM Drive 2N2222 MarkHaysHarris777 7 4,197 07-09-2019, 06:15 AM
Last Post: merwone
  Rock64 stereo audio dac add-on board with RockPro64 Tim13 1 108 07-08-2019, 07:15 PM
Last Post: tllim
  Rock64's temperature while being in aluminium case _zernok 3 339 06-23-2019, 08:00 AM
Last Post: rasputin
  Rock64 Stereo Audio DAC add-on board Hukmut 3 485 06-15-2019, 07:56 AM
Last Post: MiiCode2
Smile wooden case for ROCK64 killor 12 2,310 05-05-2019, 07:45 AM
Last Post: killor
  Boot from M.2/USB 3 Max_H 8 732 05-03-2019, 02:56 AM
Last Post: Monstercrunch
  Will Gert's VGA666 adapter work with the Rock64? Other display options? pcosm 0 61 05-03-2019, 01:32 AM
Last Post: pcosm
  Is my Rock64 is dead ? totalgaara 9 685 04-30-2019, 03:03 AM
Last Post: totalgaara
  Rock64 and USB 3.0 HDD + USB 2.0 CC2531 doungle ABoosh 3 330 03-19-2019, 09:19 AM
Last Post: azacan

Forum Jump:


Users browsing this thread: 1 Guest(s)