User Tools

Site Tools


software_behav

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
software_behav [2017/06/05 17:28] – [System Commands] adminsoftware_behav [2017/06/06 11:20] (current) – [Commands Core Set] admin
Line 89: Line 89:
  
 We are writing into the IO space and therefore it make sense adding a MASK byte for those many cases in which we  We are writing into the IO space and therefore it make sense adding a MASK byte for those many cases in which we 
-want to write specific bits leaving the other unchanged. The WPOM routine will first read the contents of the  +want to write specific bits leaving the other ones unchanged. The WPOM routine will first read the contents of the  
-register at (RAM) location ADD, will "AND" it with mask complemented (bit by bit). the result will be "OR"ed bit by bit with the result of VAL "AND" MASK. Mask will therefore have at "1" the bits to be changed. +register at (RAM) location ADD, will "AND" it with mask complemented (bit by bit). The result will be "OR"ed bit by bit with the result of VAL "AND" MASK. Mask will therefore have at "1" the bits to be changed. 
  
 Response message might contain the actual value written to ADD instead of VAL. Response message might contain the actual value written to ADD instead of VAL.
Line 101: Line 101:
 Response can simply be the same as the transmitted string that is therefore used as as sort of acknowledge (for non time sensitive applications).  Response can simply be the same as the transmitted string that is therefore used as as sort of acknowledge (for non time sensitive applications). 
  
-===Commands for modifying the flash===+===Commands for reading and modifying the flash=== 
 + 
 +The commands for modifying the flash are at the core of ANT and there are a number of possibility for their implementation.  
 +In the prospect of defining some "core" commands to be available both in the tiny2313 and mega328 we define only the minimum set of commands. In particular, when filling out the page buffer prior to programming, the MNC will only be able to send one word at the time.  
 + 
 +Flash programming occurs in this fashion:  
 + 
 +   *the content of a page (16 words for tiny2313 and 64 words fot mega328) is prepared in a buffer 
 +   *when ready, the entire page is programmed.  
 + 
 +In order to allow the possibility of altering one single flash word one can proceed as follows: 
 + 
 +    *a copy of the page is made in the internal buffer; 
 +    *the words that need to be modified are modified; 
 +    *the page is programmed. 
 + 
 +In order to accomplish this goal (and also read program memory) we can define the following commands. 
 + 
 +^MNEM^Description^byte1^byte2^byte3^byte4^byte5^byte6^ 
 +|**FLRW**|Read a Flash word|4|cc|ADD H|ADD L | | | 
 +|**FLCP**|Make a temp copy of a flash page|4|cc|ADD H|ADD L | | | 
 +|**FLWW**|Flash write word  |6|cc|ADD H|ADD L|VAL H | VAL_L|  
 +|**FLPG**|Program Flash |4|cc|ADD H|ADD L| | | 
 + 
 +**FLRW**  
 +Reads a program word. The address is (ADD_H:ADD_L)AND(0xFFFE). 
 +Word value can be returned in the answer in place of the address. 
 + 
 +**FLCP** 
 +Copy a flash page into the internal temporary buffer. The page address is that of the page to which the location specified by ADD_H:ADD_L belongs.  
 +Answer could be the address page in the proper format. 
 + 
 +**FLWW** 
 +Writes a word in the temporary buffer. Note that proper care should be paid in addressing, according to the precautions (see devices' Data Sheets) required to avoid corruption of the temporary buffer.  
 +No answer is really needed, a simple "1" would suffice as a sort of "done, send another command" acknowledgement. 
 + 
 +**FLPG** 
 +Issue the command for programming flash.  
 +Once again, a simple "1" is sufficient in the answer as acknowledgement. 
 + 
 + 
 +N.B.: In principle, the command FLCP is not strictly required. One can read the content of a flash page using FLRW and write the value in the proper location via FLWW. When programming a large number of flash pages, the time required for communication becomes significant: FLRW require at east 8 ms (transmission of 4 bytes, reception of 4 bytes). FLWW requires at least 7 ms (transmission of 6 bytes and acknowledgment reception) for a total of 15 ms. Reading/Writing 1k-words will therefore require at least 15 seconds. Using FLCP the overall time reduces to about 7 seconds.  
 + 
 + 
 + 
 +===Commands for reading and modifying EEPROM === 
 + 
 +Most of the operations required for reading and writing the EEPROM can be accomplished by reading/writing IO registers through the proper command (seeding address, seeting data for write). However actual writing requires a sequence of operation that can only managed by a aproper sequence of code ("arming" the writing mechanism and issuing the writing command within four clock cycles).  
 + 
 +Therefore a dedicated command for writing is required, while reading can be accomplished to the data writing commands. However, we can define a specific command for EEPROM reading. 
 + 
 +^MNEM^Description^byte1^byte2^byte3^byte4^byte5^byte6^ 
 +|**EERB**|Read a byte from EEPROM |4|cc|ADD H|ADD L | | | 
 +|**EEWB**|Write a byte to EEPROM |5|cc|ADD H|ADD L |VAL | | 
 + 
 + 
 +==== Commands Core Set ==== 
 +Command core set is the minimum sets of commands that need to be implemented and whose action cannot be replicated with a combinations of other commands in the same set.  
 + 
 +As we have note before, for instance, the FLCP command, while useful, is not a core command: we can obtain the same effect by using a series of FLRW and FLWW.  
 + 
 +At this stage, the commands that appear to belong to the core set are: 
 + 
 +**RRAM**,**WRAM**,**FLRW**,**FLWW**,**FLPG** and **EEWB**; 
 + 
 + 
 +This means that the minimum length for the CVT should be 16, with a margin for two more core system command (in case we realize we have forgotten something) and a set of 7 user comments.  
 + 
 +The other commands listed so far (RPG0, WP0M, FLCP and EERB) can be included in the immediate super-set (len(CVT)=32) together with other commands for ase of use.  
 + 
 +The target should be, however, to start in any case with the core command set ( from now on CMN_LVL_0) and to obtain reconfiguration toward richer command sets using the core command set. In short, we should insure that once a SNC is programmed with the core command set (with an external programmer), it can be upgraded by the MNC through ANT.  
 + 
 + 
  
software_behav.1496683700.txt.gz · Last modified: by admin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki