summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2010-04-08 17:28:17 -0700
committerKeith Packard <keithp@keithp.com>2010-04-08 17:28:17 -0700
commitf93c9bf3695862db31f2c3b3bc5a7bb24ef3766c (patch)
tree1ed89e228c19c89b6c420f2b811c71b60d8973a6 /src
parentbaaaac499cfbc1286ae55374cfdc796d32983b92 (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>
Diffstat (limited to 'src')
-rw-r--r--src/ao_dbg.c14
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