PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ein paar newbie Fragen bezüglich MC's mit 8051 (AT89C5132)



Wasserzähler
03.10.2007, 17:21
Hallo leute!
Ich habe folgende Aufgabenstellung:

Ich brauche einen MC, der wenn möglich USB hat und einen ADC, bei einer vergleichsweise sehr geringen Versorgungsspannung außerdem wenn möglich mit einer 8051 Architektur, da ich schon ein paar Erfahrungen damit sammeln konnte. Des weiteren sollte der PROM wieder löschbar sein, da ich den MC zu testzwecken immer wieder löschen will, also ein EEPROM wäre ganz gut.
Nun habe ich schon etwas gesucht und bin auf den AT89C5132 gestoßen:

Nun habe ich aber einige Fragen:
Wo kauft Ihr die MC's?
Wie Programmiert Ihr die MC's? (Mit welcher Hardware und welcher Software)
Wo oder wie macht ihr die Beschaltung der MC's? (Also wo bekommt ihr das Platinenlayout her?)

mfg: Wasserzähler

Lemonsquash
04.10.2007, 08:26
Hallo Wasserzähler und willkommen im Forum :)

Wir kaufen die Dinger z.B. hier im RN-Shop, bei Reichelt, Conrad, Pollin usw. Da gibt es viele Versender...

Ich Programmiere entweder mit meinem Entwicklungsboard (AVR-Irgendwas von Pollin für 14 €) und PonyProg oder bei selbstbauschaltungen in-system mit einem In-System-Programmer (Siehe Wiki) und ebenfalls PonyProg

Ich mache schaltungen und Layout mit Eagle. Bzw. manchmal Schaltungen auch auf Papier und nur Layout mit Eagle ;)

Falls du irgendwo im Netz ein fertiges Layout z.B. zum Download hast und das auf eine Platine bringen willst, gibts da eine sehr effektive Methode, die allerdings einen Laserdrucker vorraussetzt. Such einfach mal hier im Forum nach "Toner-Transfer-Methode". Da findest du sicher was...

Mfg.
Lemon

Wasserzähler
04.10.2007, 10:56
Hallo!
Danke für deine schnelle Antwort!
Ich mache in der Schule einen Wasserzähler als Abiturprojekt mit einem Microcontroller!
In der Schule haben wir Platinen, mit denen wir die MC's Programmieren, aber ich bräuchte eine Platine für den MC, damit ich mit ihm arbeiten kann! (also keinen Platine zum Programmieren sondern eine, um mit ihm arbeiten zu können!)

Wie macht ihr die Schaltung, lest ihr alles aus dem Datenblatt raus?
Oder wie?
Ehrlich gesagt habe ich keinen Plan wie ich eine MC Platine entwickle.

mfg

Lemonsquash
04.10.2007, 11:49
naja, also die Schaltung - zumindest die Grundbeschaltung - steht ja meistens tatsächlich schon fertig im Datenblatt des MC.

Und dann muss sie nur noch übernommen werden, zb. eben in Eagle, und durch die eigenen "Problemlösungsschaltungen" erweitert werden...

Was darf ich denn eigentlich unter einem "Wasserzähler" verstehen? Ist das so eine Art Durchflussmesser, oder meinst eher sowas wie nen Feuchtesensor?

Mfg.
Lemon

Wasserzähler
04.10.2007, 13:28
Hallo!
Nochmal Danke für deine schnellen Antworten!

Also aufgabe ist es, einen Wasserzähler zu bauen, der mit einem MC arbeitet und durch einen Generator den Messwert und die Eigene Stromversorgung von einem Flügelrad bekommt (also ein durchflusswasserzähler!)
Das mit der Stromversorgung über den Generator ist wahrscheinlich nicht möglich, da der Generator viel zu wenig spannung liefert! (Allerdings sind wir hier noch in der Testphase)

Zusammenfassend: Wir müssen einen MC so programmieren, dass er den Wasserdurchlauf von z.B: einer Dusche misst und auf einem Display ausgibt!
Wobei die sache mit dem Display eher nebensächlich ist. Also priorität hat somit der MC und eine Schaltung des MC's und auch das finden eines geeigneten Generators zum erhalten eines von der Durchflussmenge abhängigen Messewertes!

Also weiß z.B: nicht, wo da die Schaltung im Datenblatt steht!

Lemonsquash
04.10.2007, 14:08
Hmm.

Das mit der Stromversorgung müsste theoretisch machbar sein, wenn man wirklich von einer laufenden Dusche das Wasser nimmt... Aber lass mal lieber ;)

Ansonsten eigentlich einfach, brauchst gar ned viel. Im Prinzip (ich kenne jetzt nicht den von dir ausgesuchten AVR aber ich gehe mal vom mega8 aus) kannst diesen Aufbau auch ohne Platine auf nem Steckbrett machen...

Dazu nimmst so nen fertigen Druchflussmengensensor vom Conrad zb. und hängst den (sofern er keine zusatzschaltung braucht) an den ADC. Das Display ist ebenso kein Problem: Verbinden, programmiern, fertig.

USB? Keine Ahnung. Seriell --> USB-Konverter ?
Oder kann der von dir genannte AVR schon USB?

Wasserzähler
04.10.2007, 15:03
Hallo!

Also ich habe den Atmega 8 bekommen heute mit einem programmierboard. die software lade ich gerade. Allerdings habe ich ein problem gibt es irgendwo eine anleitung wie man den mc programmiert?
ich habe keil als programmiersoftware.
also gibt es irgendwo eine dokumentation, mit allen befehlen usw.....

sry wenn ich mich vielleicht jetzt blöd ausdrücke, aber ich kenn mich wirklich zur zeit gar nicht aus....

mfg

Lemonsquash
04.10.2007, 15:56
Also, KEIL ist für den Mega8 nicht besonders geeignet. Sorry!

Hättest das ma vorher gesagt ;)

Hast du Erfahrungen mit Basic?

Lemonsquash
04.10.2007, 16:38
Falls ja, saug dir die Demo von Bascom für AVR. Die kannst problemlos voll nutzen, ist einfach, relativ brauchbar dokumentiert, und es giebt hier ein passendes Unterforum voller Bascom-Fragen / Lösungen (und ich kenn mich auch bissel damit aus)

Ansonsten findest den vollen Befehlssatz auf der Homepage von Atmel bei AVR ATMega8-16PU

http://www.atmel.com/dyn/products/product_card.asp?family_id=607&family_name=AVR+8%2DBit+RISC+&part_id=2004

robo junior
04.10.2007, 17:18
Hallo,

mal ein paar grundsätzliche Fragen zu eurem Projekt:
- müsst ihr den Sensor für den Wasserdurchfluss selbst bauen, oder dürft ihr den kaufen?
- muss eure Schaltung von dem Wasserstrom/ bzw. dem durch diesen angetriebenen Generator mit Strom versorgt werden?
- was soll mit den gemessenen Werten gemacht werden, wenn das Display ja nur zusätzlich ist?
- wofür willst du einen USB Anschluss?

Als Mikrocontroller würde ich einen Atmel AVR (z.B. ATMega8) nehmen. (liegt allerdings daran, dass ich keinen 8051er kenne und ich ziemlich schnell in der Bedinung der Atmels drin war und diese auch recht einfach finde (vor allem mit den vielen Anleitungen dazu, die es hier gibt und das Datenblatt ist ja auch recht gut))
Programmieren kannst du in Bascom, wobei ich persönlich C (AVR GCC) besser finde, da es ganz Freeware ist (nicht nur bis 4kB Programmcode, auch wenn ihr bei diesem Projekt eigentlich nicht mehr brauchen dürftet) und man recht Hardwarenah arbeiten kann (Register setzen etc) aber im Gegensatz zu Assembler doch ziemlich viele Vorteile hat. (wenn es nicht ultimativ auf die Geschwindigkeit ankommt, was es hier ja auch nicht tut)

Lemonsquash
04.10.2007, 20:18
Also, prinzipiell stimme ich Robojunior da zu,

auch beim Thema AVR GCC muss ich dir recht geben.

Aber ich habe ihm hier zu Basic geraten, da ich nicht davon ausgehe,
dass diese Gruppe einen guten C programmierer hat und Basic ist
halt nunmal für nen Anfänger einfacher. Außerdem haben mir die
4KB immer völlig gereicht...

Naja, schaun wir mal was Wasserzähler zu deinen Fragen sagt...

Mfg.
Lemon

Wasserzähler
05.10.2007, 08:07
Hallo Leute!
Danke für eure vielen Antworten:

1. Also ich werde wohl doch einen atmega8 verwenden und keinen 8051er
2. ich habe schon öfters mc's mit c programmiert allerdings waren die systeme damals nicht zeitgemäß, außerdem programmieren wir schon ewig c/c++ in der schule also ich will basic nicht verwenden.
3. wenn keil nicht geeigent ist, wie siehts mit codevision avr aus?
4. das display ist ein fixer bestandteil des projekts aber ich will zuerst mal den mc überhaupt zum laufen bringen.
5. die schaltung sollte von dem generator angetrieben werden, wenn dies aber technisch nicht möglich ist, dann muss ich wohl auf einen akku umsteigen.
6. usb anschluss ist für den anfang nicht unbedingt notwendig. zuerst mal muss ich den mc zum laufen bringen...
7. wir haben einen mechanischen wasserzähler ausgeschlachtet und daran einen generator angeschlossen, also das gehäuse und das schaufelrad müssen wir nicht bauen. weil ja ein schaufelrad z.B: ziemlich kacke zum produzieren ist.
8. keil haben wir sowieso in der schule als is es ja kein problem, dass es nicht geht....

mfg Wasserzähler!

Lemonsquash
05.10.2007, 10:05
Ok, wenn das so ist, dass ihr alle C/C++ - Erfahren seid, dann nehmt natürlich AVR GCC oder sonst was in der Art. Das wusste ich ja nicht...

Wie gesagt, ein Display ist ja im Prinzip kein Problem, solange es ein LCD ist. Einfach richtig verkabeln (siehe hierzu wieder wiki und forum) und den code dazu.

Beim Mega8 ist standardmäßig erstmal kein USB drinn. Aber mit nem Pegelwandler (MAX232) kommst einfach und Problemlos auf seriell und kannst dann ja mit nem billigen Seriell <--> USB wandler arbeiten.

Bezüglich des Stromes: Mann müsste mal ausmessen, was euer Generator so an Volt und max.A hergibt. Der Mega8 läuft glaub ich mit 3,3 V und wenigen mA. Das Display verbraucht dann allerdings schon etwas mehr...

Wasserzähler
05.10.2007, 11:40
Also die sache ist ja nicht das display und die stromversorgung, mir geht es darum, dass ich den mc zum laufen bringen will!
also ich habe so ein tolles programmierboard bekommen, allerdings sind da zwei plätze in die der mc reinpasst und die jumperkonfiguration kenne ich auch nicht und was ist das avr gcc?

robo junior
05.10.2007, 11:57
Mit deinem Programmierboard kann dir so wohl keiner weiterhelfen, wenn du nicht mal sagst, was es für eins ist.
Allerdings brauchst du sowas eigentlich auch gar nicht. Wie ein AVR beschaltet wird kannst du hier nachlesen: https://www.roboternetz.de/wissen/index.php/AVR-Einstieg_leicht_gemacht
Sinnvoll finde ich eigentlich diese Beschaltung: https://www.roboternetz.de/wissen/index.php/Bild:Avrtutorial_grundschaltung_spannung.gif
Dann kannst du dir in Eagle (Platinenlayoutprogramm) die zusätzliche Beschaltung für Display und Sensor entwerfen und machst das ganze auf eine eigene Platine.
Zum Programmieren brauchst du dann ein ISP Programmierkabel (kannst dann den uC über den Parallelport programmieren). Als Software kannst du z.B. das Paket "Win AVR" benutzen (enthält Programmeditor, Compiler etc.) Einfach mal bei Google suchen.
Die Durchflussmessung würde ich nicht über den Generator machen. Ihr könntet z.B. an der Welle des mechanischen Wasserzählers einen Impulsgeber anbringen und dann die Impulse pro Zeiteinheit oder die Dauer zwischen 2 Impulsen messen. Das ist dann mit dem uC auch überhaupt kein Problem mehr.
Ob ihr dann die Schaltung mit dem Strom vom Generator betreiben könnt/wollt könnt ihr dann später immer noch entscheiden.

Lemonsquash
05.10.2007, 12:34
Volle Zustimmung :mrgreen: :!:

Lemonsquash
05.10.2007, 13:23
Ach ja, was mir grad einfällt:

Was hat du denn da für ein Programmierboard? Wenn du von Jumperkonfigs sprichst, klingt das für mich wie dieses?

http://www.pollin.de/shop/detail.php?pg=NQ==&a=MTY5OTgxOTk=

Ist es das? Dann kann ich dir nämlich mit dem Jumperplan helfen...

Wasserzähler
05.10.2007, 15:00
Hallo!

Sorry, dass ich nicht dazugeschrieben habe was es für ein board es ist, aber auswendig wusste ich es nicht und ich konnte erst daheim nachsehen!

Also es ist ein AVR STK500 board!
Wird wahrscheinlich schon etwas in die jahre gekommen sein, ja... ist von 2003

Also bezüglich Software kenn ich mich trotzdem nicht aus!

was soll ich jetzt nehmen?
win avr oder avr studio oder code vision oder avr gcc

Lemonsquash
05.10.2007, 15:08
Ich glaub Win AVR ist das von Atmel, das wird zu diesem Board
empfohlen.

Bitte vorsichtshalber nochmal auf der Homepage von Atmel nachgucken.
Such da einfach mal nach Mega8 oder benutz den Link den ich oben schon gepostet hab...

Da kannst die Software auch frei runterladen...

Wasserzähler
05.10.2007, 17:18
Hallo!
Danke wieder mal für die vielen antworten!

Also ich habe mir jetzt mal das handbuch vom stk500 zu gemüte geführt!
allerdings kann ich auf das stk500 nicht mit dem AVR-Studio (Atmel Programm) über die rs232 schnittstelle zugreifen. Also wenn ich auf Verbinden Drücke, dann arbeitet er einige Sekunden und dann kommt wieder das Fenster wo ich verbinden drücken soll!
Habt ihr eine ahnung woran das liegt? (Also der MC ist wie im handbuch beschrieben angeschlossen, auch die jumper sind richtig gesetzt, aber ich habe keine ahunung wie das gehen soll...)
Allerdings könnte auch die Serielle schnittstelle schuld sein, da ich sie erst jetzt installiert habe aber ich weiß nicht wie ich das kontrollieren kann, ob sie geht (ich denke aber nicht dass sie schuld ist, wollte es aber nur mal eben erwähnen, dass ich nicht zu 100% weiß, dass sie in ordnung ist!)

Und außerdem habe ich mir das winAVR geladen aber auch keinen Plan wie ich da was programmieren soll! (keine Ahnung welche Includes, wie ich auf die einzelnen Ports in c zugreife) habt ihr ein testprogramm das in c geschrieben ist, das vl. mit ein paar led's an den Ports herumspielt oder das mit taster herumspielt?

das mc programmieren das wir schon mal gemacht hatten war ja einfach, da hatten wir ein system, das schon gelaufen ist und wir hatten zettel mit befehlen wie man den mc programmiert, aber so wie jetzt hab ich absolut keinen plan.

ich hoffe auf hilfe!


mfg Wasserzähler

Windi
05.10.2007, 21:34
Ich habe in meiner beruflichen Laufbahn schon etliche Wasserzähler elektrisch angeschlossen. Die hatten alle einen Impulsausgang, Je nach Größe des Zählers zwischen 1 l/Impuls und 1000 l/Impuls.
Gerade wenn die Schaltung möglichst wenig Strom benötigen soll würde sich ein Impulsausgang anbieten.
Den Prozessor wenn er nicht benötigt wird in den "Schlafmodus" schalten. Kommt ein Impuls wird er über einen Interrupt aufgeweckt.

Lemonsquash
08.10.2007, 09:01
https://www.roboternetz.de/wissen/index.php/Kategorie:Quellcode_C