Asuro-Roboter als Einstieg für 80C51-Derivate Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte
Autor |
Asuro-Roboter als Einstieg für 80C51-Derivate |
|
|
|
|
BID = 362270
zwack Stammposter
Beiträge: 326
|
|
Hallo Gemeinde
eignet sich der Asuro-Fahrzeugroboter als Einstieg in
die Atmel-Welt? Als Endziel soll ein Controller der
SAB-80C535 programmiert werden.
Sind die Controller aus der gleichen Produkt-Familie?
Arbeitet der Compiler nur für bestimmte Derivate?
Schon mal vielen Dank, Zwack
[ Diese Nachricht wurde geändert von: zwack am 22 Aug 2006 10:23 ] |
|
BID = 362291
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
|
Hallo Zwack,
sind die von dir genannten µ-Controller nicht welche von Phillips oder Siemens?
Atmel ist eine Firma, die u.a. µCs herstellt.
Compiler (welche Sprache willst du nutzen, C?) sind meistens auf bestimmte Prozessorarchitekturen, manchmal sogar auf bestimmte Typen spezialisiert, da es nicht den Assembler gibt. Assembler ist stark CPU-abhängig.
(Also im Endeffekt der Maschinencode der compiliert und gelinkt wird.)
Als Einstiegsprojekt eignet sich sowas bestimmt nicht, besser erstml einfache Sachen zum Laufen kriegen wie LEDn an- und ausschalten und Taster auslesen. Glaube mir, viele haben schon damit genug Probleme .
Wenns dann soweit ist, dann kannst du dich auch an schwierigere Sachen rantrauen.
_________________
|
|
BID = 362299
zwack Stammposter
Beiträge: 326
|
Hallo DonComi
Hoppla, da hab' ich mich wohl nicht exakt ausgedrückt. sry
- Atmel hat doch Controller mit 8051 Core. Die meinte ich.
- Compiler natürlich C (wassn sonst?)
- Mit Einstieg meinte ich "Einstieg in die Atmel-Welt" und nicht ins Programmieren
Der 80C535 von Siemens ist ja abgekündigt, Alternativen sind meines Wissens Phillips und Atmel. Da ich mich mit Atmel noch nicht beschäftigt habe dachte ich mir das dieser Asuro-Roboter mit dem Rundum-Sorglospaket (Compiler/IDE + 1.Programm in 5 Minuten usw.) ganz gut als Einstieg geeignet ist. Was für mich nun wichtig ist, wie gesagt:
- Hat der Asuro-Controller den 8051Core?
- Kann ich mit dem Compiler/IDE alle möglichen Controller programmieren oder ist der beschnitten (CPU/Codegröße) ?
viele Grüße, Zwack
|
BID = 362302
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Hallo Zwack,
mit den 8051-Cores hatte ich noch keinen Kontakt, ich habe fast ausschließlich AVR hier am Werkeln.
Zitat :
|
- Compiler natürlich C (wassn sonst?)
|
Wieso "Wassn sonst"? Ich programmiere meistens in Assembler(-sprache!). Aber mach das lieber mit C, da gibt es viele Vorteile (wg. Portierung auf andere Maschienen und so).
Zum Rest kann ich dir nichts sagen, da ich von diesen Dingen nichts besitze.
Sry.
_________________
|
BID = 362306
zwack Stammposter
Beiträge: 326
|
Hallo DonComi,
also ich bewundere die Leute die in Assembler programmieren, mir ist das alles viel zu abstrakt und ich verliere schnell den Übersicht. Ich sehe echt den Wald vor lauter Bäumen nicht. So gesehen bevorzuge ich 'C' aus purer Bequemlichkeit.
Aber trotzdem Danke, Zwack
|
BID = 362315
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Hallo Zwack,
so kompliziert ist Assembler garnicht .
C ist halt gut auf schnellen Maschinen (PCs oder µCs ab 8MHz.)
Hier mal ein Beispiel:
Code : |
+00000000: RJMP PC+0x0015
+00000001: RJMP PC+0x002E
+00000002: RJMP PC+0x002D
+00000003: RJMP PC+0x002C
+00000004: RJMP PC+0x002B
+00000005: RJMP PC+0x002A
+00000006: RJMP PC+0x0029
+00000007: RJMP PC+0x0028
+00000008: RJMP PC+0x0027
+00000009: RJMP PC+0x0026
+0000000A: RJMP PC+0x0025
+0000000B: RJMP PC+0x0024
+0000000C: RJMP PC+0x0023
+0000000D: RJMP PC+0x0022
+0000000E: RJMP PC+0x0021
+0000000F: RJMP PC+0x0020
+00000010: RJMP PC+0x001F
+00000011: RJMP PC+0x001E
+00000012: RJMP PC+0x001D
+00000013: RJMP PC+0x001C
+00000014: RJMP PC+0x001B
+00000015: CLR R1
+00000016: OUT 0x3F,R1
+00000017: LDI R28,0x5F
+00000018: LDI R29,0x02
+00000019: OUT 0x3E,R29
+0000001A: OUT 0x3D,R28
+0000001B: LDI R17,0x00
+0000001C: LDI R26,0x60
+0000001D: LDI R27,0x00
+0000001E: LDI R30,0x76
+0000001F: LDI R31,0x00
+00000020: RJMP PC+0x0003
+00000021: LPM R0,Z+
+00000022: ST X+,R0
+00000023: CPI R26,0x60
+00000024: CPC R27,R17
+00000025: BRNE PC-0x04
+00000026: LDI R17,0x00
+00000027: LDI R26,0x60
+00000028: LDI R27,0x00
+00000029: RJMP PC+0x0002
+0000002A: ST X+,R1
+0000002B: CPI R26,0x60
+0000002C: CPC R27,R17
+0000002D: BRNE PC-0x03
+0000002E: RJMP PC+0x0002
+0000002F: RJMP PC-0x002F
+00000030: LDI R28,0x5E
+00000031: LDI R29,0x02
+00000032: OUT 0x3E,R29
+00000033: OUT 0x3D,R28
+00000034: LDI R24,0x01
+00000035: STD Y+1,R24
+00000036: LDD R24,Y+1
+00000037: STS 0x0031,R24
+00000039: RJMP PC+0x0001
+0000003A: RJMP PC-0x0000
|
|
(OK, da sind die Interruptvektoren dabei..)
Wird erstellt für folgendes C-Programm:
Code : |
void main()
{
char temp=0x01;
DDRD = temp;
}
|
|
Das gleiche macht auch folgendes Assemblerprogramm:
(ohne INT-Vektoren, also ca 20 Befehle musste dir am nfang dazudenken ):
Code : |
reset: ldi r16, LOW(RAMEND)
out SPL, r16
ldi r16, HIGH(RAMEND)
out SPH, r16
;Das war der Stackpointer, fairerweise gehört der dazu
ldi r16, 0x01
out DDRD, r16
...
|
|
Du siehst, der Code ist bedeutend schneller und kürzer. Allerdings ziehen sich ASM-Programme manchmal sehr in die Länge.
Obiger Assemblercode kommt direkt aus dem Disassembler für das C-Programm.
Bleib dennoch bei C, das ist schon ein Standard, auch in Industrie. Damit kann man mittlerweile mehr anfangen als mit Assembler.
Grüße
_________________
|
BID = 362472
high_speed Schreibmaschine
Beiträge: 2073
|
Da passt doch etwas nicht.
> ASURO is equipped with an Atmel AVR RISC-processor
> and two independently controlled motors, an optical
> linetracer, six collision-detector switches, two
> odometer-sensors, three indicator LEDs and an IR-Interface
> for programming and remote controlling by a PC.
http://www.arexx.com/arexx.php?cmd=goto&cparam=p_asuro.dat
Die 8051-Familie weißt eine ganz andere Architektur als die
AVR-Familie auf. Bei dem 8051 handelt es sich um einen CISC
(Complex Instruction Set Computing) http://de.wikipedia.org/wiki/CISC
Der µC (Mikrocontroller) ist aber auch schon mehr als 20
Jahre alt. 1980 http://de.wikipedia.org/wiki/8051
Die Entwicklungssoftware für die AVR-Familie von Atmel kann
man sich kostenlos im Internet herunterladen:
AVR Studio 4 (Entwicklungsumgebung, Assembler, Simulator) http://www.atmel.com/dyn/products/tools.asp?family_id=607#798
WinAVR (C-Compiler kann in AVR-Studio eingebunden werden) http://winavr.sourceforge.net/
PonyProg2000 (Programmer) http://www.LancOS.com
http://de.wikipedia.org/wiki/Atmel_AVR
AVR-GCC-Tutorial http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
Für den Anfang nehme zum Beispiel einen ATmega8 .
Aber wenn du doch mit der 8051-Famile arbeiten musst:
sdcc (Small Device C Compiler) http://sourceforge.net/projects/sdcc
Der SAB-80C535 hat aber keinen internen EPROM, (zumindest
ist er unbrauchbar,) so dass du einen externen EPROM 27C256
(32k x 8 ) benötigst. Zum Beschreiben des EPROM wird ein
EPROM-Brenner benötigt.
Um in der Entwicklungsfase nicht immer EPROMs zu
beschreiben, habe ich ein Batterie gepuffertes RAM benutzt.
SRAM: 62256 (32k x 8 )
MAX 691ACPE
Lithiumbatterie 3,6V
Jumper zum umschalten zwischen RAM Belegung und EPROM
Belegung. Die Belegung ist nicht ganz gleich und die hohe
Programmierspannung sollte man dem RAM auch nicht gönnen.
Edit:
" " in " 8 ) " geändert.
MfG
Holger
_________________
George Orwell 1984 ist nichts gegen heute.
Der Überwachungsstaat ist schon da!
Leider lernen die Menschen nicht aus der Geschichte,
ansonsten würde sie sich nicht andauernd wiederholen.
[ Diese Nachricht wurde geändert von: high_speed am 22 Aug 2006 19:38 ]
|
BID = 362824
zwack Stammposter
Beiträge: 326
|
Oh, da gibt es aber ein paar nette Bausteine von Atmel z.B.
http://www.atmel.com/dyn/products/product_card.asp?part_id=3045
Da hat sich die Sache mit dem Eprom auch erledigt.
Komischerweise haben die aber alle keine keine ADC's.
(1 Ausname aber nur 2 Kanäle). Ist das Absicht wegen EMV das man die auslagern soll und über 2/3 Drahtbus ansprechen?
|
BID = 362831
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Es gibt auch welche, die 8-Kanal-ADCs haben. Beispiel: ATmega8535.
_________________
|
BID = 362843
high_speed Schreibmaschine
Beiträge: 2073
|
> Komischerweise haben die aber alle keine keine ADC's.
Du musst bedenken, das die Chip-Architektur schon 26 Jahre
alt ist. Da hat man Regelungen noch analog aufgebaut und die
µC brauchten so auch nur selten analoge Schnittstellen, die
dann aber extern angeschlossen werden konnten.
Der 8051 hat einen 16 bit breiten Adressbus, damit kann man
64 kiB Speicher adressieren. Die ADC (Analog to Digital
Converter) wurden parallel an den 8 bit breiten Datenbus
gelegt und sind im RAM-Bereich adressiert worden. Mit
Porterweiterungen ist man ähnlich verfahren.
Bei den neueren µC-Familien wird immer mehr schon im µC
integriert. Was früher gut eine Eurokarte füllte, ist heute
in einem Chip integriert.
http://www.atmel.com/dyn/products/p.....DESC#
Atmel hat aber 3 mit 10 bit ADC.
@DonComi
Der ATmega8535 ist aber kein 8051.
MfG
Holger
_________________
George Orwell 1984 ist nichts gegen heute.
Der Überwachungsstaat ist schon da!
Leider lernen die Menschen nicht aus der Geschichte,
ansonsten würde sie sich nicht andauernd wiederholen.
|
BID = 362845
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
@Highspeed
Der ATmega8 auch nicht...
(Er hatte nach einem µC mit mehr als nur einem ADC-Eingang gefragt. Dass die beim m8535 auch nur gemultiplext werden, ist nicht so wichtig in diesem Fall.
Es handelt sich hier um einen µC mit RISC-CPU.
_________________
|
BID = 362846
high_speed Schreibmaschine
Beiträge: 2073
|
Im ersten Beitrag habe ich geschrieben:
> Aber wenn du doch mit der 8051-Famile arbeiten musst: ..
Sein Link zeigte im übrigen auf einen AT89C51ED2 (8051 core).
http://www.atmel.com/dyn/products/product_card.asp?part_id=3045
MfG
Holger
_________________
George Orwell 1984 ist nichts gegen heute.
Der Überwachungsstaat ist schon da!
Leider lernen die Menschen nicht aus der Geschichte,
ansonsten würde sie sich nicht andauernd wiederholen.
|
BID = 362847
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Jop,
habe ich mir auch angeschaut.
OK, Highspeed, habe nicht richtig gelesen, du bist im Recht .
MfG
_________________
|
BID = 362850
zwack Stammposter
Beiträge: 326
|
So Männer, ich hab jetzt nochmal nachgekuckt, diesmal richtig :
Atmel hat 3 Controller mit 8x 10 bit ADC
- AT89C5115
- AT89C51AC2
- AT89C51AC3
mit 8051 Core wohlgemerkt. Ich glaube da setze ich an. Asuro kann ich mir ja abschminken, weiß jemand von einem low-cost DevelopmentKit?
Gruß und Danke, Zwack
[ Diese Nachricht wurde geändert von: zwack am 24 Aug 2006 2:41 ]
|
|
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 22 Beiträge im Durchschnitt pro Tag heute wurden bisher 1 Beiträge verfasst © x sparkkelsputz Besucher : 182194339 Heute : 746 Gestern : 4612 Online : 677 18.10.2024 8:25 1 Besucher in den letzten 60 Sekunden alle 60.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
|
xcvb
ycvb
0.0501508712769
|