Spiegazione PIO
Moderatori:
carloc,
g.schgor,
BrunoValente,
IsidoroKZ
8 messaggi
• Pagina 1 di 1
0
voti
[1] Spiegazione PIO
Ci sarebbe qualcuno che possa spiegarmi come funziona una PIO(parallel input-output), in particolare non ho ben capito come si trovano gli indirizzi disponibili...
0
voti
Fedhman ha scritto:Di cosa stiamo parlando? Microcontrollore, FPGA, altro? Quali modelli in particolare?
Mi sembra la INTEL 8255A, per esempio in questo esercizio.
Si vuole realizzare un piccolo calcolatore embedded a 16 bit dotato di una ROM di 4KB, una RAM di 8KB e un dispositivo di I/O memory mapped a cui interfacciarsi tramite una PIO.Definire gli spazi di indirizzamento dei vari dispositivi a disposizione supponendo di poter utilizzare 16 bit per specificare gli indirizzi.
Non capisco come faccia a calcolare gli indirizzi in questo modo:
ROM: 4K (2^12) indirizzi
n da 0000 0000 0000 0000
n a 0000 1111 1111 1111
RAM: 8K (2^13) indirizzi
n da 1000 0000 0000 0000
n a 1001 1111 1111 1111
PIO: 4 indirizzi
n da 1111 1111 1111 1100
n a 1111 1111 1111 1111
0
voti
xyz ha scritto:Gli indirizzi sono arbitrari l'importante è non sovrapporre gli spazzi di indirizzamento, la ROM è messa all'inizio, la RAM al centro, il PIO alla fine.
Però per esempio per la ROM da 4K, so che ho 2^10*2^2=2^12 indirizzi che vanno da 0000 0000 0000 0000 a 0000 1111 1111 1111, ho capito che l'importante è non sovrapporre lo spazio di indirizzamento, però se per esempio avessi messo da 0000 0000 0000 0000 a 1111 1111 1111 1111, andava bene lo stesso? Poi non c'è il rischio che esco dal range di indirizzamento?
0
voti
Vero grazie, però per la ROM, non rappresento in questo modo 2^11,invece che 2^12? E poi perché per la RAM, devo mettere un ulteriore bit in prima posizione? Non ho ben capito perché mettendo quel bit gli indirizzi non si sovrappongono
3
voti
Stai mappando la memoria di un calcolatore embedded a 16 bit, quindi il tuo spazio di memoria totale ha il seguente intervallo (io preferisco i numeri esadecimali):
0x0000 a 0xFFFF
I dispositivi da mappare hanno uno spazio di indirizzamento inferiore altrimenti o non sono utilizzabili o al massimo è possibile utilizzarne uno solo (se ha esattamente gli stessi bit del calcolatore embedded). Lo spazio occupato non si deve sovrapporre e non deve superare i confini di indirizzamento.
Una possibile mappatura:
Naturalmente la prima è più facile da mappare, basta imporre i bit che mancano, la seconda è più difficile ma è possibile lo stesso..
0x0000 a 0xFFFF
I dispositivi da mappare hanno uno spazio di indirizzamento inferiore altrimenti o non sono utilizzabili o al massimo è possibile utilizzarne uno solo (se ha esattamente gli stessi bit del calcolatore embedded). Lo spazio occupato non si deve sovrapporre e non deve superare i confini di indirizzamento.
- ROM spazio da 4 ki (attento si usa ki minuscolo non K maiscolo)
- RAM spazio 8 ki
- PIO spazio 4
12 bit da 0x000 a 0xFFF
13 bit da 0x0000 a 0x1FFF
2 bit da 0x0 a 0x3
Una possibile mappatura:
- 0x0000 a 0x0FFF ROM (0x0FFF - 0x0000 = 0x0FFF)
0x1000 a 0x2FFF RAM (0x2FFF - 0x1000 = 0x1FFF)
0xFFFC a 0xFFFF PIO (0xFFFF - 0xFFFC = 0x0003)
- 0x1234 a 0x3233 RAM (0x3233 - 0x1234 = 0x1FFF)
0x4321 a 0x4324 PIO (0x4324 - 0x4321 = 0x0003)
0x4325 a 0x5324 ROM (0x5324 - 0x4325 = 0x0FFF)
Naturalmente la prima è più facile da mappare, basta imporre i bit che mancano, la seconda è più difficile ma è possibile lo stesso..
8 messaggi
• Pagina 1 di 1
Chi c’è in linea
Visitano il forum: Nessuno e 53 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)





