Op Elektronicaforum.nl is de kans om een antwoord op je vraag te krijgen heel groot. In overzichtelijke subcategorieën kun je vragen en antwoorden over elektronica zoeken, plaatsen en beantwoorden.
Elektronica Forum is onderdeel van Schakelingen Online
 


 
Standalone AVR Programmer

 
Plaats nieuw bericht   Plaats Reactie    Schakelingen Online Forum Index -> Digitaal
Auteur Bericht
tveen323



Geregistreerd op: 10-11-2009
Berichten: 5
Woonplaats: Nijkerk

BerichtGeplaatst: Di 23 Okt 2012, 10:06    Onderwerp: Standalone AVR Programmer Reageer met quote

Goedemorgen,

Ik ben al een tijdje bezig met het ontwerpen van een Standalone Programmer voor AVR. Tot dusver is alles in kannen en kruiken, echter loopt het programeren van een "target board" spaak.

Ik maak gebruik van een ATMega328 op 20MhZ als hart van de programmer. Een 24LS256 als geheugen, en een FT232RL om de communicatie met de pc op te zetten.

Het SPI Protocol naar het "target board" werkt uitstekend, ik dan erasen, sig. bytes uitlezen, etc.

Communiceren met de pc werkt ook, ik kan een programma overzetten naar de 24LS256.

Tijdens het programeren van het "target board" gaat het na 3 pages mis, dan klopt er niks meer van de data! Hieronder een paar routines die het programeren verzorgen!

Het flashen van target.
Code:
 
    while (adres < 15329) {
   flash_adres = adres / 2;            
   for (cnt = 0; cnt <pagesize>> 8) & 0xFF);   
       spi_mastertransmit_nr(avr_adres & 0xFF);      
       spi_mastertransmit_nr(ReadMem(adres));
       adres++;                  
       spi_mastertransmit_nr(0x48);         
       spi_mastertransmit_nr((avr_adres >> 8) & 0xFF);   
       spi_mastertransmit_nr(avr_adres & 0xFF);      
       spi_mastertransmit_nr(ReadMem(adres));
       adres++;                              // Volgend SRAM-adres
   }
      spi_mastertransmit_nr(0x4C);            // Program flash
      spi_mastertransmit_nr((flash_adres >> 8) & 0xFF);   // Adres-H
      spi_mastertransmit_nr(flash_adres & 0xFF);      // Adres-L
      spi_mastertransmit_nr(0);
      delay_ms(5);                  // Wachten tot het flashen afgelopen is
    }





Routine voor het schrijven naar eeprom vanaf pc:
Code:
 
   for (i=0; i<15329; i++) {
      byte = uart_getchar();
      WriteMem(byte,i);
      _delay_ms(5);
   }



Weet iemand hier raad mee, of iemand die mij een stapje verder kan helpen??

Groet,
Thomas
Naar boven
Bekijk gebruikers profiel Stuur privé bericht
Plaats nieuw bericht   Plaats Reactie    Schakelingen Online Forum Index -> Digitaal Tijden zijn in GMT + 2 uur
Pagina 1 van 1                     

 
Ga naar:  
Je mag geen nieuwe onderwerpen plaatsen
Je mag geen reacties plaatsen
Je mag je berichten niet bewerken
Je mag je berichten niet verwijderen
Ja mag niet stemmen in polls
Je mag geen attachments plaatsen in dit forum
Je mag bestanden downloaden in dit forum


Powered by phpBB © 2001, 2002 phpBB Group and phpBB SEO