Line 24:
Line 24:
=== DWM-W015 ===
=== DWM-W015 ===
−
http://www.flickr.com/photos/micahdowty/3846960965/sizes/o/in/photostream/
+
[http://www.flickr.com/photos/micahdowty/3846960965/sizes/o/in/photostream/ Image source]
+
+
[[Image:Dwm-w015-scanlime.jpg|800px]]
=== DWM-W015A ===
=== DWM-W015A ===
Line 35:
Line 37:
[[Image:Dwm-w024.jpg|800px]]
[[Image:Dwm-w024.jpg|800px]]
+
+
== Debugging the Ath6k Xtensa CPU ==
+
+
In case you want to run your own code on it (and subsequently need to debug it), the Atheros chip has two debug facilities: UART and JTAG. UART is a simple serial connection for printf-debugging, while JTAG can be used for single-stepping, breakpoints, etc.
+
+
'''NOTE THAT BOTH UART AND JTAG USE 1.8V LOGIC LEVELS. DO NOT DRIVE WITH 3.3 OR 5.0 V!!!'''
+
+
=== UART ===
+
+
Serial communication on the Xtensa side can be done as [https://problemkaputt.de/gbatek-dsi-atheros-wifi-internal-i-o-00c000h-serial-uart-hw2-hw4-hw6.htm described in GBATEK]. On the DWM-W015, the UART testpoints appear on the bottom side of the PCB, near the edge (see below). On the DWM-W024, RX and TX are probably one of the four testpoints on the top side (see above).
+
+
[[Image:Dwm-w015-bottom-marked.jpg|400px]]
+
+
=== JTAG ===
+
+
The four primary JTAG pins are exposed on the connector to the main board. However, the AR6002 has two extra pins that control JTAG functionality: JTAG_nRST and EJTAG_RST. They are marked in the image below, and they work as follows:
+
+
* '''JTAG_nRST''' resets the CPU core when pulled low. Some debuggers use this signal.
+
* '''EJTAG_RST''' is latched on chip powerup. If high, after a 'system' reset (read: the nWIFI_RST on the connector is pulled low), the Xtensa CPU is held at reset until JTAG_nRST is brought high. If EJTAG_RST is low, nothing special happens.
+
+
Thus, if your debugger has a JTAG_nRST signal (and you want to use it), pull EJTAG_RST to VDD18, and connect JTAG_nRST to your debugger. Otherwise, pull EJTAG_RST to ground (or leave it floating as-is, it probably has an internal pulldown).
+
+
As debugger, OpenOCD (or its fork for the ESP32) and any JTAG dongle compatible with it should work. '''Note that all JTAG communications use 1.8V! Using a higher voltage will kill the AR6002!'''
+
+
[[Image:Dwm-w015-top-marked.jpg|400px]]
+
+
=== DWM-W024 testpoints ===
+
+
The DWM-W024 has four testpoints with currently-unknown functionality. These are probably UART TX, UART RX, JTAG_nRST, and EJTAG_RST. However, which testpoint is which signal is not yet known.
== Documents and external links ==
== Documents and external links ==