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
  Display options for the Rock64 joey49 1 118 11-23-2020, 09:52 AM
Last Post: joey49
  RS-485 CAN HAT Rock won’t boot gnvdude 0 99 11-11-2020, 07:04 PM
Last Post: gnvdude
  Are HW design files available for ROCK64? irenek 1 509 09-29-2020, 05:57 PM
Last Post: tllim
  No sound from Rock64 DAC codebreaker 2 382 09-29-2020, 02:14 PM
Last Post: codebreaker
  Which Voltage and Amper to supply both Rock64 + External drive enclosure ? prog-amateur 0 380 08-21-2020, 09:16 PM
Last Post: prog-amateur
Information Rock64 RTL8188EU Wifi Adapter from Pine Store Tested Well MarkHaysHarris777 7 3,082 05-13-2020, 06:00 PM
Last Post: Leon Rembowski
  accident got 12v at my rock64 lifeform 1 696 04-17-2020, 09:46 AM
Last Post: fire219
  Help! Rock64 won't boot anything! trohn_javolta 3 1,147 03-09-2020, 06:03 PM
Last Post: tllim
  USB3 to SATA cable - Firmware Eule 0 494 03-03-2020, 01:31 PM
Last Post: Eule
  Power Supply and Sinks for multi-Rock64 env Davo-CC 1 1,732 01-02-2020, 02:26 PM
Last Post: dpgraham

Forum Jump:


Users browsing this thread: 1 Guest(s)