-
hi allerseits,
ich möchte jetzt mit dem ersetzen des atmega8 durch den atmega32 anfangen, es sollen erstmal nur die funktionen des atmega8 durch den 32 übernommen werden:
- eine extra platine, größe ca. 30% einer europakarte (70x60), hinter den motoren angebracht (die akkus sind ja bei mir unterhalb der asuro-platine)
- auf der dem asuro-prozessor zugewandten seite 2x14polige fassungen für flachbandkabelstecker
- "dahinter" kämen nacheinander einer reihe buchsenleisten, der gesockelte atmega32 und anschliessend wieder eine reihe buchsenleisten. (Die buchsen sind auf der Lötseite mit den atmeg32 pins verbunden, mit steckbrücken soll die verdrahtung von freien und evtl. auch bereits belegten prozessorpinns stattfinden)
- seitlich des processrs 5x2 steckpfosten als ISP anschluss
die kontakte der 2 flachbandkabelstecker möchte ich auf der lötseite mit den prozessorpinns fest verdrahten.
Bei der festlegung der zuordnung der pinns bei den beiden prozessoren habe ich mich hauptsächlich durch die signalbezeichnung leiten lassen, ich weiss nicht ob das immer so richtig war...
Bevor ich nun zum lötkolben greife, wäre viellcht einer von Euch so nett und würde mal drüberschauen? Vielen dank...
Code:
atmega8 atmega32
01 PC6 RESET 09 RESET
02 PD0 RXD 14 PD0 RXD
03 PD1 TXD 15 PD1 TXD
04 PD2 INT 0 16 PD2 INT 0
05 PD3 INT 1 17 PD3 INT 1
06 PD4 XCK / T 0 01 PB0 XCK / T0
07 VCC 10 VCC
08 GND 11 GND
09 PB6 XTAL1 / TOS1 28 PC6 TOSC1
10 PB7 XTAL2 / TOS2 29 PC7 TOSC2
11 PD5 T1 02 PB1 T1
12 PD6 AIN0 03 PB2 INT2 / AIN0
13 PD7 AIN1 04 PB3 OC0 / AIN1
14 PB0 ICP1
15 PB1 OC1A 19 PD5 OC1A
16 PB2 SS / OC1B 05 PB4 SS
17 PB3 MOS / OC2 06 PB5 MOSI
18 PB4 MISO 07 PB6 MISO
19 PB5 SCK 08 PB7 SCK
20 AVCC 30 AVCC
21 AREF 32 AREF
22 GND 31 GND
23 PC0 ADC0 40 PA0 ADC0
24 PC1 ADC1 39 PA1 ADC1
25 PC2 ADC2 38 PA2 ADC2
26 PC3 ADC3 37 PA3 ADC3
27 PC4 ADC4 / SDA 36 PA4 ADC4
28 PC5 ADC5 / SCL 35 PA5 ADC5
-
das sieht spontan sehr gut aus, sofern die pinnummern stimmen (hab grade keine pläne zur hand, aber die grundlegenden pins im kopf - die stimmen schonmal :D)
das einzige was vermutlich probleme bereiten wird, ist jedoch der quarz: durch das (relativ) lange flachkabel wird der takt versaut. du solltest auf jeden fall einen neuen quarz verwenden, der so dicht wie möglich an dem neuen prozessor sitzt. 3 möglichkeiten: den vom asuro auslöten und "recyclen", einen entsprechenden nachkaufen, oder einen normalen quarz zwischen xtal1/2 schalten. dann müssne aber noch 2 kondensatoren dazu: je ein bein des quarzes an je einen port des prozessors, und je ein 22pF (!) kondensator gegen masse ebenfalls an je einen pin des quarzes. dann kannst du auch gleich einen schnelleren quarz nehmen (16 mhz sind maximum, bei mir läuft der prozessor auch mit 20 mhz stabil. aber: je schneller, desto höher der stromverbrauch).
bei der gelegenheit: nimm einen atmega32L, der braucht weniger strom. ist aber meist auch etwas teurer. tip: ebay, da hab ich die meisten meiner avrs her.
wenn du etwas weiter bist, kann ich dir die berechnung der fuses machen, denn in der standardkonfiguration wird der mega32 nicht so einfach funktionieren.
übrigens: wenn auf der platine noch etwas platz ist, dann lege noch die pins MISO, MOSI, SCK und RESET sowie VCC und GND auf einen stecker, der am besten folgendermaßen aussieht:
https://www.roboternetz.de/wissen/in...rammierstecker
dann kannst du den mega32 einfach und schnell programmieren über die ISP schnittstelle, und dir das wackelige infrarot ding sparen. das würde ausserdem die geschwindigkeit DRASTISCH erhöhen (8k in 3-4 sekunden sind erreichbar). um die fuses einzustellen und einen eventuellen bootloader einzuflashen benötigst du diese pins ohnehin, und einen programmieradapter dazu.
-
hi damaltor,
ein paar fragen ergeben sich aus deinen antworten:
- quarz & frequenz: irgendwo habe ich gelesen, dass der atmega8 einen internen takt hat. Hat der 32 das auch? könnte ich das nutzen? Vielleicht wahlweise extern/intern?
- wenn nicht, würde ich etwas ähnliches wie den original quarz von asuro verwenden wollen, nur halt mit 16MHz, dort sind schon die c´s integriert, denke ich. Wo könnte ich die typenbezeichnung finden? wie heissen überhaupt diese kombibierten bauteile?
- eine verbindung (atmega8 pin 14 PB0 ICP1) fehlt noch, dazu passte keiner der anschlüsse des 32 so recht. Was könnte das sein?
-
-quarz und frequenz: der mega32 hat auch internen takt. wahlweise 1,2,4 oder 8 mhz. leider sind diese jedoch so ungenau, dass +- 10 % (!!) drin sind. hab mal versucht auf nem meg32 ne uhr laufen zu lassen, nach 10 stunden laufzeit hat sie 9:11 stunden angezeigt. das ist an sich nicht schlimm, könnte jedoch uart und vor allen dingen infrarot killen. da kommt es auf sehr exakte frequenzen an (+-2% etwa). dafür wird strom gespart.
-wenn nicht... diese dinger heissen glaub ich schwinger. wenn du die platine auf lochraster aufbauen willst, sind sie eher ungeeignet weil sie 3 reihen brauchen. ansonsten ist es wirklich so, es ist nur ein quarz mit den Cs schon eingebaut. hab mal was von ungenau gehört, gllaub aber nicht richtig dran. spart platz, ist aber etwas teurer ale ein quarz+2Cs. hab auch noch genug quarze hier btw... kleiner tipp: wenn du
- wieder einen 8 mhz quarz nimmst, sparst du strom, und kannst die funktionen ohne anpassung übernehmen
- einen 16 mhz quarz nimmst, wirst du sämtliche funktionen bearbeiten müssen da sich diese auf eine frequenz von 8 mhz beziehen.
- einen schnelleren quarz willst, aber nicht unbedingt die 16 mhz ausreizen musst, dann empfiehlt es sich einen "krummen" quarz zu nehmen. es gibt viele wie zB 14,31818 mhz. diese werte lassen sich genau so teilen dass eine perfekte baudrate rauskommt. so wäre die uart-übertragung auch noch sehr viel exakter. muss aber nicht unbedingt sein.
quarze sind einfacher zu beschaffen, und 22pF quarze ebenfalls. sie gehen gut mit lochraster, da wenn man den quarz etwas schräg setzt man nur 2 reihen braucht (und da die pins am prozessor nebeneinander sind...). ansonsten wird es das einfachste sein, den schwinger vom asuro aus-und weider einzulöten. aber schau mal bei reichelt.
der PB0 am mega32 ist pin 1.
hoffe deine fragen beantwortet zu haben :D
-
ja damaltor, danke...
zu der pinzuordnung noch: richtet sich das nach der pinbezeichnung, oder signalbezeichnug - oder keinem von beiden?
atmega8/14-PB0-ICP1 --- atmega32/1-PB0-XCK / T0
oder
atmega8/14-PB0-ICP1 --- atmega32/18-PD4-OC1B
den atmega32/1-PB0-XCK / T0 würde ich von der signalbezeichnung eher zu
atmega8/6-PD4-XCK / T zuordnen, oder?
edit: die 8mhz frequenz und die aus einer änderung hier resultierende bearbeitung aller funktionen spricht gegen eine änderung hier...
-
hmm ich würde es beim pin 1 lassen, XCK verbinde ich grade mit gar nichts, also hab ichs noch nich grbraucht :D was hängt denn am den pin im mega8 des asuro?
-
am atmega8/pin 14 hängt beim asuro die status led dran, ich denke die werde ich auch an den 32 anschliessen müssen :-(
wie ist die bemerkung "habs noch nicht gebraucht" zu verstehen? Muss ich nicht alle anschlüsse des AM8 an den AM32 anschliessen? Wonach selektiere ich das? beim asuro sind ja alle irgendwo dran???
-
anschlüsse schon, aber die signalbezeichnung hab ich nie gebraucht :D schliess das an den pin1 vom atmega32 an, dann funktioniert die led.
-
hi damaltor,
unsicherheit wächst:
nach was richtet sich nun die zuordnung? habe schwierigkeiten schon bei dem pin1 des AM8:
1 PC6 RESET
beim AM32 ist aber:
28 PC6 TOSC1
09 RESET
soll ich den pin 1 des AM8 mit beiden am AM32 verbinden? Also 9 und 28???
-
hier ist RESET wichtiger: verbine diesen anschluss mit pin9 des meg32. :D
-
so, die nächste zwischenstation ist erreicht:
der asuro prozessor ist auf einer extra platine zusammen mit einem atmega32 aufgebaut, bei bedarf kann ich den atmega8 rausziehen und seine buchsen mit steckbrücken mit den buchsen des atmega32 verbinden...
btw: der atmega8 läuft auch da oben mit dem original schwinger, der unten sitzt...
Bild hier
jetzt muss ich mich verstärkt um einen isp adapter, möglichst auf seriell, kümmern. Welches programm zum flashen war das? pony-prog?
-
ponyprog ist fein zum seriellen flashen. an sich reichen ein paar dioden und widerstände vollkommen aus, es gibt jedoch auch treiberbausteine. schaltplan zB hier:
http://s-huehn.de/elektronik/avr-prog/avr-prog.htm
noch ist die platine leer, es wird wohl vorerst noch gehen mit dem schwinger (ausserdem ist denke ich das CKOPT fuse im mega8 eingestellt, welches dafür sorgt dass bei fast doppeltem stromverbruacht der quarz mit der höchstmöglichen amplitude schwingt um störsignale zu übertönen). aber wie du siehst gehen die ungeschirmten kabel direkt an dem motoren vorbei, das macht den takt nicht besser. ich würde dir auf jeden fall raten einen eigenen schwinger/quarz für den meg32 zu nehmen.
etwas eher grundsätzliches: zwei einfach durchkontaktierte ccontroller in einer schaltung sind ohne hochexakte kontrolle recht ungesund. wenn der eine controller aufgrund eines programms zB einen pin auf low zieht (oder er noch kein eigenes programm hat, sondern nur irgendwelche fragmente ausführt), während der andere prozessor zufällig diesen pin auf high zieht, dann ist das ein klassischer kurzschluss, und beide prozessoren sind gebraten. deshalb sollte immer nur ein prozessor in der schaltung stecken.
-
Thread geteilt, 9.12.07 um 15:50h.
wenn du den titel verändern willst, musst du bei dem ersten beitrag auf edit klicken, dann kannst du einen neuen titel eingeben.
mit dem bootloader hat das nich mehr viel zu tun :)
-
hi damaltor,
das mit dem doppeltem prozessor ist mir klar: der atmega_8 steckt in einer fassung, wenn man den rauszieht - und nur dann - kann mann, die buchsen der fassung nutzend, den atmega_32 (in die um denn prozessor eingelöteten und mit den prozessorpinns verbundenen) buchsen verdrahten...
zum flashen: kann man mit dem AVR studio nicht auch flashen?
-
ja das kann man. mit dem stk500 protokoll über den parallelen port glaub ich aber nur. ich hab kein avrstudio (linuxer), kann dir das nicht genau sagen...
-
ok, danke erstmal...
aus unerfindlichen gründen läuft der selbsttest nicht...
LED - ok
LINE - ok
SWITCH - linker motor läufr an, bleibt stehen beim drücken von K1 oder K6
ODO - LINE-LED brennt
MOTOR - ok
IR - ok
könntet Ihr mir bitte helfen den fehler einzugrenzen? An welchen verbindungen zum prozessor könnten sich der motor, K1, K6, LINE-LED, ODO LED in die quere kommen?
Es änderte nichts den schwinger näher an den prozessor zu bringen, kontrolle der lötstellen (soweit man/ich es sagen kann) - alles ok...(edit: durchgepiepst von der origigalstelle bis zur fassung auf der zusatzplatine, alle 28 verbindungen ok)
sind evtl. die leitungen zu lang?
Auch läuft der test normal, wenn der prozessor an der originalstelle sitzt...
-
wenn du den original-mega8 in die obere fassung tust, dann läuft der selbsttest nicht? oder wenn du den selbsttest in den meg32 schiebst?
ansonsten tippe ich auf einen kurzschluss zwischen irgend welchen lötstellen, entweder unter der neuen fassung des meg8, oder bei den verbindungen zum meg32 (den du hoffentlich vorher rausgenommen hast), oder (am wahrscheinlichsten) an dem stecker der jetzt in der originalen fassung des meg8 sitzt.
-
hi damaltor,
- der mega_32 ist noch gar nicht verdrahtet, jetzt sogar wieder aus der fassung draussen, ich will erstmal oben den mega_8 zum laufen bringen
- wenn der original mega_8 oben ist, läuft der selbsttset nicht
- ich habe mit einem ohmmeter alle anschlüsse (vom originalplatz über alle kabel und steckverbindungen bis hin zum neuen platz des atmega_8) auf durchgang und evtl. kurzschluss mit den benachbarten kontakten überprüft, eine verbindung hatte keinen kontakt, wurde geändert...
noch ne idee?
-
Naja, halt ausprobieren, was denn alles geht, indem du dir nen anderen Atmega8 besorgst, den du so bespielst und Port-Zustände ändern und abfragen und so schauen, ob der Controller angesprochen werden kann und ob die Sachen wirklich alle richtig verdrahtet sind.
mfg
Andun
-
ich konnte jetzt noch feststellen, dass z.b. beim draufflashen des myasuro-test-hex teiles auf den oben sitzenden atmega_8 keiner der taster geht. Die werte für odo-led´s oder line-led´s werden registriert und angezeigt. Welche spannungswerte sollte ich an den widerständen, die zu den tastern gehören messen?
-
boah.. das ist ja suspekt. da ein teil funktioniert, scheint wenigstens im groben alles zu passen. du kannst mal checken ob das flachbandkabel am original-sockel-stecker evtl am gegenüberliegenden pin kontakt bekommt: es ist doch immer eine leitung nach vorn und eine wtwas kürzere an dem stecker, oder? evtl ist eines dr längeren kabel heiss geworden und hat kontakt mit einem danebenliegenden kürzeren.
------------------ langes kabel
--------- kurzes kabel
------------------
---------
------------------
------x-
------x----------
x=kurzschluss?
-
auch dort ist kein kurzschluss, ich habe die leitungen alle mit der fingernagelschere meiner lebensgefährtin aufs mass geschnitten :-)...
wovon sollten die leitungen zu heiss geworden sein? Und ich habe ja alles durchgemessen:
x---x <-------> x---x
x---x <-------> x---x
immer einen auf durchgang zum entsprechendem kontakt auf dem anderen sockel, die anderen drei auf isolation...
-
das ist doch grütze. ich glaube ich würde mich jetzt hinsetzen und nach und nach sämtliche 378 verbindungen testen... irgendwo muss ein kurzschluss sein. soviel steht fest, wennd er prozessor im originalsockel funktioniert und mit der "verlängerungsschnur" nicht mehr dann ist entweder irgendwo was falsch verkabelt und die pinnummern pssen nicht zueinander, oder irgendwo hängt was zusammen.
-
hast ja recht, nur hab ich das schon zigmal gemacht. Also nochmal... :-(
-
ich kann mir einfach nichts anderes vorstellen... evtl bekommt der prozessor keinen kontakt in seinem neuen sockel? oder der stecker keinen kontakt im alten sockel? zu heiss geworden? die "klammern" im sockel verbogen?
hast du es ein zweites mal getestet?
-
im moment warte ich auf bei conrad bestellte teile, möchte noch eine andere art der verbindung zum neuen prozessor probieren...
-
dann teste es doch nochmal in der zeit, evtl war es wirklich nur ein wackelkontakt.
-
also, ich habs jetzt noch einmal versucht:
Bild hier
Bild hier
der asuro funktioniert jetzt da oben, allerdings gibts durch die steckverbindungen jede menge wackler. leider :-(
muss mir also für die verbindungen doch was festeres einfallen lassen...
-
krasse konstruktion. was ist wenn du zwei sockel nimmst und diese mit kabeln verlötest? bei einem kannst du die kabel von oben reinlöten (und dann das ding reinstecken wo der alte prozessor saß) und ebim anderen musst du dir was ausdenken, das ist dann der zwischenstecker zwischen dem neuen sockel und dem prozessor auf der oberen platine..
-
Hey,
Mein Vorschlag für die Verbindung:
Reichelt Bestellnummer: KK28025C
Da Crimpst du ein Flachband dran und auf die andere Seite eine Pfostenstecker. Auf die Mega32-Platine kannst du ne einfache Stiftleiste oder ein Verbinder wie es die RN Definitionen für den ISP Verbinder vorschlagen.
Sollte sogar industrietauglich sein und problemlos funktionieren.
Gruß
elayne
-
immerhin: 28poliges flachkabel wäre nötig. aber an sich ne idee.
wobei: 26 pole reichen auch aus, wenn du den quarz hochlegst. habe übrigens gerade nochmal die atmel application note zum schaltungsentwurf gelesen, da steht drin dass der quarz so dicht wie nur irgend möglich am prozwssor sein soll, deshalb würden smd bauteile empfohlen werden weil die dichter nebeneinander können... das halte ich für übertrieben, aber hoch sollte der schon denke ich.
-
SMD Bauteile haben den Vorteil dass sie direkt auf die Platine gelötet werden, dardurch entfällt die Störanfälligkeit an den Beinchen. Wenn mann aber Quarz und Kondensatoren so nah wie möglich auf der Platine anlötet dürfte es auch keine Probleme geben.
Wegen Flachbandkaben, beim Pollin bekommt man extrem günstigen in belibiger Polzahl.
Gruß
elayne
-
danke für die tipps, habe stecker und kabel bestellt. hätte ich schon längst so machen sollen :-(
frage zum quarz am am_8, bzw am_32: nach den skizzen in der docu sieht es unterschiedlich aus:
am_8: 3 pins, li-xtal1, re-xtal2, mitte masse
am_32: 2 pins, li- masse über einen c, re-masse über einen c, in der mitte sitzt wohl der quarz, aber ohne anschluss?
-
am meg8 ist kein quarz, sondern ein sog. schwinger. das ist eigentlich bloss ein quarz, bei dem schon die Cs mit im gehäuse sind. du kannst auch so einen kaufen (vorteil: keine Cs nötig, recht einfach; nachteil: durch die 3pin-bauweise keine möglichkeit ihn direkt neben den prozessor zu setzen da die xtal-pins nebeneinander liegen). die alternative ist ein normaler quarz (vorteil: etwas günstiger, wenn man ihn schräg aufsetzt kann er mit einem pin direkt am prozessor liegen, mit dem zweiten etwas weiter weg; das ist gute nähe zum prozessor. nachteil: du brauchst zwei 22pF (picofarad) kondensatoren gegen masse.
-
also bei deiden prozessoren die äußeren anschlüsse des schwingers an xtal1 und 2, die mitte an GND, ok?
-
ja genau so. oder eben den quarz zwischen die pins, und an jeden noch 22pF gegen GND.
-
hi allerseits,
nun funktioniert der Atmega_8 auf die zusatzplatine hochgesetzt, konnte jetzt keine fehler mehr festellen:
Bild hier
Bild hier
jetzt wollte ich den ISP stecker dranbauen um das myavr usb board zum programmieren nutzen zu können. Hier wird der stecker beschrieben https://www.roboternetz.de/wissen/in...rammierstecker
ich vermisse ein paar details: ich nehme an, die ansicht auf das eagle symbol ist eine ansicht auf die leiterplatte von der bauteilseite her, so, wie sich der stecker dort im eingebautem zustand darstellt. Auf dem flachbandkabel ich seitlich so eine nase. Wo sitzt diese auf den stecker bezogen? Da wo die geraden, oder ungeraden kontakte sind?
danke für Euere hilfe...
-
An Pfostensteckern ist immer an Pin 1 ein Pfeil der diesen markiert. Zusätzlich ist aus gründen der Unverwechselbarkeit in der mitte der ungeraden Seite (also Pin 1,3,5,7,9 usw.) eine Nase bzw eine Nut. Beim Isp Stecker müsste das an Pin 5 sein.
Gruß
elayne
-
hi elayne,
meinst du diesen pfeil?
Bild hier
-
genau, der gibt an wo sich Pin 1 befindet. Die Nase auf dem Foto liegt direkt bei Pin 5.