Subversion Repositories svn.mios

Rev

Rev 300 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

HEADER 3 MBHP Burner Module

<H1>MIDIbox Hardware Platform, PIC Burner</H1>

<P><CENTER><IMG SRC="mbhp/mbhp_burner.jpg" width=501 height=402></CENTER></P>

<P CLASS=INFO>This programmer has been developed as a more reliable replacement for the (discontinued) MBHP_JDM module. It has to be connected to the parallel port of a PC and requires an external power supply.</P>

<P CLASS=INFO>MBHP_BURNER is compatible to <A HREF="http://www.sprut.de/electronic/pic/projekte/brenner5/index.htm" TARGET="_blank">Brenner5</A> from <A HREF="http://www.sprut.de" TARGET="_blank">sprut.de</A> and can be used to program all PICs of the MBHP, especially for the PIC16F87x and PIC16F88(A) (-> <A HREF="http://www.sprut.de/electronic/soft/pbrenner.htm" TARGET="_blank">PBrenner</A>) and the PIC18F452, PIC18F4550 and PIC18F4620 (-> <A HREF="http://www.sprut.de/electronic/soft/p18/p18.htm" TARGET="_blank">P18</A>) - thanks to sprut.de for this nice piece of software!</P>

<P CLASS=INFO>In difference to "Brenner5", MBHP_BURNER uses a LM317 for an adjustable programming voltage. Pulldown resistors have been added to pin RB5 (for PIC18F) and RB3 (for PIC16F) to ensure that the LVP mode is disabled. The LPT outputs are buffered via Schmitt Triggers, which are especially required for a glitchless clock signal.</P>

<P CLASS=INFO>
<DL>
   <DT><H2> <IMG SRC="images/bullet.gif" ALT=""> NEWBIES: Please note...</H2></DT>
   <DD>
<P CLASS=DESC>If you are planning to build only a small number of MIOS projects, which are based on the PIC18F452 or PIC18F4620, it's highly recommented to buy (a) preprogrammed PIC(s) from <A HREF="http://www.mikes-elektronikseite.de/" TARGET="_blank">Mike</A> or <A HREF="http://mbhp.coinoptech.com" TARGET="_blank">SmashTV</A>. The <A HREF="mios_bootstrap.html">MIOS Bootstrap Loader</A> only has to be programmed once into the PIC, you will be able to upload the <A HREF="mios.html">operating system MIOS</A>, and the <A HREF="mios_download.html">applications</A> via MIDI.</P>
  </DD>
</DL>

<DL>
   <DT><H2> <IMG SRC="images/bullet.gif" ALT=""> Download </H2></DT>
   <DD>
   <DD><TABLE WIDTH="100%" BORDER=0 CELLSPACING=5 CELLPADDING=0>
    <TR>
      <TD COLSPAN=4 CLASS=TABCOLOR1><FONT SIZE=3>PCB data, can be viewed, modified and converted with <A HREF="http://www.cadsoft.de/download.htm" TARGET="_blank">Eagle Light</A></FONT></TD>
    </TR>
    <TR>
      <TD CLASS=TABCOLOR1><FONT SIZE=2><STRONG>Module</STRONG></FONT></td>
      <TD CLASS=TABCOLOR1><FONT SIZE=2><STRONG>Schematic</STRONG></FONT></td>
      <TD CLASS=TABCOLOR1><FONT SIZE=2><STRONG>Layout Data</STRONG></FONT></td>
      <TD CLASS=TABCOLOR1><FONT SIZE=2><STRONG>Quick-view</STRONG></FONT></TD>
    </TR>
    <TR>
      <TD CLASS=TABCOLOR2><I>MBHP_BURNER_V1</I></TD>
      <TD CLASS=TABCOLOR2><A HREF="mbhp/mbhp_burner.pdf">mbhp_burner.pdf</A></TD>
      <TD CLASS=TABCOLOR2><A HREF="mbhp/mbhp_burner_v1.brd">mbhp_burner_v1.brd</A></TD>
      <TD CLASS=TABCOLOR2><A HREF="mbhp/mbhp_burner_v1.gif">mbhp_burner_v1.gif</A></TD>
    </TR>
    <TR>
      <TD CLASS=TABCOLOR2><I>MBHP_BURNER_V1_PLUS</I></TD>
      <TD CLASS=TABCOLOR2><A HREF="mbhp/mbhp_burner.pdf">mbhp_burner.pdf</A> + <A HREF="mbhp/mbhp_burner_16f88_adapter.pdf">mbhp_burner_16f88_adapter.pdf</A></TD>
      <TD CLASS=TABCOLOR2><A HREF="mbhp/mbhp_burner_v1_plusC.brd">mbhp_burner_v1_plusC.brd</A></TD>
      <TD CLASS=TABCOLOR2><A HREF="mbhp/mbhp_burner_v1_plus.gif">mbhp_burner_v1_plus.gif</A><BR><A HREF="mbhp/mbhp_burner_v1_plus.jpg">mbhp_burner_v1_plus.jpg</A></TD>
    </TR>
  </TABLE></DD>

  <DD><TABLE WIDTH="100%" BORDER=0 CELLSPACING=5 CELLPADDING=0>
    <TR>
      <TD COLSPAN=4 CLASS=TABCOLOR1><FONT SIZE=3>Additional informations</FONT></TD>
    </TR>
    <TR>
      <TD CLASS=TABCOLOR1><FONT SIZE=2><STRONG>File</STRONG></FONT></td>
      <TD CLASS=TABCOLOR1><FONT SIZE=2><STRONG>Size</STRONG></FONT></td>
      <TD NOWRAP CLASS=TABCOLOR1><FONT SIZE=2><STRONG>Description</STRONG></FONT></TD>
    </TR>
    <TR>
      <TD CLASS=TABCOLOR2><A HREF="mbhp/mbhp_burner_16f88_adapter.pdf">mbhp_burner_16f88_adapter.pdf</A></TD>
      <TD CLASS=TABCOLOR2>3k</TD>
      <TD CLASS=TABCOLOR2>Programming Adapter for PIC16F88 (used by the <A HREF="mbhp_iic_midi.html">MBHP_IIC_MIDI</A> project)</TD>
    </TR>
    <TR>
      <TD CLASS=TABCOLOR2><A HREF="mbhp/mbhp_burner_orderlist.txt">mbhp_burner_orderlist.txt</A></TD>
      <TD CLASS=TABCOLOR2>1k</TD>
      <TD CLASS=TABCOLOR2><A HREF="http://www.reichelt.de/" TARGET="_blank">Reichelt</A> orderlist</TD>
    </TR>
  </TABLE></DD>
  </DD>
</DL>

<DL>
  <DT><H2> <IMG SRC="images/bullet.gif" ALT=""> Soldering Guide </H2></DT>
  <DD>
  <DD><TABLE WIDTH="100%" CELLSPACING=0 CELLPADDING=0>
    <TR>
      <TD><IMG SRC="mbhp/mbhp_burner_1.jpg" WIDTH=280 HEIGHT=272 BORDER=0 ALT=""></TD>
      <TD CLASS=TABCOLOR2>Start with soldering the 2 bridges which save you from creating a 2-layer board. You can use the cutted legs of caps and resistors, before you throw them away after you finished all the modules! :-)</TD>
    </TR>

    <TR>
      <TD><IMG SRC="mbhp/mbhp_burner_2.jpg" WIDTH=280 HEIGHT=250 BORDER=0 ALT=""></TD>
      <TD CLASS=TABCOLOR2>Stuff the components: IC-socket, Resistors, Caps, Diodes, Transistors, Connectors...</TD>
    </TR>

    <TR>
      <TD><IMG SRC="mbhp/mbhp_burner_3.jpg" WIDTH=281 HEIGHT=195 BORDER=0 ALT=""></TD>
      <TD CLASS=TABCOLOR2>Before putting the ICs into the sockets, adjust the programming voltage like described under "Testing".</TD>
    </TR>

    <TR>
      <TD><IMG SRC="mbhp/mbhp_burner_4.jpg" WIDTH=279 HEIGHT=180 BORDER=0 ALT=""></TD>
      <TD CLASS=TABCOLOR2>Thereafter plug the PIC into the socket and try to program the chip.</TD>
    </TR>

    <TR>
      <TD><IMG SRC="mbhp/mbhp_burner_5.jpg" WIDTH=281 HEIGHT=203 BORDER=0 ALT=""></TD>
      <TD CLASS=TABCOLOR2>Same circuit on a vectorboard.</TD>
    </TR>
  </TABLE></DD>
  </DD>
   <DD>
<P CLASS=DESC>Michael Klein has written an alternative tutorial in german and english, which can be found under: <A HREF="http://www.mikes-elektronikseite.de/edrumprojekt.htm" TARGET="_blank">http://www.mikes-elektronikseite.de/edrumprojekt.htm</A></P>
  </DD>
</DL>

<DL>
   <DT><H2> <IMG SRC="images/bullet.gif" ALT=""> Testing </H2></DT>
   <DD>
      <UL CLASS=CL>
        <LI><B>Never plug a PIC into the socket if you haven't done the initial hardware checks. Also, do not plug in a PIC if the RED or YELLOW LED lits up, because the PIC could be permanently damaged if the pins are getting in touch with an active Vdd/Vpp level before the Vss pins are connected to ground!</B></LI>
        <LI>Connect the external power supply, the green power LED should light up</LI>
        <LI>Adjust the programming voltage with pot P1 and measure it at J2:
           <UL CLASS=CL>
              <LI>12.5V for a PIC18F or PIC16F...A device</LI>
              <LI>13.1V for a PIC16F... device</LI>
           </UL>
        </LI>
        <LI>Connect MBHP_BURNER to the parallel port</LI>
        <LI>Start the <A HREF="http://www.sprut.de/electronic/soft/p18/p18.htm" TARGET="_blank">P18</A> programming software</LI>
        <LI><CENTER><IMG SRC="howtoprog/p18_2.gif" WIDTH=631 HEIGHT=396></CENTER>If the "programmer detected" message doesn't appear, you can check the parallel port with a simple test adapter which is described in the help file of P18</LI>
        <LI><CENTER><IMG SRC="howtoprog/p18_1.gif" WIDTH=631 HEIGHT=396></CENTER>Change to the Options->Hardware menu, select the "Tait classic, Brenner5, Brenner3" mode</LI>
        <LI>switch on Vpp - the red LED should go on. Measure the voltage at the MCLR# pin, it should be the same like adjusted before</LI>
        <LI>switch off Vpp - the red LED should go off, the voltage at MCLR# should turn to 0V</LI>
        <LI>switch on Vdd - the yellow LED should go on. Measure the voltage at the Vdd pins, it should be 5V</LI>
        <LI>switch off Vdd - the yellow LED should go off, the voltage at the Vdd pins should be 0V</LI>
        <LI>do the same checks with the clock and data pin (RB6 and RB7). The voltage should switch between 0V and 5V</LI>
        <LI>Click on the "Data In" button - Data In should get the same value like selected with one of the above sData buttons</LI>
        <LI>If these tests are passing, Vpp and Vdd should be switched off. Thereafter insert the PIC into the socket.</LI>
        <LI>Click on "Identify PIC in Programmer" -- the right PIC type number should appear in the message screen</LI>
        <LI><CENTER><IMG SRC="howtoprog/p18_3.gif" WIDTH=631 HEIGHT=396></CENTER>Load the .hex file and click in "write HEX-file into PIC". P18 will program and verify the memory image. An OK message will appear once this is done.</LI>
      </UL>
  </DD>
</DL>

<DL>
   <DT><H2> <IMG SRC="images/bullet.gif" ALT=""> Troubleshooting </H2></DT>
   <DD>
      <UL CLASS=CL>
         <LI>If the PIC cannot be detected, or if the programming procedure works unstable, a printer or scanner driver which is running in background could be the reason - the driver has to be disabled in this case.
         <LI>Such an issue could also be related to the interface and PIC timing settings. They can be changed under Options->Timing. In order to check the relevance, you could move the sliders to the slowest timings first - once you were able to program the PIC with success, you can try to find the best values.</LI>
         <LI>Check the cable to the parallel port; in the meantime two guys had problems just because they tried to recycle an older one. A 1:1 LPT cable just only costs 1 EUR at <A HREF="http://www.reichelt.de" TARGET="_blank">Reichelt</A> (AK 404)</LI>
      </UL>
  </DD>
</DL>

<DL>
   <DT><H2> <IMG SRC="images/bullet.gif" ALT=""> Burning under Linux </H2></DT>
   <DD>
     <P CLASS=INFO><A HREF="http://pikdev.free.fr/" TARGET="_blank">PiKdev</A> is a nice development environment which provides the independent program "pkp" which allows to flash PIC devices from the commandline. The default setup works well with MBHP_BURNER, no additional modifications are required - here my .pkprc file just for documentation:</P>
<TT><PRE>
# settings for parallel port device : 
# (use /dev/parports/x if your system is devfs based)
port=/dev/parport0
type=parallel
# pin assignments: negative value means inverted signal
# the following values are working with MBHP_BURNER
vpp=-5
vdd=-4
clock=3
datao=2
datai=10
rw=25
delay=0
</PRE></TT>
  </DD>
</DL>

<DL>
   <DT><H2> <IMG SRC="images/bullet.gif" ALT=""> Credits </H2></DT>
   <DD>
     <P CLASS=INFO>Most parts of the circuit are inspired from <A HREF="http://www.sprut.de/electronic/pic/projekte/brenner5/index.htm" TARGET="_blank">Brenner5</A> from sprut.de, and <A HREF="http://www.rotgradpsi.de/mc/picprog/picproge.html" TARGET="_blank">PICProg</A> from Martin Clausen. Thanks also to Michael Klein, who created the PCB layout.</P>
  </DD>
</DL>


FOOTER