diff options
author | Keith Packard <keithp@keithp.com> | 2010-04-08 17:28:17 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2010-04-08 17:28:17 -0700 |
commit | f93c9bf3695862db31f2c3b3bc5a7bb24ef3766c (patch) | |
tree | 1ed89e228c19c89b6c420f2b811c71b60d8973a6 | |
parent | baaaac499cfbc1286ae55374cfdc796d32983b92 (diff) |
When changing RESET line, delay 20ms
The GPS data sheet suggests a 1uF cap on the reset line to ensure it
is held low long enough for the power supply to come up to voltage. TM
v1.0 loads a 0.001uF cap there, but in case that isn't large enough,
it could be replaced with the larger one. This change makes sure that
even with that larger value, the debugging link will be able to reset
the target.
Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r-- | src/ao_dbg.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/ao_dbg.c b/src/ao_dbg.c index d0633f92..2fc266e3 100644 --- a/src/ao_dbg.c +++ b/src/ao_dbg.c @@ -184,6 +184,12 @@ ao_dbg_long_delay(void) _asm nop _endasm; } +static void +ao_dbg_reset_delay(void) +{ + ao_delay(AO_MS_TO_TICKS(20)); +} + void ao_dbg_debug_mode(void) { @@ -192,7 +198,7 @@ ao_dbg_debug_mode(void) ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA|DBG_RESET_N); ao_dbg_long_delay(); ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, 0 |DBG_DATA| 0 ); - ao_dbg_long_delay(); + ao_dbg_reset_delay(); ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA| 0 ); ao_dbg_long_delay(); ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, 0 |DBG_DATA| 0 ); @@ -200,7 +206,7 @@ ao_dbg_debug_mode(void) ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA| 0 ); ao_dbg_long_delay(); ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, 0 |DBG_DATA|DBG_RESET_N); - ao_dbg_long_delay(); + ao_dbg_reset_delay(); } void @@ -211,7 +217,7 @@ ao_dbg_reset(void) ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA|DBG_RESET_N); ao_dbg_long_delay(); ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA| 0 ); - ao_dbg_long_delay(); + ao_dbg_reset_delay(); ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA| 0 ); ao_dbg_long_delay(); ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA| 0 ); @@ -219,7 +225,7 @@ ao_dbg_reset(void) ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA| 0 ); ao_dbg_long_delay(); ao_dbg_send_bits(DBG_CLOCK|DBG_DATA|DBG_RESET_N, DBG_CLOCK|DBG_DATA|DBG_RESET_N); - ao_dbg_long_delay(); + ao_dbg_reset_delay(); } static void |