WiFi Module: Difference between revisions
→DWM-W024: fix image preview to have a reasonable size |
Xtensa JTAG stuff (yeah) |
||
| (One intermediate revision by the same user not shown) | |||
| Line 13: | Line 13: | ||
== Models == | == Models == | ||
The original DSi DWM-W015 module features two wireless chips; a Mitsumi MM3218 for DS compatibility and a more modern Atheros AR6002G BGA which share the antenna through an RF switch. It also features 1Mbit of SPI EEPROM ([[ | The original DSi DWM-W015 module features two wireless chips; a Mitsumi MM3218 for DS compatibility and a more modern Atheros AR6002G BGA which share the antenna through an RF switch. It also features 1Mbit of SPI EEPROM ([[Media:STM45PE10.pdf|ST M45PE10]]) for NVRAM. It has enough space to store a full copy of the old DS firmware. | ||
The updated DWM-W015A module uses a tiny "5A32" chip as NVRAM (UDFN/XSON, as opposed to the SOIC-sized chip in the older revision). Only the first and last few memory blocks are actually backed by a nonvolatile memory, other addresses return garbage. | The updated DWM-W015A module uses a tiny "5A32" chip as NVRAM (UDFN/XSON, as opposed to the SOIC-sized chip in the older revision). Only the first and last few memory blocks are actually backed by a nonvolatile memory, other addresses return garbage. | ||
| 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 == | ||