|  | 
 
        
    |  | Software 
            Programming & Communicating with Atmex |  
 
  		
    	|  |  
              You'll need some software to program and communicate with Atmex. 
              First you'll need a development environment. Luckily, AVR has a 
              very well supported free development system, from GNU, Atmel, and 
              others. Secondly, you'll need software to download code into the 
              microcontroller, which I have written. Third, you'll want software 
              to communicate with Atmex, which you probably already have. |  |  
      Development 
      Environments 
	   The 
        development environment is pretty much everything involved in transforming 
        code (C, Assembler, BASIC, etc) into machine (HEX) code. Usually included 
        is a compiler, assembler, debugging system, and simulator. Sometimes included 
        is an in-circuit programmer, in-circuit debugger, programmer interface, 
        etc.  
        Programming 
      in the Bootloader 
          |  | The easiest way to get started is to use Atmel's AVR 
              Studio v4 which comes with an assembler. It's also the 'standard' 
              development environment. (As of July '04, 
              this is what I use, as the latest version of the assembler suppots 
              the ATtiny2313) Also popular is AVR 
              Studio v3.5 which allows you to use third party compilers, such 
              as the free avr-gcc. 
              It doesn't support the ATtiny2313 out of the box, but I'll put up 
              instructions (if it's possible) to get gcc and AVR Studio running 
              with Atmex. (As of July '04, avrgcc does 
              not yet support the ATtiny2313, but it is expected soon) You can 'roll' your own system using avrgcc, CodeVision, 
              or any other compiler available. The only requirement is that it 
              supports the ATtiny2313 and generates intel HEX files, which should 
              be pretty universal. |  |   
          |  |  |  |  Once 
        you have an Atmex, you'll need to have the chip initialized with the bootloader 
        firmware. Then you will use software such as JAvrProg to download 
        new code onto the board. (You can use any other AvrProg-protocol compatible 
        programming software, but it's much slower (I added some speeded up commands) 
        and some changes must be made to the code. As of July '04, AvrProg does 
        not support the ATtiny2313 anyways.) 
        Installing 
      JAvrProg 
          |  | When you first buy a microcontroller, it's completely blank. You'll 
              need to program it with the bootloader once. To program the bootloader, 
              you'll need to first download the appropriate HEX file (which depends 
              on whether you want to use the internal 4MHz oscillator, the internal 
              8MHz oscillator or some other value oscillator). Typical programmers 
              are the STK-500, 
              the PonyProg SI board, 
              AVR-ISP, 
              etc. You can build a PonyProg SI board on a breadboard very easily 
              using the published schematics. If you're not sure about what oscillator you want, use the internal 
              8MHz and the 8MHz bootloader. |  |   
          |  |  |  |  Once 
        you have the bootloader on, you can use JAvrProg to program, 
        verify and read the program memory. 
        Using 
      JAvrProg 
          |  | First verify that you have a recent (1.4 or later) Java runtime 
              environment (JRE). If not, install the latest version for your OS 
              (there are JRE's for MacOS, Linux, BSD, Windows, etc). Also install 
              the JavaComm API libraries which let Java talk to the serial port. Then download the JAvrProg classes zip and uncompress it into some 
              convenient folder (say, for example, C:\Program Files\JAvrProg 
              and create a JAvrProg.bat file somewhere, like in 
              your start menu or in the desktop. Enter the following into it:cd C:\Program 
              Files\JAvrProg
 C:
 java JAvrProg
 Where you replace the directory name with whereever you actually 
              placed the files. Now you can double click on the batch file to 
              open JAvrProg.
             |  |   
          |  |  |  |  Once 
        you've gotten JAvrProg running, its easy to download code to the Atmex 
        board. 
         
          |  | Connect Atmex to your computer via the serial port, then plug in 
              the DC power (either battery or wall wart). Then click on Browse... 
              and select the HEX file to load (a good one to start with is first.hex, 
              which you can download. It blinks the LED.) Press the reset button 
              on the Atmex and click the Program 
              button within 3 seconds. JAvrProg should search all the serial ports 
              for an Atmex, and load the file. If it thinks there is no Atmex, 
              check that you have programmed the chip with the correct bootloader 
              and with the right fuse setting (the 4MHz bootloader with the 4MHz 
              internal clock set), that the serial port is connected, and the 
              board is powered on. (If you connect to the serial port at 19200bps 
              with a terminal program, typing in 'S' should return "AVR2313") After programming, press reset again. The LED should start blinking 
              rapidly after 3 seconds. The only important requirement for the code you upload is that 
              the first instruction is a jump to the rest of the user code. If 
              you're writing in assembly, just putORG 0x0
 rjmp Main
 Main:
 ....
 In the beginning of your code. I think any reasonable compiler 
              will do this too.
 |  |   
          |  |  |  |  |