Program to allow ISP programming of custom LPC1768 ICs on custom PCBs.

Dependencies:   mbed

Revision:
0:fab931a2c13b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sun Feb 19 10:33:26 2012 +0000
@@ -0,0 +1,61 @@
+#include "mbed.h"
+
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
+
+Serial pc (USBTX,USBRX);
+Serial target (p28,p27);
+
+// We'll drive this low, and then set the as inputs
+// this mimics an open collector style ouput
+DigitalInOut reset (p29);
+DigitalInOut isp   (p30);
+
+int main() {
+
+    pc.baud(19200);
+    target.baud(19200);
+   
+    // ISP Input with pullup
+    isp.input();
+    isp.mode(PullUp);
+
+    // pulse reset low
+    reset.output();
+    reset = 0;
+    wait (0.01);
+    
+    // reset input, with pullup
+    reset.input();
+    reset.mode(PullUp);
+    
+    while (!pc.readable()) {}   
+   
+    // pull ISP and nReset low
+    reset.output();
+    isp.output();
+    reset = 0;
+    isp = 0;
+    
+    wait (0.1);
+    
+    // Bring target out of reset
+    reset.input();
+    reset.mode(PullUp);
+    
+    wait (0.1);
+
+    while (1) {
+    
+        if (pc.readable()) {
+            target.putc(pc.getc());
+            led1 = !led1;
+        }
+    
+        if (target.readable()) {
+            pc.putc(target.getc());
+            led2 = !led2;
+        }
+    
+    }
+}