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
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.
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 | }
|
Hi-Z bedeutet also einfach den Ausgang als Eingang schalten und diesen High ziehen?
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.
[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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.