Forum: Mikrocontroller und Digitale Elektronik LTC1731 Interface


von Daniel (Gast)


Lesenswert?

Hallo Zusammen,

ich habe ein Li-Ion Charger mit dem LTC1731 gebaut.
Es gibt die Möglichkeit den CHRG Pin mit einem Microprocessor zu 
koppeln.
Was ist hier mit Hi-Z gemeint?
Siehe Seite 9 im Datenblatt

Danke und Gruss Daniel

von Daniel (Gast)


Angehängte Dateien:

Lesenswert?

Hier noch der Datenblattauschnitt.

von Thorsten (Gast)


Lesenswert?

Z=Impendanz

von Daniel (Gast)


Lesenswert?

Ah OK danke, aber wie geht das genau? Denn der Output wird ja als Output 
konfiguriert und der Input als Input. Der Input erkennt ja sowieso nur 
High oder Low und mit dem Output gebe ich das ja.
Ich habe ja PortB und DDRB z.B.

von gnd3 (Gast)


Lesenswert?

der Output wird eben nicht einfach als Output konfiguriert, sondern 
quasi als Open Emitter Ausgang. Das Bit in PORTB ist immer 1 und als 
logischer Port wird das DDRB-Bit benutzt.

Damit wird dann der effektive Pullup-Widerstand zwischen 100k und knapp 
2k umgeschaltet. Um die 3 Ladezustände zu unterscheiden müsste das 
Programm ungefähr so aussehen:
1
PORTB |= CHRG_OUT;
2
DDRB |= CHRG_OUT;
3
if ((PORTB & CGRG_IN) == 0) {
4
   status = Charging;
5
}
6
else {
7
   DDRB &= ~CHRG_OUT;
8
   if ((PORTB & CHRG_IN) == 0) {
9
      status = C_10;
10
   }
11
   else {
12
      status = Stop;
13
   }
14
}

von Daniel (Gast)


Lesenswert?

Hi-Z bedeutet also einfach den Ausgang als Eingang schalten und diesen 
High ziehen?

von Daniel (Gast)


Lesenswert?

die oberer Variante klappt nicht. Habe die Schaltung so aufgebaut und 
als Test um den Mosfet zu simulieren einen Schalter auf CHRG über GND 
angeschlossen. So kann ich wechseln.

von Daniel (Gast)


Lesenswert?

[c]
x1 =0;
y1 =0;

DDRC  = 0b00000100;            //0= Eingang; 1 = Ausgang
if  (!(PINC & CHRG_IN )) {
x1 = 1;
}
DDRC  = 0b00000000;            //0= Eingang; 1 = Ausgang
if  (!(PINC & CHRG_IN )) {
  y1 = 1;
}
if (x1 == 1 & y1 ==1){
  display_ptext("Charging",2,0);
}
if (x1 == 0 & y1 ==1){
  display_ptext("C/10    ",2,0);

}
else if (y1 ==0){
display_ptext("Stop    ",2,0);
}
[/]

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.