www.narcisivalter.it
Visual Basic
Programmazione del CD4059


CD4059 / HEF4059 - GESTIONE SETTINGs


Il programma è stato realizzato e testato su sistema operativo Windows 7: tuttavia sembra funzionare perfettamente anche su sistema operativo Windows 8 e 10.

E' un semplice programma (realizzato nel 2017, versione 1.0) che consente di calcolare i "Jam" del circuito integrato HEF4059 o CD4059.

IL CIRCUITO INTEGRATO HEF4059 o CD4059    [ TORNA ALL'INIZIO ]

Si tratta di un divisore di frequenza programmabile in grado di dividere da 3 fino a 15999 volte il segnale in ingresso applicato al piedino 1. La programmazione del chip va fatta tramite 16+3 piedini di ingresso (chiamati "Jam") i quali possono essere collegati a +VCC (Livello 1 = H) oppure a GND (Livello 0 = L).

Nella figura seguente è riportato lo schema a blocchi dell'integrato.

Block Diagrams of HEF4059B / CD4059A

Per programmare il chip è necessario prima di tutto impostare il MODE SELECTION attraverso 3 Jam: Ka, Kb e Kc: la loro configurazione, infatti, oltre a determinare il fattore di divisione iniziale, fissa il numero dei Jam che sono riservati alla prima e all'ultima sezione di conteggio, secondo quanto specificato nella seguente tabella (il pin 2 - EL deve essere collegato a massa):

Jams settings for CD4059 / HEF4059

Nella tabella sono riportati anche i limiti di divisione (COUNTER RANGE): ad esempio, con il MODE = 4 è possibile programmare il chip con un valore di divisione fino a 15999 volte mentre con il MODE = 10 questo limite scende a 9999 volte. Nella colonna "Jam used" sono riportati i Jam usati dalla corrispondente sezione in base al MODE (es., con il MODE = 10, la quinta sezione è disabilitata e tutti i 4 Jam sono a disposizione della prima sezione). Nella colonna "Max. preset" sono riportati i valori massimi che possono essere programmati con i Jam a disposizione.

Per programmare il fattore di divisione (Preset Value) si devono impostare 16 ingressi (Jam Inputs). Le sezioni di conteggio intermedie (divisori per 10) sono 3 e fanno capo ai Jam da J5 a J16 (presi a gruppi di 4 bit). La prima e l'eventuale ultima sezione di conteggio fanno capo ai Jam J1-J4 ed il MODE SELECTION determina quanti e quali Jam vanno usati per le due sezioni.

Una volta fissato il MODE e il valore di divisione (Divide-by-N), si calcola il Preset Value con la formula:

Preset Value = Divide-by-N / MODE

Il risultato della divisione corrisponde al numero da programmare per le sezioni dalla 5a alla 2a (se l'intero della divisione è minore di 1000, la 5a sezione è disabilitata): il resto della divisione (Modulo), anche se 0, corrisponde al numero da programmare nella 1a sezione di conteggio (Decade 1).

Facciamo un esempio: supponiamo di avere bisogno di un divisore da 8973: per questo valore possiamo scegliere un qualsiasi MODE, quindi fissiamo MODE = 8. Per quanto detto sopra, avremo un Preset Value pari a 1121 con resto di 5.

Preset Value = 8973/8 = 1121 resto 5

Con il MODE = 8 abbiamo a disposizione 3 Jam nella 1a sezione (decade 1, resto della divisione), per cui li imposteremo al valore 5 ed uno solo (J4) per la 5a sezione (decade 5) che va impostato a 1 (intero del rapporto 1121/1000 = 1).
La cifre delle centinaia (1), quella delle decine (2) e quella delle unità (1) sono impostate nelle sezioni intermedie attraverso i Jam a 4 bit J13-J16 (centinaia, 4a sezione, Jam = 0 0 0 1), J9-J12 (decine, 3a sezione, Jam = 0 0 1 0) e J5-J8 (unità, 2a sezione, Jam = 0 0 0 1).

Su può verificare la correttezza dei calcoli usando la seguente formula:

Divide-by-N = (MODE x (D5x1000 + D4x100 + D3x10 + D2x1)) + D1

per cui si avrà:

Divisore = (8 x (1x1000 + 1x100 + 2x10 + 1x1)) + 5 = 8973

Facciamo un altro esempio: abbiamo bisogno di un divisore da 15737 e con questo valore possiamo selezionare solo 2, 4 o 8 per il MODE. Scegliamo MODE = 4 e sapremo in anticipo che i Jam J1-J2 sono riservati al resto della divisione (1a sezione) mentre i Jam J3-J4 sono riservati per impostare la 5a sezione:

Preset Value = 15737/4 = 3934 resto 1

  • 5a decade (migliaia) = 3 - impostare J3-J4 = 1 1
  • 4a decade (centinaia) = 9 - impostare J13-J14-J15-J16 = 1 0 0 1
  • 3a decade (decine) = 3 - impostare J9-J10-J11-J12 = 1 1 0 0
  • 2a decade (unità) = 4 - impostare J5-J6-J7-J8 = 0 0 1 0
  • 1a decade (resto) = 1 - impostare J1-J2 = 1 0

Verifica:

Divisore = (4 x (3x1000 + 9x100 + 3x10 + 4x1)) + 1 = 15737

Il circuito integrato possiede altre funzioni e settings, ma in questo progetto è stato utilizzato SOLO come divisore di frequenza: chi volesse approfondire può scaricare il datasheet: ad esempio, si scoprirà che l'HEF4059BP della Philips/NXP ha un'ulteriore setup che permette di impostare automaticamente il divisore ÷10000 semplicemente portando basso il pin 2 (EL) ed impostando il MODE con Ka = 0, Kb = 1 e Kc = 0, indipendentemente da tutti gli altri Jam.

IL PROGRAMMA    [ TORNA ALL'INIZIO ]

Il programma non richiede installazione e, una volta avviato l'eseguibile, si presenta con una finestra simile alla seguente:

Sulla sinistra in alto, nella casella "Divide-by-N", va digitato il valore del divisore. Nel riquadro "MODE", si imposta il MODE SELECTOR selezionando uno o più delle tre caselle Ka, Kb e Kc oppure, in alternativa, scegliendo uno dei cinque valori (2, 4, 5, 8 o 10). Ad ogni variazione dei dati da parte dell'utente, il programma calcola automaticamente e visualizza i Jam da impostare a livello 1 per ottenere il valore di divisione programmato (i Jam da portare a livello logico ALTO sono quelli con le caselle selezionate nel riquadro "JAM settings"). Accanto ad ogni Jam (J1, J2, J3...) è stato riportato, tra parentesi, il numero del piedino corrispondente.

Da notare che quando si cambia il MODE, i Jam 1-4 si spostano automaticamente sotto la 1a o la 5a sezione in base alle impostazioni del MODE stesso.

Sulla destra, in alto, sono visualizzati i valori del "Preset Value" e del "Reminder" (o resto) calcolati dal programma.

DOWNLOAD    [ TORNA ALL'INIZIO ]

Per scaricare il file eseguibile, cliccare sul link che appare più in basso (a destra dell'icona DOWNLOAD). Una volta decompresso, avviare il programma di installazione "CD4059.exe".
Per tutte le altre richieste utilizzate la sezione COMMENTI.

Utenti AVAST Antivirus - Se il programma non dovesse avviarsi, disattivate temporaneamente la protezione Avast. In alternativa, è possibile aggiungere il file (CD4059.exe) all'elenco delle esclusioni di Avast (Impostazioni->Esclusioni).

Scarica il programma 'CD4059 / HEF4059'  (CD4059.rar - 950 KB)

COMMENTI    [ TORNA ALL'INIZIO ]

[ Torna all'inizio della pagina ]

DISCLAIMER (Dichiarazione di esclusione di responsabilità) - Tutti i programmi presentati e descritti nel Sito web www.narcisivalter.it possono essere utilizzati solo per uso privato, didattico e senza scopo di lucro; è pertanto vietata qualsiasi forma di commercializzazione. Tali applicativi non sono di dominio pubblico, per cui i diritti d'autore rimangono di esclusiva proprietà dell'ideatore. Per utilizzare a fini commerciali i programmi o parte del codice sorgente, è necessario contattare preventivamente l'Autore per concordare un'eventuale autorizzazione scritta.

RESPONSABILITÀ - Tutti i programmi sono stati realizzati e sperimentati personalmente dall'Autore. Tuttavia, l'Autore stesso non garantisce a chi li utilizzerà un sicuro e perfetto funzionamento. Molte informazioni e software presentati sul Sito sono pensati per un'utenza addetta ai lavori o appassionata del settore informatico, in grado di valutare autonomamente la correttezza e la funzionalità del codice. Pertanto, l'utente accetta espressamente di utilizzare i contenuti del Sito sotto la propria ed esclusiva responsabilità.

Il contenuto di questo Sito web è rilasciato a puro titolo hobbistico e/o di studio. L'Autore non garantisce la matematica certezza del funzionamento di tutti i programmi e non si assume alcuna responsabilità, esplicita o implicita, riguardante incidenti, malfunzionamenti o conseguenti possibili danni hardware o software derivanti dall'uso degli applicativi scaricabili da questo Sito. Chiunque decida di scaricare e utilizzare i programmi descritti in queste pagine lo fa per libera scelta, assumendosi interamente tutte le responsabilità civili e tecniche che ne potrebbero derivare.

Privacy Policy - Cookie Policy - Condizioni d'Uso