diff options
author | Keith Packard <keithp@keithp.com> | 2009-03-06 22:52:35 -0800 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2009-03-06 22:56:47 -0800 |
commit | cc0495b7028f4b1189a00707d828a68534d1dea2 (patch) | |
tree | a7727c8af99af7781f801a00235a6b9fb8d107f1 /lib/ccdbg-command.c | |
parent | 41289e6d8f1767547a33fea349866e928e44910f (diff) |
Wait for a while when switching the RESET_N line
The cc1111 manual suggests placing a 2.7kΩ resister and 1nF capacitor on the
RESET_N line to filter out noise. This increases the time necessary to reset
the chip to several microseconds which is longer than the interval between
two USB packets. Flush the USB packet queue and sleep for a while after
changing the value on the RESET_N line to make sure the chip sees the state
change.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'lib/ccdbg-command.c')
-rw-r--r-- | lib/ccdbg-command.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/ccdbg-command.c b/lib/ccdbg-command.c index d99e8ff3..74313bdf 100644 --- a/lib/ccdbg-command.c +++ b/lib/ccdbg-command.c @@ -27,11 +27,12 @@ ccdbg_debug_mode(struct ccdbg *dbg) ccdbg_debug(CC_DEBUG_COMMAND, "#\n"); ccdbg_send(dbg, CC_CLOCK|CC_DATA|CC_RESET_N, CC_CLOCK|CC_DATA|CC_RESET_N); ccdbg_send(dbg, CC_CLOCK|CC_DATA|CC_RESET_N, CC_DATA ); + ccdbg_wait_reset(dbg); ccdbg_send(dbg, CC_CLOCK|CC_DATA|CC_RESET_N, CC_CLOCK|CC_DATA ); ccdbg_send(dbg, CC_CLOCK|CC_DATA|CC_RESET_N, CC_DATA ); ccdbg_send(dbg, CC_CLOCK|CC_DATA|CC_RESET_N, CC_CLOCK|CC_DATA ); ccdbg_send(dbg, CC_CLOCK|CC_DATA|CC_RESET_N, CC_DATA|CC_RESET_N); - ccdbg_sync_io(dbg); + ccdbg_wait_reset(dbg); } void @@ -42,11 +43,12 @@ ccdbg_reset(struct ccdbg *dbg) ccdbg_debug(CC_DEBUG_COMMAND, "#\n"); ccdbg_send(dbg, CC_CLOCK|CC_DATA|CC_RESET_N, CC_CLOCK|CC_DATA|CC_RESET_N); ccdbg_send(dbg, CC_CLOCK|CC_DATA|CC_RESET_N, CC_CLOCK|CC_DATA ); + ccdbg_wait_reset(dbg); ccdbg_send(dbg, CC_CLOCK|CC_DATA|CC_RESET_N, CC_CLOCK|CC_DATA ); ccdbg_send(dbg, CC_CLOCK|CC_DATA|CC_RESET_N, CC_CLOCK|CC_DATA ); ccdbg_send(dbg, CC_CLOCK|CC_DATA|CC_RESET_N, CC_CLOCK|CC_DATA ); ccdbg_send(dbg, CC_CLOCK|CC_DATA|CC_RESET_N, CC_CLOCK|CC_DATA|CC_RESET_N); - ccdbg_sync_io(dbg); + ccdbg_wait_reset(dbg); } uint8_t |