Forum: Mikrocontroller und Digitale Elektronik Funktionsbeschreibung


von Täglich-einen-Apfel (Gast)


Lesenswert?

Hi, ich habe eine CPU- auslastungsanzeige für den USB Port für meine 
Prüfung der 10. klasse realschule ausgewählt (www.Meierspage.de) Nun hab 
ich das problem, dass ich die funktion nicht ganz verstehe, die sollte 
ich allerdings den Prüfern sagen können. Kann mir vielleicht "relativ" 
einfach erklären wie der IC funktioniert bzw. welche daten er woher 
bekommt und wie er die  umsetzt?

Danke für die Hilfe im voraus

von Elektro G. (e_g)


Lesenswert?

Um was geht es genau???
Haste vieleicht einen DIREKTEN Link zu dem Projekt.
Um was für einen IC geht es?

von Täglich-einen-Apfel (Gast)


Lesenswert?

Ja klar, Entschuldige

von Täglich-einen-Apfel (Gast)


Lesenswert?

http://www.meierspage.net/how2s/elektronik/elektronik_how2s.php

Hab genau die Teile bestellt, die Angegeben sind inkl. dem "alten" 
Microcotroller

von Johannes Raschke (Gast)


Lesenswert?

Offensichtlich baut das Projekt auf einer Software-USB-Implementierung 
auf dem 90S2313 auf, vgl. 
http://cesko.host.sk/IgorPlugUSB_RS232/IgorPlug-USB%20(AVR)%20RS232_eng.htm

Ich habe den Eindruck, dass man für so eine Prüfung besser eine 
Schaltung und Software wählen sollte, die man selbst erstellt hat oder 
zumindest verstehen kann. Von der USB-Adaptierung ist der Quellcode ja 
frei herunterladbar, aber den USB-Teil zu verstehen dürfte einige Zeit 
dauern und nur mit Zusatzliteratur möglich sein. Der Rest an dem Ding 
ist ja eher simpel.

Vielleicht baut der OP besser eine Variante für den seriellen Port, da 
kann er dann den Quellcode mit etwas Übung selber schreiben und auch 
erklären. Falls das nicht reicht, kann das Projekt ja beliebig erweitert 
werden...

Johannes

von Michael U. (Gast)


Lesenswert?

Hallo,

hmmm.... welchen Teil der Funktion? Wenn Du auch noch erklären 
willst/sollst, wie die USB-Software-Geschichte vom Igor 
funktioniert......

Gruß aus Berlin
Michael

von Markus L. (lucky79)


Lesenswert?

Also die eigentliche Steuerung machen die voll in der PC-Software.

Der IC (AVR) ist nichts anderes als ein USB-RS232 Wandler in Software 
(Treibername sagt ja schon alles) und die PC-Software steuert die LED 
mittels EIN/AUS befehlen über einen "COM-Port"...

Das ist der ganze Zauber dieses kleinen Mod-Projekts.

Wenn du dir die Sourcen der PC-Software anschaust, wirst du irgendwo 
serielle Übertragungen finden, wenn du die Steuerbefehle findest, 
könntest auch selber ein Programm schreiben, das die LEDs für andere 
Zwecke ansteuert - z.B. Netzwerkauslastung, Speicherauslastung,...

Grüße
Markus

von Täglich-einen-Apfel (Gast)


Lesenswert?

Nene so genau muss es nicht sein. Ich sollte nur wissen, wie der ic das 
Signal auf die leds umsetzt.

Weil gerade "erweitern" angesprochen wurde: Kann ich auch Jeweils 2 
Ultrahell LEDs parallel schalten oder schaft das der ic/usb Port nicht?

von Täglich-einen-Apfel (Gast)


Lesenswert?

Und wie macht das die Software? Was für eine Signal/stärke wird 
gesendet?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Es gibt mehrere Möglichkeiten sowas zu realisieren.

1/ Der µC (AT 90S2313 PDIP) wird mit dem PC eine serielle 
Datenübertragung aufbauen. Als Daten kann z.B die CPU Auslastung 
übertragen werden. Z.B. 0 für 0% 13 für 13%.... Die Aufgabe des µC ist 
jetzt diesen Wert auf die LEDs umzusetzen.

2/ Der µC (AT 90S2313 PDIP) wird mit dem PC eine serielle 
Datenübertragung aufbauen. Als Daten kommen aber z.B. 8-Bit Werte, die 
direkt als Zustand der Portpins 0-7 interpretiert werden. D.h. die 
Umsetzung vom CPU-Wert auf die Anzahl zu schaltender LEDs an diesen 
Portpins wird bereits auf dem PC gemacht.

Ich tendiere dazu, dass 2/ in diesem Projekt benutzt wird. Das 
USB-Anhängsel ist quasi ein universelles Mehrkanal Schaltmodul, welches 
von "intelligenter" PC-Software angesteuert wird. Genauer könnte man 
dies untersuchen, in dem man sich die Visual Basic Source für die 
CPU-Auslastung ansieht (wird CPU-Last übertragen oder 8-Bit-Wert als 
Schaltzustand).

Programmtechnisch ist die Umsetzung vo CPU-Wert auf Anzahl LEDs nicht so 
schwer. Du weisst bei 0& CPU ist keine LED aktiv und bei 100% CPU alle 
LEDs. Im einfachsten Fall benutzt du eine grosse Abfrage mit Vergleich 
von Schwellenwerten und Umkalierung auf die Anzahl LEDs

alle LED aus (LED... = 0)
wenn cpu > 100 - 8 * 100/8 dann LED1 an (LED1 = 1)
wenn cpu > 100 - 7 * 100/8 dann LED2 an
wenn cpu > 100 - 6 * 100/8 dann LED3 an
wenn cpu > 100 - 5 * 100/8 dann LED4 an
wenn cpu > 100 - 4 * 100/8 dann LED5 an
wenn cpu > 100 - 3 * 100/8 dann LED6 an
wenn cpu > 100 - 2 * 100/8 dann LED7 an
wenn cpu > 100 - 1 * 100/8 dann LED8 an

Um von den LED an/aus Werten auf den 8-Bit zu kommen, der als 
Schaltzustand übertragen wird, werden Einzelbitwerte miteinander logisch 
verODERt.

8bitwert = LED8 * 2^7 + LED7 * 2^6 + ...

Bsp.
LED1 = 1 (an)
LED2 = 1 (an)
LED3 bis LED8 = 0 (aus)
8bitwert = 0 * 2^7 + 0 * 2^6 + ... + 1 * 2^1 + 1 * 2^0

Man kann beide Schritte natürlich auch zusammenfassen und direkt bei der 
Abfrage die entsprechende Zweiterpotenz auf 8bitwert aufaddieren.

von Täglich-einen-Apfel (Gast)


Lesenswert?

Das klingt schon recht logisch für mich. Wenn ich mir das noch ein 
bischen durch den kPpf gehen lasse, dürft das duchaus keine blamage in 
der Prüfung geben. Danke an alle für die Antworten, besonders an Stefan

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.