Difference between revisions of "PineCone"

Jump to navigation Jump to search
(Formatting updates, add some more info about USB-C issue)
(Expand JTAG info)
Line 34: Line 34:
** 32 pin QFN 4mm x 4mm
** 32 pin QFN 4mm x 4mm
* JTAG support (See below for BL602 impact)
* JTAG support (See below for BL602 impact)
** BL602 multiplexes four GPIO pins to provide the familiar JTAG lines
 
{| class="wikitable"
[[File:BL602_Block_Diagram.jpg|600px]]
|+ GPIO multiplexing of JTAG pins
 
 
== JTAG ==
{| class="wikitable floatright"
|+ Default JTAG pins
|-
|-
| GPIO Pin || JTAG Pin
| GPIO Pin || JTAG Pin
Line 50: Line 54:
|}
|}


The chip boots with these lines in JTAG mode.
BL602 multiplexes four GPIO pins to provide the familiar JTAG lines. See the accompanying table for the default pin mappings.


[[File:BL602_Block_Diagram.jpg|600px]]
These are the default JTAG pins in use after a cold boot. However, many pieces of software, including the demo that's installed by default on new PineCones, remap these pins to other functions. You cannot use the default wiring for JTAG while such software is running. This issue is especially prevalent on the PineCone because three of the default JTAG pins are connected to the onboard RGB LED. Nothing about the LED itself interferes with JTAG, but any program that uses the LED will necessarily remap some of the default JTAG pins to be GPIO.
 
The MaskROM download mode that the BL602 enters when you tie GPIO8 high does '''not''' remap the default JTAG pins, and so you can and should use that mode while checking basic functionality of your JTAG adapter.
 
Note that, just as software can remap the default JTAG pins to be something else, it can also remap other pins to be JTAG. Control over this is quite granular, with 5-6 candidate pins for each individual JTAG signal that can be mapped independently of one another. LEE Lup Yuen has written some [https://lupyuen.github.io/articles/openocd#free-the-led-from-jtag-port sample code] showing how to remap the JTAG pins so that your software can use the LED without giving up support for debugging.