µC Testboard was muss es haben? Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte
Autor |
µC Testboard was muss es haben? |
|
|
|
|
BID = 432547
ZeRo-Cool Gesprächig
Beiträge: 179 Wohnort: Kreßberg
|
|
Hi zusammne
ich will mit Assembler anfangen und mich mal so langsam an Microcontroller ran wagen...
Brauch ja dazu erstmal ein testboard (hab mich entschlossen das selber zu basteln)
jetzt meine Fragen, was muss ein gutes testboard alles haben so dass es für den einstieg erst mal ausreicht??
ich hab mir nen Atmega8535 bestellt (denke oder hoffe es zumindest, dass der für den anfang ok ist...)
Hab mir gestern noch schnell einen ISP (mit nem 74HC244) für den Parallel Port zusammen gelötet, nun kommt die große platine dran...
wenn ich so rum schaun, se ich immer das da noch ne serielle anschlus buchse drauf is mit dem MAX232... für was is die genau?
-nur um nen µC über die serielle schnittstelle zu programmieren oder brauch ich die auch noch für was anderes?
-falls die nur zum programmieren da is: brauch ich die dann oder reicht mir der og ISP für den Parallel Port??
Hab hier mal was gefunden: (Anhang)
wie sieht des mit der drossel aus, muss die sien (zwischen + und AVCC)
Geht auch ein Quarz mit 4MHZ??
Will die schaltung net mit netzteil speisen sondern mit 9V block (denke reicht vorerst mal dass ich oben experimentieren kann) Kann ja später wenns mal sein muss immer noch nachrüsten)
In der schaltung (Anhang) sind ja an 2 ausgängenen LED's dran die ihren strom ja vom µC beziehen, was darf ich maximal (also vom strom her gesehen) an einem ausgang dranhängen, ohne das der µC Schaden nimmt...?
Will auf jedenfall 2 leds draufmachen eine die Power signalisiert (ist ja kein problem) und die andere die mir signalisiert ob die programmer software arbeitet Also die die vom 74HC244 vom ISP kommt (muss ich da auch strom beachten?? (hätte allgemein an leds mit 2V und 10mA gedacht) sind die ok oder is das zu viel??
Ist die schaltung so im Großen und ganzen ok, oder kann ich auf manche sachen verzichten, bzw sollte ich noch was hinzufügen??
Sollten da noch irgendwelche jumper drauf weil bei manche schaltungen sieht man auf dem photzo das es da n paar sachen (keine ahnung was) zu juimpern gibt...?!
Vielen Dank schonmal im Voraus!!!
mfg
ZeRo-Cool
[ Diese Nachricht wurde geändert von: ZeRo-Cool am 27 Mai 2007 13:16 ] |
|
BID = 432585
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
|
Prinzipiell kannst du alles mit aufbauen, von dem du glaubst, dass es wichtig wäre:
- Max232 sollte drauf, damit lassen sich Daten vom µC zum Computer senden und auch andersrum.
- Quarz sollte auch drauf, damit sind die Programme dann, abhängig von der Quarzfrequenz, viel schneller
- Anschluss für den Programmer (typ. SCK, /RESET, MOSI, MISO)
- Mache es lieber mit Steckernetzteil, denn ein 9V-Block wird dir nur kurze Zeit hilfreich sein (eigene Erfahrung mit stundenlangen Programmierexcessen )
- Ein Anschluss für ein Display sollte ebenfalls vorhanden sein (7 Leitungen: E, RS, RW, Data4-7)
- Mache dir drei bis vier LEDn mit aufs Board. Um die Maximum Ratings nicht zu überschreiten nimmste am besten Low-Current-LEDn zu je 2mA (entsprechender Vorwiderstand)
- Hau gleich ein paar Taster mit drauf
- Einen Empfänger wie den TSOP1136 kannste ebenfalls integrieren, am besten machste den an INT0 oder INT1 ran - damit lassen sich herkömmliche IR-Fernbedienungen benutzen
- Mache ebenfalls einen RESET-Taster mit drauf
- Führe alle anderen PORTs so heraus, dass man hier Erweiterungen anschließen kann.
_________________
|
|
BID = 432595
ZeRo-Cool Gesprächig
Beiträge: 179 Wohnort: Kreßberg
|
Hi erstmal vielen Dank für deine Antwort!!
Display anschluss?? wo soll das hin?? (hab jetzt schonmal angefangen die PA0-PA7 und mit + und GND auf ne 10 pol leiste und das mit den anderen drei auch noch (PB, PC, PD) also so wie im plan... dann kann ich doch das display im prinzip da dranhängen oder wirdest du des doppelt ausführen??
Taster und und led dann je 3 st wo würdest du die hinmachen also an welchen ein und ausgang (mal allgemeine frage sind die PA0-PD7) fest definierte ein und ausgänge oder kann ich beim programmieren definieren, was ein und was ausgang ist??)
Zitat :
| Einen Empfänger wie den TSOP1136 kannste ebenfalls integrieren, am besten machste den an INT0 oder INT1 ran - damit lassen sich herkömmliche IR-Fernbedienungen benutzen |
was meinst du damit genau??
Reset taster (lass mich raten falls er sich aufhängt oder ) wie muss der genau angeschlossen werden?
EDIT: Soll ich den AVCC jetzt auf VCC legen (alos brücken)??
Den AREF leerlassen oder?
Sry für die warscheinlich blöden Fragen aber wie gesagt, fange ja erst an...
Vielen Dank für die Hilfe!!
mfg
ZeRo-Cool
[ Diese Nachricht wurde geändert von: ZeRo-Cool am 27 Mai 2007 16:30 ]
|
BID = 432602
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Moin,
Zitat :
|
Display anschluss?? wo soll das hin?? (hab jetzt schonmal angefangen die PA0-PA7 und mit + und GND auf ne 10 pol leiste und das mit den anderen drei auch noch (PB, PC, PD) also so wie im plan... dann kann ich doch das display im prinzip da dranhängen oder wirdest du des doppelt ausführen? |
Alles nicht so wild, kannst du an jeden PORT-Pin anschließen. Hauptsache, es sind insgesamt 7 verfügbar dafür.
Sinnigerweise macht man das so, dass die Datenleitungen alle die gleiche IO-Adresse haben (also den gleichen Port) und nebeneinander sind (z.b. von Bit0-Bit3 oder von Bit2 bis Bit5)
Das ist dann später alle eine Frage der Soiftware.
Zitat :
|
Taster und und led dann je 3 st wo würdest du die hinmachen also an welchen ein und ausgang (mal allgemeine frage sind die PA0-PD7) fest definierte ein und ausgänge oder kann ich beim programmieren definieren, was ein und was ausgang ist??)
|
Du kannst softwaremäßig definieren, was ein Ein- und was ein Ausgang wird:
Den Pin 3 von PA auf Ausgang schalten:
ldi r16, 1<<3 ;r16 -> 01000
out DDRA, r16
;wenn ein Bit im Datenrichtungsregister DDRx gesetzt ist, ist der entsprechende Pin als Ausgang definiert
ldi r16, 1<<3
out PORTA, r16
schaltet diesen Pin ein.
(für später: besser, man maskiert Bits, um ein Bit unabhängig von anderen ändern zu können:
in r16, PORTA
ori r16, 1<<3 ;0 oder 1 oder 1 ist 1
out PORTA, r16
Soll der Pin ein Eingang sein, dann muss das entsprechende Bit im DDRx-Register gelöscht werden:
entweder so (unschön):
ldi r16, 0<<3
out DDRA, r16
(das löscht zwar das Bit, aber leider auch alle anderen)
oder (schöner) so:
in r16, DDRA
andi r16, ~(1<<3) ;1 oder 0 and 0 ist immer 0
out DDRA, r16
Die ~ vor der Klammer dreht alle Bits um, sodass der Inhalt von r16 mit 0b11110111 ge-andet-wird.
Somit ändert sich nur das gewüsnchte Bit.
Zitat :
|
was meinst du damit genau??
|
Damit kannst du herkömmliche Fernbedienungskodes entschlüsseln (z.b. den RC5-Kode).
Zitat :
|
Reset taster (lass mich raten falls er sich aufhängt oder ) wie muss der genau angeschlossen werden?
|
Eine Seite des Tasters auf Masse/GND, die andere Seite an /RESET vom µC. Sicherheitshalber noch einen Pull-Up-Widerstand von 10kΩ nach 5V.
Edit:
Zitat :
|
EDIT: Soll ich den AVCC jetzt auf VCC legen (alos brücken)??
Den AREF leerlassen oder?
|
AVCC auf 5V, ohne irgendwelche Brücken. (Im Datenblatt wird zwar ne Induktivität empfohlen, aber man sollte nicht zuhoch greifen beim Anfang)
AREF je nach interner Konfiguration des ADCs entweder mit Kondensator 1µF gegen Masse oder aber so installieren, dass man dort eine Spannung anlegen kann (Dient als Referenzspannung für den ADC).
Ich würds mit Kondensator gegen Masse legen, wenn du keine externe Referenz brauchst.
_________________
[ Diese Nachricht wurde geändert von: DonComi am 27 Mai 2007 16:33 ]
[ Diese Nachricht wurde geändert von: DonComi am 27 Mai 2007 16:37 ]
|
BID = 432607
ZeRo-Cool Gesprächig
Beiträge: 179 Wohnort: Kreßberg
|
Zitat :
| Ich würds mit Kondensator gegen Masse legen, wenn du keine externe Referenz brauchst. |
Ich hab doch davon noch 0 Ahnung deswegen weiß ich auch ned, ob ich die mal brauchen werd...
Das mit dem Display kann ich ja dann an meine klemmen dranhängen, wenns mal so weit ist...
Und das mit der Fernbedienung kann ich ja dann ebenso machen...
ok welche ausgäge / eingänge soll ich dann nhemen für led und taster? die ersten 6 oder??
wie muss ich es dort anschließen eine steite des taster s auf den ausgnag und die andere + oder Masse??
ebenso bei der led?? liefert mir der ein GND Signal oder ein + Signal also welcher pin zum µC Anode oder kathode??
Vielen Dank!
mfg
ZeRo-Cool
|
BID = 432653
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Moin,
Es ist im Prinzip Jacke wie Hose, wie du die Hardware anschließt. Mach es am besten so, wie es vom Aufbau her am besten ist und dass du ggf. andere Funktionen eines Pins noch nutzen kannst. Beispiel: Der PortA kann ganz normal für Ein/Ausgabe benutzt werden, er hat aber auch noch mehr Funktionen, in diesem Fall auch analoge Eingänge.
Du musst sehen, welche Ausgänge frei sind (=später nicht für bestimmte Sachen genutzt werden) und wie man das am besten hardwaremäßig aufbauen kann; denn: der Rest ist software. Du kannst an jeden Pin eine LED oder einen Taster anschließen. Alles andere hängt dann vom Programm ab.
Genauso verhält es sich mit der Polung der LED / Logik des Tasters:
Ich kann den Taster so anschließen, dass er gedrückt ne 1 oder ne 0 ausgiebt - das Programm kann beides als Druck interpretieren.
Ebenso die LED:
Sie kann aufleuchten, wenn ich ne 0 schreibe (Anode über Widerstand an 5V und Kathode an den µC) oder wenn ich ne 1 schreibe (Kathode über Widerstand an GND und Anode an µC)
I.d.R. kann ein Ausgang mehr Strom liefern, wenn er nach Masse schaltet.
Aber hier ist es komplett egal, solange kein zuhoher Strom fließt (2mA is ok)
Bei Tastern solltest du, praktischerweise, nach Masse ziehen, also, wenn Taste gedrückt, eine 0 angibt, dass gedrückt wird. Praktisch ist das, da man softwaremäßig einen Pullup-Widerstand aktivieren kann (DDRx auf Eingabng (=0) und PORTX auf 1.
Bedenke, dass du Rx und Tx freilässt, damit können serielle Daten übertragen werden und diese Funktion solltest du unbedingt nutzen.
_________________
|
BID = 432677
ZeRo-Cool Gesprächig
Beiträge: 179 Wohnort: Kreßberg
|
hi
erstmal vielen vielen......Dank @DonComi!!!
Hab das ganze nun so weit, wenn ich jetzt versuche mit pony prog über Parallel auszulesen, kommt als ergebnis alles mit "FF" also (logisch is ja leer)
also programmer hab ich bei PonyProg eingestellt "Avr ISP I/O"
Wenn er ausließt leuchtet die LED, die den Programmer zugriff anzeigt...
Allerdings zeigt er wenn ich auf auslesen gehe diese meldung an: "Device missing or unknown Device (-24)" wenn ich dann auf "ignore" geh, geht die LED (auslese LED) wieder an und dann zeigt er mir den inhalt (ich hoffe doch das es auch der Inahlt ist) meines µC's an...
Kann ich da jetzt zum testen mal irgendwas drauf machen oder sollte ich dabei was beachten (irgendwas von "Fuse-Bits" oder so hab ich da mal gelesen, muss ich die vorher einstellen?? oder kann ich da jetzt willkürlich irgend ne *.hex drauf spielen??)
EDIT: Toll... ich glaub des mit den "FF" hat doch nix zu sagen, wenn ich nur den ISP alleine ohne programmer board und ohne stromversorgung anschließt gibt mir Pony Prog auch das gleiche raus...
-ist das normal?
-Sollte ich zum testen des boards n anderes Programm nehmen?? (welches)?
-oder hab ich einfach nur nen Fehler beim löten gemacht??
Vielen Dank!!
mfg
ZeRo-Cool
[ Diese Nachricht wurde geändert von: ZeRo-Cool am 27 Mai 2007 21:22 ]
|
BID = 432705
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Hallo,
Nein.
Zitat :
|
-Sollte ich zum testen des boards n anderes Programm nehmen?? (welches)?
|
Nein, bleib mal PonyProg, dafür ist ja auch der Adapter (,oder? zeig mal den Schaltplan.)
Zitat :
|
-oder hab ich einfach nur nen Fehler beim löten gemacht??
|
Das kann ich dir nicht sagen - aber es ist gut möglich. Wenn es der von mir vermutete Programmer-Adapter von LANcos ist (also für Ponyprog entwickelt) dann kann es gut ein Fehler beim Aufbau sein. Der Programmieradapter ist leicht konfus mit seiner Schaltung, auch der Parallelschaltung von Ausgängen des '244ers.
Zitat :
|
Allerdings zeigt er wenn ich auf auslesen gehe diese meldung an: "Device missing or unknown Device (-24)" wenn ich dann auf "ignore" geh, geht die LED (auslese LED) wieder an und dann zeigt er mir den inhalt (ich hoffe doch das es auch der Inahlt ist) meines µC's an...
|
Das sind durchaus normale Anfängerprobleme, die ich auch oft hatte. Ist denn der richtige Zielchip eingestellt?
Hast du den Hardware Calibration Test durchgeführt?
Stimmt der LPT-Port (anscheinend aber schon, da LED was anzeigt)
- Die Fusebits solltest du vorerst nicht ändern. Da gibt einige fiese Sachen, mit denen man seinen Contrller schießen kann.
Der Sollte auch so laufen (etwas mit 1MHz interner Takt)
Zitat :
|
Kann ich da jetzt zum testen mal irgendwas drauf machen oder sollte ich dabei was beachten (irgendwas von "Fuse-Bits" oder so hab ich da mal gelesen, muss ich die vorher einstellen?? oder kann ich da jetzt willkürlich irgend ne *.hex drauf spielen??) |
Spiel mal lieber kein willkürliches Programm drauf.
Sag mir, wo ne LED dranhängt und ich mache nen kleinen Assemblerkode, der sie aufleuchten lässt.
_________________
|
BID = 432714
ZeRo-Cool Gesprächig
Beiträge: 179 Wohnort: Kreßberg
|
also der ISP is der von lancos... und zwar der etwas aufändigere mit den widerständen drin... (nicht der ganz einfache)
Bild eingefügt
Belegung PA0-PA3 sind taster PA4-PA7 sind LEDn...
Das Programm hab ich nicht wirklich eingestellt... was muss man da alles einstellen und welchen test...??
Sry für all die blöden Fragen...
...und vielen Dank für deine Hilfe!!
mfg
ZeRo-Cool
|
BID = 432726
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Alsooo:
PonyProg -> Menü Setup -> Interface Setup
Unter "I/O port setup": Parallel
Darunter versuchste mal "AVR ISP I/O"
Darunter dann den gewünschten LPT-Port (vermutlich LPT1)
Dann mal auf "Probe" klicken - er sollte anzeigen "Test OK"
Ist dies der Fall, dann folgend weiter:
Setup -> Calibration -> Yes
Nach ein paar Sekündchen sollte er anzeigen "Calibration OK"
Ist dies ebenfalls der Fall, dann stellst du den Zielchip ein (ATmega8535). Sollte deine Version diesen nicht unterstützen, besorg dir die neue alte Version 2.06f Beta.
Wenn soweit alles korrekt eingestellt ist, dann kannst du mit STRG+E bzw. mit der Schaltfläche "Erase" den Controller erstmal löschen. Zeigt das Proigramm eine Erfolgsmeldung an, dann drückst du STRG+R bzw. read device.
Nach ein paar 10 Sekunden sollte alles voller FF sein - > das Flash wurde ordnungsgemäß gelöscht.
Da PP aber grundauf beim Starten FF anzeigt, vorerst den Puffer mit 00 oder so überschreiben (Utility -> Fill Buffer)
Edit: Zum Programm:
mach mal folgendes:
Code : |
.include "m16def.inc"
reset:
;Stackpointer initialisieren
ldi r16, LOW(RAMEND)
ldi r17, HIGH(RAMEND)
out SPL, r16
out SPH, r17
;Datenrichtung setzen
in r16, DDRA
andi r16, ~(1<<PORTA0|1<<PORTA1|1<<PORTA2|1<<PORTA3);sehr ausfürlich
ori r16, (1<<PORTA4|1<<PORTA5|1<<PORTA6|1<<PORTA7);auch sehr ausfürlich...
out DDRA, r16
;Wenn Taster nach Masse ziehen, Pull-Up aktivieren:
in r16, PORTA
ori r16, (1<<PORTA0|1<<PORTA1|1<<PORTA2|1<<PORTA3)
;und dann auch gleich sicherheitshalber alle LED ausschalten
andi r16, ~(1<<PORTA4|1<<PORTA5|1<<PORTA6|1<<PORTA7)
out PORTA, r16 ;und neuen Wert ausgeben
;So jetzt mal was machen:
neu_laden:
ldi r16, 1<<PORTA4
weiterschieben:
in r17, PORTA
andi r17, ~(1<<PORTA4|1<<PORTA5|1<<PORTA6|1<<PORTA7);alle LEDs löschen
or r17, r16 ;beie Werte verknüpfen
out PORTA, r17
clc ;C-flagge löschen
rol r16 ;r16 weiterschieben
rcall delay
tst r16
brne weiterschieben
rjmp neu_laden
;obigatorisches Programmende:
rjmp PC
delay:
ldi XL, 0xFF
ldi XH, 0x10
sbiw XL, 1
brne PC-1
ret
|
|
So, das sollte klappen. Wenn nicht, dann liegts an meiner Müdigkeit
Das Teil macht nen kleines Lauflicht mit deinen LEDs. Taster kannste auch abfragen, die Datenrichtung ist schon mit drin.
_________________
[ Diese Nachricht wurde geändert von: DonComi am 28 Mai 2007 1:51 ]
|
BID = 432728
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
-Doppelposting-
[ Diese Nachricht wurde geändert von: DonComi am 28 Mai 2007 1:58 ]
|
BID = 432729
ZeRo-Cool Gesprächig
Beiträge: 179 Wohnort: Kreßberg
|
ok alles gemacht... bis "Erase" geht alles noch Problemlos, aber beim auslesen kommt nun "Bad Device, select the correct type (-23)"
|
BID = 432730
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Sind denn MISO mit MISO, MOSI mit MOI und SCK mit SCK sowie RESET korrekt verbunden?
Hast du noch einen anderen AVR, den du mal anschließen kannst?
Hast du versucht, Fusebits zu ändern?
Passiert am Druckerport überhaupt etwas, wenn PP drauf zugreift?
Hast du deine Schaltung nochmals mit dem Plan verglichen, um potentielle Aufbaufehler auszuschließen?
Edit:
Miss mal die spannung über ND und VCC am AVR.
Ist sie innerhalb der erlaubten Bereiche? (4.5-5.5V etwa?)
Wird der Controller beim Programmieren resettet (RESET muss dann auf LOW liegen!)?
_________________
[ Diese Nachricht wurde geändert von: DonComi am 28 Mai 2007 2:02 ]
|
BID = 432732
ZeRo-Cool Gesprächig
Beiträge: 179 Wohnort: Kreßberg
|
Hi
Alos grad nochmal durchgemessen... die promgrammierpins gehen alles vom ISP zum µC durch...
Einen zweiten AVR hab ich nicht
An den Fuses hab ich nix gemacht
verglichen hab ich sie auch schon
was meinst du damit, ob am drucker port "estwas passiert"??
was ist "ND"??
Also er geht beim auslesen auf low (10mV)
VCC=4,97V
Schreiben geht nicht, kommt "write Error (-21)"
kahm auch als ich versuchte alle bits auf "00" zu programmieren...
mfg
ZeRo-Cool
|
BID = 432733
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Mit ND war GND gemeint. Im Laufe der Nacht sinkt meine Trefferquote...
Merkwürdig, dass es nicht klappt.
Zitat :
|
was meinst du damit, ob am drucker port "estwas passiert"??
|
Na, ob sich auch die Werte an den Datenleitungen ändern. Scheint aber, da ja RESET funktioniert.
Ich geh jetzt erstmal schlafen, alles andere morgen.
_________________
|
|
Zum Ersatzteileshop
Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum
Datenschutz
Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland
gerechnet auf die letzten 30 Tage haben wir 19 Beiträge im Durchschnitt pro Tag heute wurden bisher 19 Beiträge verfasst © x sparkkelsputz Besucher : 182420719 Heute : 5217 Gestern : 7490 Online : 201 28.11.2024 22:51 6 Besucher in den letzten 60 Sekunden alle 10.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
|
xcvb
ycvb
0.0483870506287
|