Domanda per chi conosce bene il PIC16F627/628

Comportamento strano uscita OD RA4

« Older   Newer »
 
  Share  
.
  1.  
    .
    Avatar

    Wunderlich
    cipollacipollacipollacipolla

    Group
    Radiomeccanico
    Posts
    1,310
    Location
    Silea (TV)

    Status
    Offline
    Salve a tutti, volevo vedere se riesco a capire il perché di un comportamento strano di un'uscita Open Drain del PIC in oggetto.
    Il contesto è il computer Z80 presentato da Nuova Elettronica a partire dal 1979, di cui sto facendo una replica compatta e leggermente migliorata.
    Il PIC mi serve per collegare una tastiera AT/PS2 al posto della tastiera ASCII parallela originariamente prevista dal progetto, e questa funzione lavora correttamente.
    Già che c'ero ho voluto usare la tastiera per dare un comando di Reset allo Z80 tramite una combinazione di tasti, e per l'uscita avevo scelto il pin RA4 della porta A, che a differenza di tutti gli altri offre un'uscita Open Drain così da poterla collegare all'elettrolitico del circuito di reset originale per scaricarlo.

    Il circuito iniziale che avevo impostato era questo:

    Non%20funziona%201

    Il pulsante di reset è quello sul tastierino esadecimale.
    Il circuito non funziona perché l'uscita RA4 resta forzata a zero anche se la progrmmo a 1
    Facendo varie prove ho scoperto che se qualcosa forza a zero l'uscita, poi questa resta fissa a zero.
    Infatti togliendo l'elettolitico funziona come mi aspettavo, cioè l'uscita resta flottante finché non la programmo a zero.
    Però se premo il pulsante di reset del tastierino esadecimale poi l'uscita del PIC resta fissa a zero.

    Facendo un'ulteriore prova ho isolato il PIC dal resto e sulla RA4 ci ho messo un led con resistenza verso il +5V
    Se da tastiera premo i tasti per il reset, vedo il led regolarmente accendersi per un impulso e poi spegnersi di nuovo, ma se simulo il pulsante reset del tastierino esadecimale, o il condensatore elettrolitico scarico all'accensione, mettendo manualmente a massa il pin RA4 vedo che il led si accende e resta acceso anche quando tolgo il collegamento di massa.

    Ora potrei anche aver sbagliato qualcosa nella programmazione quindi chiedo a chi conosce bene il PIC cosa dovrei eventualmente controllare. Posso dire che il parametro TRISA è a 0 quindi il pin è configurato come uscita e non come ingresso, e il CMCON l'ho messo a 7 per rendere tutti i pin della PortA digitali, disattivando le funzioni analogiche.
    Nel datasheet del PIC ho letto un riquadro in cui si avvisa di un problema credo simile ma riferito al solo pin RA5/MCLR, che se viene collegato direttamente a massa, o se ci sono dei picchi negativi rispetto a VSS può verificarsi un "latchup", quindi consigliano di usare una resistenza da almeno 100 ohm in serie, ma questo è un altro pin e funziona solo come ingresso.

    Per cercare di risolvere il problema ho sostituito la resistenza da 100 ohm (aumentata inutilmente per prova fino anche a 10 K) con un diodo collegato così:

    Non%20funziona%202

    Ciononostante il circuito non funziona ancora. A quanto pare il pin vuole una resistenza di pullup per funzionare, anche se mi sembra illogico, e così ho dovuto fare in questo modo:

    Funziona

    Così funziona ma non ne capisco il motivo.
    Io mi sarei aspettato che l'uscita Open Drain restasse flottante, permettendo così all'elettrolitico di caricarsi, e solo su comando andasse a zero.

    Chi ci capisce qualcosa? :-)
     
    Top
    .
  2.  
    .
    Avatar

    Wunderlich -B
    peperonecrusco_lr

    Group
    Mastro Elettronico
    Posts
    3,399
    Location
    Galbiate (LC)

    Status
    Offline
    Hai provato così?

    reset
     
    Top
    .
  3.  
    .
    Avatar

    Wunderlich
    cipollacipollacipollacipolla

    Group
    Radiomeccanico
    Posts
    1,310
    Location
    Silea (TV)

    Status
    Offline
    Sì, come R16 ho provato valori fra 100 ohm e 10K, compreso 1K
     
    Top
    .
  4.  
    .
    Avatar

    Wunderlich -B
    peperonecrusco_lr

    Group
    Mastro Elettronico
    Posts
    3,399
    Location
    Galbiate (LC)

    Status
    Offline
    Con 100 ohm quando RA4=TRUE circola il doppio della sink max e la capacità è oltre le specifiche di carico capacitivo.

    Se abbassi a 20k la R17?

    Curioso, dovrei avere un 16F628, appena ho un attimo faccio la prova.

    Le porte OD le uso sui bus di comunicazione e non ho mai avuto problemi del genere
     
    Top
    .
  5.  
    .
    Avatar

    Wunderlich -B
    peperonecrusco_lr

    Group
    Mastro Elettronico
    Posts
    3,399
    Location
    Galbiate (LC)

    Status
    Offline

    Mistero RISOLTO!



    Ho provato con un po' di pic che hanno la porta OD come quella del tuo, ma non ho esattamente quello che stai usando tu.


    L'ultimo che ho provato è un 16F877A che una simile configurazione di RA4

    ppp-17022470629853

    Ho realizzato questo circuito:

    Il pic genera un clock 1" True 5" False e viene visualizzato dal led verde.

    sch-17022469058987

    Con tutti i PIC si verifica quanto hai segnalato.

    La cosa divertente è che il problema non è generato dal PIC, ma dall'aver usato una porta CMOS.

    Se sostituisci la HCT con una LS il problema non si pone, se invece diminuisci C4 a 10uF funziona anche con la HCT pur con una R4 da 68k

    pii



    Lo spieghi tu a Livio Orsini? Sono curioso di sapere cosa ne pensa :D

     
    Top
    .
  6.  
    .
    Avatar

    Radiotron
    Radiomeccanico Amministratore

    Group
    Administrator
    Posts
    16,672

    Status
    Online
    Mistero...., capirai, solo voi due non siete al corrente che la serie HCT ha un proto-processore embedded, inserito per spiarci.
    Casualmente col il Pic avete attivato la funzione di trasferimento dati, di cui non vi siete accorti in quanto la portante é su i 55,3GHz.
    Erano i primi test di IA che hanno condotto sulla nostra pelle.

    Stefano quanti cortocircuiti sono avvenuti sul tuo tavolaccio degli esperimenti?
     
    Top
    .
  7.  
    .
    Avatar

    Wunderlich -B
    peperonecrusco_lr

    Group
    Mastro Elettronico
    Posts
    3,399
    Location
    Galbiate (LC)

    Status
    Offline
    "..quante interurbane
    per dire "come stai?"
    raccontare dei successi
    e dei fischi non parlarne mai
    "

    :rolleyes:
     
    Top
    .
  8.  
    .
    Avatar

    UV
    cipollacipollacipolla

    Group
    Allievo Radiomeccanico
    Posts
    721
    Location
    Milano / Martina Franca

    Status
    Offline
    CITAZIONE (#Stefano# @ 11/12/2023, 07:45) 
    "..quante interurbane
    per dire "come stai?"
    raccontare dei successi
    e dei fischi non parlarne mai
    "

    :rolleyes:

    ..bellissimo brano di Ron partorito dalla mente di Lucio Dalla...è lo stesso che scriveva

    "vorrei entrare dentro i fili di una radio E volare sopra i tetti delle città.."

    ..almeno molti di noi ci provano ad entrare dentro i fili delle radio...poi ognuno libera la sua fantasia per volare!!
     
    Top
    .
  9.  
    .
    Avatar

    Wunderlich
    cipollacipollacipollacipolla

    Group
    Radiomeccanico
    Posts
    1,310
    Location
    Silea (TV)

    Status
    Offline
    CITAZIONE (#Stefano# @ 11/12/2023, 00:03) 

    Mistero RISOLTO!



    Lo spieghi tu a Livio Orsini? Sono curioso di sapere cosa ne pensa :D

    Non ti sfugge niente :-)

    Comunque grazie!
    Non avrei immaginato dipendesse dalla porta HCT, anche perché nella prova del diodo fra PIC e condensatore non dovrebbe esserci la possibilità di portare RA4 a zero da parte del pulsante.
    Alla fine penso metterò una LS, le HCT erano più per un discorso energetico :-)
    Ma deve essere una LS originale d'epoca, sennò chissà quali nanodispositivi ci saranno dentro in quelle nuove.
     
    Top
    .
  10.  
    .
    Avatar

    Wunderlich -B
    peperonecrusco_lr

    Group
    Mastro Elettronico
    Posts
    3,399
    Location
    Galbiate (LC)

    Status
    Offline
    CITAZIONE (TelespallaBob @ 11/12/2023, 13:39) 
    Non ti sfugge niente :-)

    Sono iscritto a quel forum dalla sua nascita ma ormai lo frequento poco per via della troppa e dilagante rissosità.
     
    Top
    .
  11.  
    .
    Avatar

    Wunderlich -B
    peperonecrusco_lr

    Group
    Mastro Elettronico
    Posts
    3,399
    Location
    Galbiate (LC)

    Status
    Offline

    Ora però non posso smontare il circuito fino a che non ho capito...
    ...Perchè

     
    Top
    .
  12.  
    .
    Avatar

    Wunderlich -B
    peperonecrusco_lr

    Group
    Mastro Elettronico
    Posts
    3,399
    Location
    Galbiate (LC)

    Status
    Offline
    Ok ho capito, la risposta è qui

    HCT14
    ih




    LS14
    ii2




    Ho tolto R3, abbassato R4 a 27k: Funziona anche con la HCT e un condensatore da 33uF.

    Con 47k non va nemmeno con 22uF

    E' preferibile rimanere nell'intorno dei 18k.

    Con 15k-22u l'impulso è di durata sufficientemente anche per uno Z80 a 2,5MHz

    Screenshot%202023-12-11%20224419

     
    Top
    .
  13.  
    .
    Avatar

    Wunderlich
    cipollacipollacipollacipolla

    Group
    Radiomeccanico
    Posts
    1,310
    Location
    Silea (TV)

    Status
    Offline
    Studio interessante grazie. Le LS hanno praticamente una specie di pullup già integrato, però quello che almeno per me è incomprensibile è perché il pin RA4 come uscita OD è sensibile a quello che succede fuori, come se fosse anche un ingresso. A me sembrerebbe logico che dovrebbe essere in due stati a scelta fra flottante o zero. Invece è fissa a zero se non c'è un "uno" fuori.
    Forse dobbiamo scrivere alla Microchip :-)
    Fra l'altro è così anche se non è collegata a niente. Se misuro la resistenza fra RA4 e massa a PIC spento vedo un circuito aperto, ma se accendo il PIC vedo circa 100 ohm anche se la programmo a 1 (dovendo in tal caso risultare flottante)
     
    Top
    .
  14.  
    .
    Avatar

    Wunderlich -B
    peperonecrusco_lr

    Group
    Mastro Elettronico
    Posts
    3,399
    Location
    Galbiate (LC)

    Status
    Offline
    100 ohm non è plausibile.
    Se collegassi un led allora si dovrebbe accendere, ma invece ciò non accade; perché?

    In ogni caso è tutto normale. E' la celeberrima "Conduzione di sotto soglia"
     
    Top
    .
  15.  
    .
    Avatar

    Wunderlich
    cipollacipollacipollacipolla

    Group
    Radiomeccanico
    Posts
    1,310
    Location
    Silea (TV)

    Status
    Offline
    CITAZIONE (#Stefano# @ 12/12/2023, 15:24) 
    100 ohm non è plausibile.
    Se collegassi un led allora si dovrebbe accendere, ma invece ciò non accade; perché?

    Penso dipenda dal fatto che l'insieme led+resistenza sia in pratica come un pullup e quendi l'uscita si sblocca da zaro.
    Comunque ho provato anche con il sistema di tenere il pin come ingresso finché non serve come uscita, e funziona anche così.

    CITAZIONE
    In ogni caso è tutto normale. E' la celeberrima "Conduzione di sotto soglia"

    Non conosco :-)
     
    Top
    .
15 replies since 9/12/2023, 09:13   291 views
  Share  
.