Asuro-Roboter als Einstieg für 80C51-Derivate

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 18 10 2024  08:25:56      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : 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 ]


Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


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