-
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