Come 8032 esegue il programma?

Sto studiando il microcontrollore 8032. Si dice che 8032 non ha una ROM interna. Ora ci sono alcune domande che ho

  • Abbiamo bisogno di una ROM esterna per eseguire necessariamente programmi? Non possiamo usare la RAM interna da 256 byte?

  • Supponiamo che io stia usando il microcontrollore 8032 con una ROM esterna 2732 e anche utilizzando un latch per memorizzare lindirizzo (ordine inferiore) della porta P0. (che può trasferire indirizzo / dati). Ora dopo aver abilitato EA e aver collegato PSEN come esegue il programma 8032? Cosa succede se accendo il sistema? (Come esegue le istruzioni il contatore del programma del microcontrollore 8032? Da quale indirizzo della memoria esterna dovrebbe essere letto il programma?

Ho leggi questi manuali: Intel 8032H Keil , Atmel 80C32E .

Risposta

Se guardi un tipico circuito 80 (C) 32 sotto (da qui ):

inserisci qui la descrizione dellimmagine

Puoi vedere che l8032 comunica con EPROM, RAM ed EEPROM esterne tramite un bus – dati a 8 bit e indirizzo a 16 bit. Questultimo è bloccato e quindi demultiplato con lHCT573. Cerano alcuni chip con il latch integrato progettati per essere utilizzati con l8031/8032 ma quella sopra era la configurazione più comune, utilizzando -costo chip di memoria standard. Cè anche un po di logica ” glue ” per decodificare gli indirizzi e generare te i segnali appropriati per le memorie (lHCT138 e il quad NAND).

È fondamentale che la logica di colla sia progettata in modo che la EPROM risieda allindirizzo 0 perché dopo un reset, lesecuzione inizia sempre dal 8032 sta recuperando il primo byte dellistruzione da quellindirizzo. Questa è una funzione dellhardware nell8032 e non può essere modificata. Tipicamente listruzione è unistruzione LJMP a 3 byte che salta allinizio del programma. Lo chiamiamo ” RESET VECTOR “. Altri vettori occupano i byte immediatamente sopra il vettore di ripristino, per la routine di servizio di interrupt esterno e la routine di servizio di interrupt del timer.

A quei tempi, la EPROM sarebbe stata programmata (scritta) da un programmatore separato al di fuori del circuito e quindi in genere collegato a una presa. Nessuna programmazione in-circuit in quei giorni. La RAM e la EEPROM possono essere scritte dal micro, ma il programma dovrebbe essere caricato nella EPROM prima che tutto ciò sia possibile.

Commenti

  • .: lo farò +1. Puoi elaborare la parte glue logic. Sembra che LJMP si sposterà allinizio del programma? Ma qui il programma è nella memoria esterna. Qui viene utilizzato questo tipo di istruzione? Voglio dire semplice le istruzioni vengono recuperate dalla memoria esterna e inserite nel IR, decodificate ed eseguite? Dovè il caso di LJMP qui?
  • La logica di colla assicura solo che ‘ sia lEPROM che ‘ è selezionato quando lindirizzo è 0000. Nella configurazione precedente, ogni volta che A15 = 0 è selezionata la EPROM. LJMP è unistruzione a 3 byte che accetta un indirizzo ovunque nello spazio di memoria a 16 bit dell8031, ma in genere potresti semplicemente saltare gli altri vettori, quindi i due byte seguenti dopo LJMP conterrebbero un indirizzo vicino allinizio del EPROM. Non ‘ in genere ti muovi direttamente con gli indirizzi: utilizzi un assemblatore che ne tiene traccia tramite etichette simboliche.
  • ” Glue logic ” è un termine gergale usato per riferirsi alle funzioni logiche più piccole che sono richieste tra il processore e le memorie.

Risposta

No, non puoi “utilizzare la RAM interna per contenere il codice. L8051/8032 utilizza unarchitettura di Harvard, il che significa che ha unarchitettura completamente separata spazi di memoria per codice e dati. Le istruzioni vengono recuperate dallo spazio codice, ma la RAM risiede nello spazio dati.

Ora dopo aver abilitato EA e collegato PSEN come 8032 esegue il programma?

L8032 recupera le istruzioni dallo spazio codice. Poiché EA è affermato, questi recuperi (letture di memoria) vengono visualizzati sul bus di memoria esterno , con PSEN affermato. Quando PSEN NON viene affermato su unoperazione di lettura della memoria esterna, è una lettura dello spazio dati.

Cosa succede se accendo il sistema?

L8032 inizia a recuperare le istruzioni dallo spazio codice indirizzo 0.

In che modo il contatore di programma del microcontrollore 8032 esegue le istruzioni?

Il program counter è semplicemente responsabile della conservazione dellindirizzo della prossima istruzione da eseguire. Altre parti della CPU eseguono le istruzioni.

Da quale indirizzo della memoria esterna deve essere letto il programma?

Indirizzo 0.

Se vuoi usare interrupt nel tuo programma, ci sono altri indirizzi nella memoria con poco spazio di codice che sono riservati a loro, quindi il codice che tu lesecuzione al ripristino alla fine dovrà “saltare” quegli indirizzi riservati.

Commenti

  • Questa è la risposta alla prima domanda. Lo farò +1. Potresti approfondire la seconda parte della domanda? Quella parte non posso ‘ ottenere alcun indizio.
  • Vedi modifica sopra.

Risposta

L8032, che è una variante dell8052, non ha ROM interna per larchiviazione del programma. Invece, una ROM / EPROM / EEPROM esterna deve essere utilizzata per contenere il programma.

Per accedere alla memoria esterna vengono utilizzate due porte: la porta 0 (linee P0.0-P0.7) emette il basso 8 bit di un indirizzo 64K a 16 bit e servono anche come bus dati di lettura / scrittura a 8 bit dopo che lindirizzo è stato bloccato dalla memoria esterna.

P2 (righe P2.0-P2.7 ) vengono utilizzati per emettere gli 8 bit alti dellindirizzo 64K a 16 bit.

Sebbene l8032 abbia 256 byte di RAM interna, questo può essere esteso aggiungendo un chip RAM anche al bus dellindirizzo esterno .

La riga dellindirizzo esterno \ $ \ mathsf {\ small \ overline {\ text {EA}}} \ $ viene mantenuta bassa per indicare se è stato effettuato un accesso alla memoria del programma esterno, altrimenti esterna Si presume RAM.

Per eseguire il codice dalla memoria esterna, lindirizzo dal contatore del programma viene emesso sulle linee dati della porta 0 e della porta 2; quindi durante il ciclo di lettura, i byte recuperati dalla ROM vengono letti nella porta 0 ed eseguiti dal processore.

Viene caricata solo unistruzione alla volta.

\ $ \ mathsf {\ small \ overline {\ text {PSEN}}} \ $ è uno strobo utilizzato durante laccesso alla memoria del programma esterno.

Commenti

  • .: Ma come esegue un programma che risiede nella memoria esterna? Guarda, non capisco come andrà a finire il PC quando il programma è nella memoria esterna. Voglio dire che ad ogni ciclo m / c recupera un certo numero di byte. Quindi, dopo il recupero, il programma viene eseguito immediatamente o lintero programma viene recuperato contemporaneamente > se è questo il caso, dove verrà memorizzato?
  • .: Quindi inizialmente PC=0000h. Inizia a prelevare byte ad ogni ciclo m / c e poi lo esegue? Quindi nella ROM dovremmo sempre masterizzare il programma dallindirizzo 0000h altrimenti non saremmo in grado di eseguirlo correttamente.
  • @learner. Corretta. Di solito ci sarà un salto allindirizzo allinizio del codice ” reale “.
  • .: I farà +1 sulla tua risposta. Ma se il programma viene eseguito istruzione per istruzione, come verrà gestito un riferimento diretto come questo? L1:JNZ L2 .. L2:.....
  • Listruzione JNZ (e altre istruzioni Jump e Branch) caricano lindirizzo di destinazione del Jump nel contatore del programma, in modo che il processore prenda il successivo istruzione da quellindirizzo, piuttosto che listruzione immediatamente dopo il Jump.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *