{"id":63,"date":"2012-03-09T22:05:28","date_gmt":"2012-03-09T22:05:28","guid":{"rendered":"http:\/\/www.dognmonkey.com\/ihp307x\/?p=63"},"modified":"2012-10-21T18:06:26","modified_gmt":"2012-10-21T18:06:26","slug":"program-pic18f8722-at-hp3070","status":"publish","type":"post","link":"https:\/\/www.dognmonkey.com\/ihp307x\/program-pic18f8722-at-hp3070.html","title":{"rendered":"Program PIC18F8722 At HP3070"},"content":{"rendered":"<p style=\"text-align: center;\"><em>I had to program PIC28F8722 micro controller at ICT test station. I found a solution for less than $300. and some custom fixture designs. The main board design must have a 5 pins header which has ICT test points. MCLR, DATA, SCLK, GND, VCC.<\/em><\/p>\n<p style=\"text-align: center;\"><em>I found a PIC program to go on the internet for $200 including shipping. This box can be loaded with our firmware in hex using a usb port and programs the board under test through these 5 pin header. This box is designed to manually program each board, therefore, it has the program button on it. There are 3 LEDs to show the status of the process, program, idle, power on. To automate this box through ICT test plan, I need to wire power, program button, all LEDs to the fixture for complet automatic testing without operator interaction.<br \/>\n<\/em><\/p>\n<p>[non-members]please <a rel=\"lightbox[60% 80%]\" title=\"Register ihp307x website\" href=\"http:\/\/www.dognmonkey.com\/ihp307x\/wp-login.php\">log in<\/a> to continue reading&#8230; Thanks[\/non-members][members]<\/p>\n<p style=\"text-align: center;\"><em><a class=\"preview\" title=\"Program To Go Black Box\" href=\"\/media\/hp3070\/picprogram\/sm_pic48.JPG\" rel=\"shadowbox[pic]\"><img loading=\"lazy\" decoding=\"async\" style=\"vertical-align: baseline; border: 3px solid black;\" title=\"PIC Programming box\" src=\"\/media\/hp3070\/picprogram\/tn_pic48.JPG\" alt=\"PIC programming box\" width=\"300\" height=\"169\" \/><\/a>\u00a0\u00a0\u00a0\u00a0 <a class=\"preview\" title=\"Connect important pins to system\" href=\"\/media\/hp3070\/picprogram\/sm_pic1.JPG\" rel=\"shadowbox[pic]\"><img loading=\"lazy\" decoding=\"async\" style=\"vertical-align: baseline; border: 3px solid black;\" title=\"Connect important pins to system\" src=\"\/media\/hp3070\/picprogram\/tn_pic1.JPG\" alt=\"Connect to system\" width=\"300\" height=\"169\" \/><\/a><\/em><\/p>\n<p style=\"text-align: center;\"><a class=\"preview\" title=\"Another fixture connection\" href=\"\/media\/hp3070\/picprogram\/sm_pic40.JPG\" rel=\"shadowbox[pic]\"><img loading=\"lazy\" decoding=\"async\" style=\"vertical-align: baseline; border: 3px solid black;\" title=\"Another fixture connection\" src=\"\/media\/hp3070\/picprogram\/tn_pic40.JPG\" alt=\"another fixture\" width=\"300\" height=\"169\" \/><\/a>\u00a0\u00a0\u00a0\u00a0 <a class=\"preview\" title=\"Green Yellow Red LEDs status\" href=\"\/media\/hp3070\/picprogram\/sm_pic49.JPG\" rel=\"shadowbox[pic]\"><img loading=\"lazy\" decoding=\"async\" style=\"vertical-align: baseline; border: 3px solid black;\" title=\"Green Yellow and Red LEDs Status\" src=\"\/media\/hp3070\/picprogram\/tn_pic49.JPG\" alt=\"green yellow and red\" width=\"300\" height=\"169\" \/><\/a><\/p>\n<p style=\"text-align: center;\"><em>In order to detect the LED states for 3 LEDs, we need to write a few custom digital tests to detect the conditions of the status. First, check out all the condition of these LEDs and name the test accordingly, notice the blinking frequencies so we can set the vector cycle. Dependent upon the status, we need to set the vectors correctly.<\/em><\/p>\n<p style=\"text-align: center;\"><em>Green on steady &#8211; Yellow blinking &#8211; Red is OFF (condition)<br \/>\n<\/em><\/p>\n<blockquote>\n<p style=\"text-align: left;\"><em>sequential<br \/>\nreceive delay\u00a0\u00a0 1.4m<br \/>\nvector cycle\u00a0\u00a0\u00a0 1.5m<\/em><\/p>\n<p style=\"text-align: left;\">&#8230;&#8230;<\/p>\n<p style=\"text-align: left;\">unit &#8220;On_blink_off&#8221;<\/p>\n<p style=\"text-align: left;\">repeat 50 times !!Make sure Green is on-Red is off<br \/>\nexecute Green_1<br \/>\nexecute Red_0<br \/>\nend repeat<\/p>\n<p style=\"text-align: left;\">homingloop 500 times\u00a0 !!Detect Yellow 0ff<\/p>\n<p>execute Green_1<br \/>\nexecute Red_0<\/p>\n<p style=\"text-align: left;\">execute Yello_0 exit if pass<br \/>\nend homingloop<\/p>\n<p>homingloop 500 times\u00a0 !!Detect Yellow on<\/p>\n<p>execute Green_1<br \/>\nexecute Red_0<\/p>\n<p>execute Yello_1 exit if pass<br \/>\nend homingloop<\/p>\n<p>homingloop 500 times\u00a0 !!Detect Yellow 0ff<\/p>\n<p>execute Green_1<br \/>\nexecute Red_0<\/p>\n<p>execute Yello_0 exit if pass<br \/>\nend homingloop<\/p>\n<p>end unit<\/p><\/blockquote>\n<p style=\"text-align: center;\"><em>So if this test pass, then that condition is met, we can proceed with the next command according to the programming procedure. Write all the conditions and put in the testplan in a subroutine to execute sequentially as needed.<\/em><\/p>\n<p style=\"text-align: center;\"><em>This is the old subroutine without LEDs detection tests, must have operator interactions.<\/em><\/p>\n<blockquote>\n<p style=\"text-align: left;\"><em><\/em>input &#8220;Are Green LED ON (steady), Yellow LED blinking, Red is off? If they are, Please Press Enter&#8221;,Pic$\u00a0\u00a0\u00a0\u00a0\u00a0 !! So we need a test to detect this.<br \/>\nif Pic$=&#8221;&#8221; then<br \/>\nwait 1<br \/>\ngpconnect 20648 to 20649<br \/>\nwait 1<br \/>\ngpdisconnect 20648 from 20649<br \/>\nend if<br \/>\ninput &#8220;Are RED &amp; GREEN ON and YELLOW is OFF? Please Press Enter for YES (wait 50 secs) and type n for NO&#8221;,Pic$\u00a0 !! So we need another test to detect this.<br \/>\nif Pic$=&#8221;n&#8221; then<br \/>\nprint tab(5);&#8221;Please Check U4 and Power connection&#8221;<br \/>\nfail device<br \/>\nprint tab(5);&#8221;Please Check U4 and retest&#8221;<br \/>\nreport &#8220;u4 is not programmed&#8221;<br \/>\nelse<br \/>\nwait 25<br \/>\nend if<br \/>\ninput &#8220;Are Green LED ON (steady), Yellow LED blinking, Red is OFF? Please Press Enter for YES and Type n for NO&#8221;,Pass1$<br \/>\nif Pass1$=&#8221;&#8221; then<br \/>\nprint tab(5); &#8220;PIC18F8722 is Programmed&#8221;<br \/>\nreport &#8220;PIC is Programmed&#8221;<\/p>\n<p style=\"text-align: center;\"><em>Make sure when we program the PIC, use the board power to turn on the PIC and NOT the programming box. Also when program the ROM, select checksum verify.<\/em><\/p>\n<p>[\/members]<\/p>\n<p style=\"text-align: center;\"><ul class=\"lcp_catlist\" id=\"lcp_instance_0\"><\/ul><\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>I had to program PIC28F8722 micro controller at ICT test station. I found a solution for less than $300. and some custom fixture designs. The main board design must have a 5 pins header which has ICT test points. MCLR, DATA, SCLK, GND, VCC. I found a PIC program to go on the internet for <a href=\"https:\/\/www.dognmonkey.com\/ihp307x\/program-pic18f8722-at-hp3070.html\" class=\"more-link\">&#8230;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[15],"class_list":["post-63","post","type-post","status-publish","format-standard","hentry","category-tips-and-tricks","tag-pic18f8722"],"views":1222,"_links":{"self":[{"href":"https:\/\/www.dognmonkey.com\/ihp307x\/wp-json\/wp\/v2\/posts\/63","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dognmonkey.com\/ihp307x\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dognmonkey.com\/ihp307x\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dognmonkey.com\/ihp307x\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dognmonkey.com\/ihp307x\/wp-json\/wp\/v2\/comments?post=63"}],"version-history":[{"count":8,"href":"https:\/\/www.dognmonkey.com\/ihp307x\/wp-json\/wp\/v2\/posts\/63\/revisions"}],"predecessor-version":[{"id":262,"href":"https:\/\/www.dognmonkey.com\/ihp307x\/wp-json\/wp\/v2\/posts\/63\/revisions\/262"}],"wp:attachment":[{"href":"https:\/\/www.dognmonkey.com\/ihp307x\/wp-json\/wp\/v2\/media?parent=63"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dognmonkey.com\/ihp307x\/wp-json\/wp\/v2\/categories?post=63"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dognmonkey.com\/ihp307x\/wp-json\/wp\/v2\/tags?post=63"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}