Serienummer mapping naar een flash-geheugen adres

J

jabidof

Guest
Hi there,

Ik heb een 16 septies serie microcontroller die ontvangt serienummers (barcode).Al die nummer is uniek en gecodeerd op 4 bytes.
Ik heb een externe flash-geheugen met 16Mbits.Ik wil een manier vinden om de barcode serienummer op een geheugen adres.
Het probleem is dat het flash-geheugen apparaat (van Atmel) heeft een bijzondere structuur om het aanpakken van efficiënte (uit het geheugen oogpunt).Dus heeft iemand een idee van hoe de kaart de barcode UID naar een Flash Memory ADRES met een 16 septies serie microcontroller?
Ik denk dat een soort van functie op basis van de barcode UID zal het werk doen, maar misschien een van jullie dat probleem al opgelost zodra<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />
Bedankt voor alle tips.

 
jabidof schreef:

Ik heb een externe flash-geheugen met 16Mbits.
Ik wil een manier vinden om de barcode serienummer op een geheugen adres.
 
Zeker

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Lachten" border="0" />Stel je scannen van een barcode en je krijgt MCU de volgende code in HEX:
0xC0 01 67

Nu heb je een externe flash-geheugen IC met 16Mbits van gegevens.

Het doel is om de barcode gescand net (dwz 0xC0 01 67) een unieke herinnering aan het adres van de flash-IC en slaan een beetje daar.

Heb ik het duidelijker?

 
Verdeel de code adres door 8 om het adres in en ontvang de rest van de bits.

 
Goed idee!Wat als we willen adres 2 bits of meer?Wij delen door 9, 10, etc?

 
Kunt u een glossarium-type verduidelijking.Het lijkt erop dat u een apparaat te testen (TU Delft), die heeft de 16 septies en de Atmel flitser.
One serial number per DUT (eg DUT's own serial number of the device) or multiple serial numbers per DUT (eg DUT stores serial numbers of other objects)?

Q1.
Een serienummer per DUT (bijvoorbeeld de TU Delft
een eigen serienummer van het apparaat) of meerdere nummers per DUT (bijvoorbeeld de TU Delft slaat serienummers van andere objecten)?
How is the DUT going to use the serial number after is was stored in Flash?

Q2.
Hoe is de TU Delft gaan gebruiken na het serienummer wordt opgeslagen in Flash?
What do you mean by "mapping"?

Q3.
Wat bedoel je met "mapping"?Meestal mapping impliceert dat twee waarden die overeenkomen met elkaar hebben enkele numerieke relatie.Is deze interpretatie dicht bij jou?Als een waarde is het nummer, wat
is dan de andere?

 
Hallo!

I
don't get it.Laten we verhelderen dingen.
Wat bedoel je met "kaart de gescande streepjescode"?U wilt controleren
Als de streepjescode is al opgeslagen, toch?Dus eigenlijk gebruik je het
barcode als een adres en u een beetje op dit adres?

Laten we duidelijk: je hebt een MCU, een Atmel flitser.
Je scant een barcode, krijg je 0xC0 01 67.Wat zijn deze ruimten.Jij
betekende 0x00C00167, toch?

Zoals hierboven, moet je delen door 8 (rechts verschuiven met 3 mei worden sneller).
Laten we aannemen dat u de functies voor het schrijven en lezen ook een byte te knipperen
gedefinieerd als uint8 read_at (uint32 waar) en write_at (uint32 waar, uint8 wat).

- Gebruik 2 variabelen toevoegt (21 bits) en Val
add = (code>> 3) & 0x001FFFFF; / / en met een 21 bit waarde,
voor het geval
Val = (uint8) (code & 0x00000007); / / EN met 0x07 voor de 3 laatste bits.
vervolgens transformeren om een beetje op de positie aangegeven door val
bitval = 1 <<val;

Nu, als je val te voegen, zou je doen:

write_at (toevoegen, bitval).

Maar id je 2 waarden in een reeks (bijvoorbeeld als uw codes
0x00000018 en 0x00000019), moet je schrijven bit 0 van byte 3 en bits
1 byte 3.(0x18 is in binaire 00011000, 00000011 dus toen verschoven
door 3).

De oplossing (de veronderstelling u al geschreven de 0x00000018 code bits:

orgbitval = read_at (3); / / Haal de waarde reeds opgeslagen
bitval = orgbitval | (1 <<val); / / winkels waarde 0x01 | 0x02 = 0x03 in mijn voorbeeld
write_at (3, bitval);

Dan heb je 2 opeenvolgende bits en de waarde 0x03 zal worden geschreven op
byte 3.

That's it!Veel plezier!

Dora.jabidof schreef:

Zeker
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Lachten" border="0" />

Stel je scannen van een barcode en je krijgt MCU de volgende code in HEX:

0xC0 01 67Nu heb je een externe flash-geheugen IC met 16Mbits van gegevens.Het doel is om de barcode gescand net (dwz 0xC0 01 67) een unieke herinnering aan het adres van de flash-IC en slaan een beetje daar.Heb ik het duidelijker?
 

Welcome to EDABoard.com

Sponsor

Back
Top