- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm trying to use ClientControl.exe to download and *.hcd file to RAM on a 20706. I'm interfacing with the 20706 with and 4-wire FTDI cable. The 20706 is powered by a host, but otherwise isolated from the host.
I'm getting an error regarding updating the baudrate. With a logic analyzer, I've verified that the 20706 is not responding to the update baudrate command, whereas it is responding to the reset command.
ClientControl.exe doesn't seem to change it's behavior based on the "Upgrade to 3M baudrate" button.
The 20706 has never been programmed.
Thoughts?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Fixed in WICED 6.1. I was using 6.0.1. Looks like there's been some improvements to the serial programming code in ClientControl:
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Update: ClientControl.exe does change it's behaviour based on the "Upgrade to 3M Baudrate" button, but it still issues an baudrate upgrade command. For example, if the serial port is set to 115200, and the button is unchecked, ClientControl.exe will request to upgrade the baudrate to 115200. This doesn't make sense, but regardless, the 20706 does not respond to the command.
Thoughts?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
After the baudrate upgrade attempt, ClientControl also issues:
19 08 00 02 00 01 01 19 09 00 01 00 01 19 02 FF 00 00
I'm not sure what this command is
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It almost looks like three Wiced HCI commands:
19 08 00 02 00 01 01 - Set visibility (Discoverable and Connectable)
19 09 00 01 00 01 - Set pairing mode
19 02 FF 00 00 - Misc command, get version
Again, ClientControl issues these commands after an HCI reset, upgrade baudrate command, before giving up on the download and reporting an error.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I also tried this with mbt.exe instead of ClientControl.exe and found the mbt.exe is also trying to change the baudrate and getting no response from the 20706.
I then recompiled mbt.exe, commenting out the call to execute_change_baudrate, and found that the download was successful.
Any explanation as to why a factory IC does not respond to change baudrate?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Actually download proceeds, but gets stuck sending record at 0x247fa6
Thoughts?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Compilation with DIRECT_LOAD=1 build gives
Patches start at 0x000D0200 (RAM address)
Patches end at 0x000DC520 (RAM address)
Application starts at 0x00217A38 (RAM address)
Application ends at 0x00226D44 (RAM address)
but first HCI record being written to 0x240518
mbt.exe is also loading a mindriver. Isn't that for external flash?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
So my colleague tells me that my code is too big. But I simply compiled the headset demo app with DIRECT_LOAD=1 build
Patches start at 0x000D0200 (RAM address)
Patches end at 0x000DC520 (RAM address)
Application starts at 0x00217A38 (RAM address)
Application ends at 0x00226D44 (RAM address)
Patch size 49952 bytes
Application size 62220 bytes
------
Total RAM footprint 112172 bytes (109.5kiB)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
in the platform makefile, there's a direct_load_base addr of 0x2404f0. Perhaps that is affecting things????
CHIP := 20703
CHIP_REV := A2
CHIP_FLAVOR := 20706
BASE_LOC ?= rom
SPAR_LOC ?= ram
TOOLCHAIN ?= Wiced
PLATFORM_NV ?= SFLASH
PLATFORM_STORAGE_BASE_ADDR := 0xFF000000
PLATFORM_BOOTP := $(PLATFORM_MAKE)_$(PLATFORM_NV).btp
PLATFORM_MINIDRIVER := uart.hex
PLATFORM_CONFIGS := $(PLATFORM_MAKE).cgs
PLATFORM_IDFILE := CYW20706A2_IDFILE.txt
PLATFORM_BAUDRATE := AUTO
PLATFORM_DIRECT_LOAD_BASE_ADDR := 0x2404F0
APP_PATCH_DIR := brcm/wiced_uart
MINIDRIVER_DOWNLOAD :=
ifdef USE_256K_SECTOR_SIZE
CONFIG_DS_LOC_OVERRIDE := -O DLConfigVSLocation:0x80000 -O DLConfigVSLength:0x40000 -O ConfigDSLocation:0x100000
BTP_OVERRIDE_DL := -O DLSectorEraseMode:"Written sectors only"
endif
MINIDRIVER_DOWNLOAD := -MINIDRIVER $(SOURCE_ROOT)Platforms/$(PLATFORM_FULL)/$(PLATFORM_MINIDRIVER)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The smaller hello_client app works with direct load. Final record written to 0x216cd4
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Fixed in WICED 6.1. I was using 6.0.1. Looks like there's been some improvements to the serial programming code in ClientControl: