Forum: Mikrocontroller und Digitale Elektronik LED blinken. Board MR-C3024. µC ATMEGA128L


von jb (Gast)


Lesenswert?

hallo
so ich habe mal einen Programm geschrieben. Es soll nur die LED zum 
Blinken bringen. ICh benutze ein MR-C3024 Board (µC ATMEGA128L), 
Software AVR Studio 6.
1
#define F_CPU 1000000UL
2
3
#include <avr/io.h>
4
#include <util/delay.h>
5
6
7
int main()
8
{
9
  DDRB |= (1 << DDB1);
10
  
11
  while(1)
12
  {
13
    PORTB |= (1<<PB1);
14
    _delay_ms (5000);
15
    PORTB &= ~(1<<PB1);
16
    _delay_ms (5000);
17
    
18
  }
19
  return 0;
20
}

Ist der Code richtig? Falls ja, wie bringe den Code auf den Board (µC)? 
Brauch ich noch eine extra Software, um den Code auf den Board zu 
brennen oder wie läuft das ab?Danke

gruß

jb

von spess53 (Gast)


Lesenswert?

Hi

>Falls ja, wie bringe den Code auf den Board (µC)?
>Brauch ich noch eine extra Software, um den Code auf den Board zu
>brennen oder wie läuft das ab?

Dazu sollte die Beschreibung deines Boards Auskunft geben.

MfG Spess

von jb (Gast)


Lesenswert?

Verstehe ich nicht? Weshalb brauch ich die Beschreibung meines Boardes? 
Das ist doch bei jedem das gleiche, wenn man ein Code auf dem µC brennen 
möchte oder?

von spess53 (Gast)


Lesenswert?

Hi

>Das ist doch bei jedem das gleiche, wenn man ein Code auf dem µC brennen
>möchte oder?

Nein. Dein Board scheint z.B. einen Bootloader zu haben. Andere benutzen 
ISP.

MfG Spess

von spess53 (Gast)


Lesenswert?


von jb (Gast)


Lesenswert?

das habe ich alles. Habe auch extra ein USB-Adapter gekauft, da ich 
keinen RS232-Schnittstelle habe am Laptop.

von Karl H. (kbuchegg)


Lesenswert?

Dann spiel dir ROBOBASIC auf deinen Rechner und benutze dessen 
Übertragungstool.
AVR-Studio kann damit nicht umgehen.

(Und im großen und ganzen denke ich, dass du mit ROBOBASIC sowieso 
besser bedient wärst.)

von jb (Gast)


Lesenswert?

ich muss es aber in C programmieren. kann ich da andere software 
benutzen.

gruß
jb

von spess53 (Gast)


Lesenswert?

Hi

>das habe ich alles. Habe auch extra ein USB-Adapter gekauft, da ich
>keinen RS232-Schnittstelle habe am Laptop.

Bei dem Board ist lt.Beschreibung eine CD dabei. Dort solltest du die 
notwendige Software finden.

MfG Spess

von jb (Gast)


Lesenswert?

ich habe die Cd nicht bei mir, aber ich denk mal das sind die 3 
Programme

http://www.robonova.de/store/home.php?cat=8

von jb (Gast)


Lesenswert?

Müsste da man etwas änder um in C zu programmiern?

gruß
jb

von Karl H. (kbuchegg)


Lesenswert?

Lad dir das ROBOBASIC runter und sieh dir dort mal in der Praxis an, wie 
der Vorgang läuft.

Ist der Bootloader in die IDE eingebaut, oder ist das ein eigenständiges 
Programm?
Kannst du dem Bootloader dort ein eigenes HEX-File übergeben?

Das sind die Fragen, die du beantworten musst. Aus dem AVR-Studio 
kriegst du ein Hex-File und irgendwie muss das an den µC übertragen 
werden. AVR-Studio kann das nicht, weil es sich hier bei diesem Board 
(anscheinend) um keinen Standardmechanismus handelt. Also musst du dir 
ansehen, wie die Original-Software das macht und rauskriegen ob du dort 
irgendwo einen Fuss in die Tür kriegst.

Jetzt ist DEINE Beobachtungsgabe und DEINE Fähigkeit zu logischen 
Schlüssen gefragt. Es sei denn du findest wen, der dieses Board benutzt. 
Aber ansonsten ist jetzt an dieser Stelle für uns Feierabend, weil auf 
dieser Seite des Bildschirms nur noch raten angesagt ist (oder aber Doku 
Studium, aber das kannst eigentlich du genausogut machen, wie wir auch. 
Und da es dein Projekt ist, machst du das Doku-Studium. Zumal du das 
Board vor dir liegen hast und alles was du in der Doku liest, auch 
ausprobieren kannst.) Was du suchst, ist eine Möglichkeit, wie du ein 
fertiges HEX-File in das Übertragungsprogramm einschleusen kannst. Dazu 
muss man aber erst mal den grundsätzlichen Arbeitsablauf in dieser IDE 
verstanden haben. Und am schnellsten kriegt man da einen Überblick, wenn 
es dazu ein Tutorial mit dem Titel "erste Schritte" gibt. Das geht man 
mal in der Praxis durch und sieht sich an, wie das alles prinzipiell so 
funktioniert.

von jb (Gast)


Lesenswert?

danke für die antworten.
ich habe da noch paar fragen.
an was erkennt man denn, dass das Board einen bootloader hat?
würde man die hardware ändern, dann würde es doch mit studio 
funktionieren oder?

gruß
jb

von spess53 (Gast)


Lesenswert?

Hi

>an was erkennt man denn, dass das Board einen bootloader hat?

Wenn kein ISP/JTAG benutzt wird, kann es nur noch ein Bootloader sein.

>würde man die hardware ändern, dann würde es doch mit studio
>funktionieren oder?

Wenn die notwendigen Anschlüsse verfügbar sind, ja. Da aber lt. 
Beschreibung nur 32kB von den 128kB Flash des ATMega128 zur Verfügung 
stehen, muss da noch andere Software als der Bootloader drin sein. 
Möglicherweise der Basic-Interpreter, was ansatzweise den horrenden 
Preis erklären würde. Und das wird dann gnadenlos gelöscht.

Ich würde davon abraten. Oder hast du das Board geschenkt bekommen?

MfG

von jb (Gast)


Lesenswert?

ok. danke.

>Ich würde davon abraten. Oder hast du das Board geschenkt bekommen?

ich habe es mir ausgeliehen, muss es wieder zurückgeben.

gruß

von spess53 (Gast)


Lesenswert?

Hi

>ich habe es mir ausgeliehen,...

Ich hatte schon befürchtet, du hättest dir das als Einsteigerboard 
gekauft.

>... muss es wieder zurückgeben.

Dann lass die Finger davon.

MfG Spess

von jb (Gast)


Lesenswert?

alles klar. dank dir noch mal.
also du hälst nichts davon das board in C zu programmieren.

gruß

von Karl H. (kbuchegg)


Lesenswert?

Du solltest dich als erstes fragen:
Was will ich mit dem Board? Wo soll die Reise hingehen?

Meine persönliche Meinung
Dafür, was das Board kann, ist es zu teuer. Dadurch, dass der Hersteller 
(so wie das aussieht) keine ISP Schnittstelle verbaut hat, bist du immer 
auf deren Bootloader angewiesen. Man könnte das zwar auch beheben und 
eine entsprechende Schnittstelle in Eigenregie nachrüsten, aber lohnt 
sich das wirklich bei knapp 160 Euro?
Elektrisch ist auf dem Board nicht viel verbaut. Der Materialwert liegt 
weit unter den €160. Aber das ist soweit ok. Für Entwicklung, Software 
etc. muss man natürlich auch anteilsmässig mitzahlen und die Firma muss 
ja leben auch. Zumal das ROBOBASIC dem ersten Anschein nach ziemlich 
mächtig ist.

Wenn es um den Einstieg in die C-Programmierung geht, würde ich sagen: 
Finger weg. Da gibts günstigeres und einfacheres.

von jb (Gast)


Lesenswert?

hast ja eigentlich Recht Karl Heinz.

Könnte man nicht einfach eine isp-schnittstelle parallel zum bootloader 
oder wo auch immer anschließen und über das programmieren?
was ist denn eigentlich ein bootloader? Hat der Bootloader im Handy, 
Computer oder MR-C3024 die gleiche Funktion?

von Karl H. (kbuchegg)


Lesenswert?

jb schrieb:
> hast ja eigentlich Recht Karl Heinz.
>
> Könnte man nicht einfach eine isp-schnittstelle parallel zum bootloader
> oder wo auch immer anschließen und über das programmieren?
> was ist denn eigentlich ein bootloader? Hat der Bootloader im Handy,
> Computer oder MR-C3024 die gleiche Funktion?


Ein Bootloader ist ein Programm welches im µC verbleibt. Der Bootloader 
lauscht zb an der seriellen Schnittstelle und wenn er da zb ein 
verabredetes Zeichen sieht, dann nimmt er über die Schnittstelle ein 
neues Programm entgegen und brennt es ins Flash.

Bootloader

Vorteil: man braucht keinen Brenner
Nachteil: man 'verschenkt' etwas Flash (ist aber beim M128 ziemlich 
uninteressant. Der hat genug)

von jb (Gast)


Lesenswert?

>Ein Bootloader ist ein Programm welches im µC verbleibt. Der Bootloader
>lauscht zb an der seriellen Schnittstelle und wenn er da zb ein
>verabredetes Zeichen sieht, dann nimmt er über die Schnittstelle ein
>neues Programm entgegen und brennt es ins Flash.

heißt das man kann den bootloader so programmieren, dass er nur 
bestimmte zeichen von einer software (z.B. robobasic) erkennt und dann 
durchlässt?

gruß

von Karl H. (kbuchegg)


Lesenswert?

Man kann alles programmieren was programmierbar ist.

Ein Bootloader ist dafür zuständig ein anderes Programm ins Flash zu 
brennen. Unter welchen Nebenbedingungen er das macht, ist eine andere 
Frage und ein Detail des Bootloaders.

Und ich ahne worauf du hinaus willst. Nein der Bootloader kann nicht 
unterscheiden, ob da am anderen Ende Robobasic sitzt oder nicht. Jeder, 
der die richtige Codesequenz präsentiert, kann dem Bootloader ein neues 
Programm schicken.

von jb (Gast)


Lesenswert?

Kann man den bootloader irgendwie auslesen?
und wie sieht es aus mit dem ccpro-loader? könnte ich es mit dem 
versuchen?

gruß

von jb (Gast)


Lesenswert?

Könnte man eine ISP-Schnittstelle an dem Board befestigen? Wäre es dann 
möglich das Board in C zu programmieren? sorry wenn ich zu viele fragen 
stelle, aber es ist ja noch kein Meister von Himmel gefallen :D

von Karl H. (kbuchegg)


Lesenswert?

jb schrieb:
> Könnte man eine ISP-Schnittstelle an dem Board befestigen? Wäre es dann
> möglich das Board in C zu programmieren? sorry wenn ich zu viele fragen
> stelle, aber es ist ja noch kein Meister von Himmel gefallen :D

Aber es gibt Tutorials, die geschrieben wurden um diese Fragen nicht 
immer wieder bveantworten zu müssen

AVR-Tutorial

von jb (Gast)


Lesenswert?

eins verstehe ich nicht. wenn ich jetzt übr ISP progammieren möchte, 
brauche ich ja MISO,MOSI,SCK,RESET,VCC und GND und für die Kommunikation 
brauche JTAG bzw. SPI, die auch Schnittstellen sind, richtig?
wie soll das denn funktionieren? irgendwie bin jetzt etwas 
durcheinander.

von Kay (Gast)


Lesenswert?

Sicher das Du jetzt erst durcheinander bist ? Du stellst ja immer die 
ein und selben Fragen. Hier nochmal:

Ja Du kannst das Board in C programmieren, benötigst dann aber ein ISP 
Anschluss auf dem Board den Du selbst anbringen musst. Dafür brachste 
MISO, MOSI, RESET, SCK, GND. JTAG ist nicht nötig, besitzt aber die 
Funktion des Debuggings. SPI ist wieder was anderes. Beginne erst mit 
dem ISP.

Kay

von jb (Gast)


Lesenswert?

danke dir. MISO, MOSI hat aber nichts mit TX und RX zu tun?(weil ich 
gerade von einem Bild verwirrt bin)

von Karl H. (kbuchegg)


Lesenswert?

jb schrieb:
> danke dir. MISO, MOSI hat aber nichts mit TX und RX zu tun?(weil ich
> gerade von einem Bild verwirrt bin)

Nein.

Was ist so schwer daran?
Auf dem Schaltbild im Tutorial sieht man es ganz deutlich:
Du brauchst diese Leitungen MISO, MOSI, SCK und Reset. Dazu noch GND. 
Die werden auf eine Steckerleiste geführt (zb einfach mittels Draht 
direkt von den gleichnamigen µC-Pins) und dort wird der ISP Programmer 
dann angesteckt mit dessen Hilfe dann die Brennsoftware das Programm in 
den µC überträgt.  Fettich.

von spess53 (Gast)


Lesenswert?

Hi

>> danke dir. MISO, MOSI hat aber nichts mit TX und RX zu tun?(weil ich
>> gerade von einem Bild verwirrt bin)

>Nein.

Doch. Beim ATMega128 werden TX0 und RX0 an Stelle von MOSI/MISO zum 
Programmieren benutzt.

MfG Spess

von Karl H. (kbuchegg)


Lesenswert?

spess53 schrieb:
> Hi
>
>>> danke dir. MISO, MOSI hat aber nichts mit TX und RX zu tun?(weil ich
>>> gerade von einem Bild verwirrt bin)
>
>>Nein.
>
> Doch. Beim ATMega128 werden TX0 und RX0 an Stelle von MOSI/MISO zum
> Programmieren benutzt.

Grrrrr.
Danke für die Korrektur. M128 war mir jetzt als Detail entfallen.

von jb (Gast)


Lesenswert?

>>> danke dir. MISO, MOSI hat aber nichts mit TX und RX zu tun?(weil ich
>>> gerade von einem Bild verwirrt bin)

>>Nein.
>>Was ist so schwer daran?
>>...


>Doch. Beim ATMega128 werden TX0 und RX0 an Stelle von MOSI/MISO zum
>Programmieren benutzt.


Das ist so schwer dran. Ich hätte die falschen Anschlüsse und vielleicht 
wäre dann das Board kaputt gegangen. Es ist nicht immer von Anfang an 
verständlich. Wenn ich es wüsste, dann würde ich ja nicht Fragen, auch 
wenn sich die Fragen wiederholen. Sorry.

von jb (Gast)


Lesenswert?

> Doch. Beim ATMega128 werden TX0 und RX0 an Stelle von MOSI/MISO zum
> Programmieren benutzt.


wie hast du das erkannt?

von spess53 (Gast)


Lesenswert?

Hi

>wie hast du das erkannt?

Ich habe seit fast 14 Jahren mit ATMega103/128/1281 zu tun. Und die 
haben alle diese Besonderheit. Aber so etwas steht natürlich auch im 
Datenblatt.

MfG Spess

von jb (Gast)


Lesenswert?

>Ich habe seit fast 14 Jahren mit ATMega103/128/1281 zu tun. Und die
>haben alle diese Besonderheit. Aber so etwas steht natürlich auch im
>Datenblatt.

net schlecht. Könntest du mir vielleicht sagen, wo ungefähr es steht 
bzw. nach was ich gucken muss?

gruß

von spess53 (Gast)


Lesenswert?

Hi

>Könntest du mir vielleicht sagen, wo ungefähr es steht
>bzw. nach was ich gucken muss?

Datanblatt:

Memory Programming->Serial Downloading->SPI Serial Programming Pin 
Mapping

von jb (Gast)


Lesenswert?

wie sieht es eigentlich aus mit ULINK von KEIL? das ist ein Adapter mit 
debugging, stimmts? könnte ich ich es mit avr studio 6 benutzen, um das 
Board, über die ISP-Schnitstelle, zu programmieren oder würdet ihr mir 
was anderes raten?

gruß

jb

von jb (Gast)


Lesenswert?

woher weiß ich denn, ob ich den Reset-Eingang als externes Reset 
konfiguren muss oder ist egal?
wie sieht es eigentlich aus mit ULINK von KEIL(siehe 1 Beitrag voher)?


gruß jb

von jb (Gast)


Lesenswert?

>Both the Flash and EEPROM memory arrays can be programmed using the serial SPI 
>bus while
>RESET is pulled to GND. The serial interface consists of pins SCK, MOSI >(input) 
>and MISO (output).
>After RESET is set low, the Programming Enable instruction needs to be executed 
>first
>before program/erase operations can be executed. NOTE, in Table 127 on page 300, 
>the pin
>mapping for SPI programming is listed. Not all parts use the SPI pins dedicated 
>for the internal
>SPI interface. Note that throughout the description about Serial downloading, 
>MOSI and MISO
>are used to describe the serial data in and serial data out respectively. For 
>Atmel®
>AVR®ATmega128 these pins are mapped to PDI and PDO.

hallo
ich bin nicht so mächtig in englisch. nur mal zum Verständis, kann man 
den RESET auch auf GND anlegen? Ich möchte doch ein ISP-SChnittstelle 
anbringen und endlich das blöde ding in c progammieren :( habe auch 
alles besorgt.

gruß
jb

von spess53 (Gast)


Lesenswert?

Hi

>nur mal zum Verständis, kann man
>den RESET auch auf GND anlegen? Ich möchte doch ein ISP-SChnittstelle
>anbringen und endlich das blöde ding in c progammieren :( habe auch
>alles besorgt.

Ich habe mir gerade noch mal den Schaltplan von deinem Board angesehen. 
Der Reset-Pin ist mit 10k nach VCC und, wenn ich das richtig deute, mit 
einem 10µ Elko nach GND beschaltet. Der Widerstand passt, aber der Elko 
könnte/wird die Programmierung über ISP massiv stören. Könnte sogar 
gefährlich für den Programmer werden.

MfG Spess

von jb (Gast)


Lesenswert?

danke spess53.
Was kann man da machen? ich habe alles angeklemmt bis auf den reset und 
das mit dem programmiern klappt auch net so, bekomme ständig 
fehlermeldung von ATMel Studio. bin am verzweifeln.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Wenn Du Dein C-Programm da über ISP reinflasht, wird der Bootloader 
(oder der BASIC-Interpreter) darin überschrieben. Du hattest früher 
geschrieben, Du hättest das Board lediglich geliehen und müsstest das 
wieder zurückgeben?

Dein Freund wird nicht gerade glücklich sein, wenn Du ihm das Ding ohne 
Bootloader und BASIC-Interpreter zurückgibst, denn dann wird es für ihn 
unbrauchbar sein.

Lass das und besorg Dir etwas, was auf Deine Belange zugeschnitten ist. 
Ist auch wesentlich günstiger.

von jb (Gast)


Lesenswert?

>Wenn Du Dein C-Programm da über ISP reinflasht, wird der Bootloader
>(oder der BASIC-Interpreter) darin überschrieben. Du hattest früher
>geschrieben, Du hättest das Board lediglich geliehen und müsstest das
>wieder zurückgeben?

Das ist kein problem. habe noch mal nachgefragt. hauptsache ich schaffe 
es irgendwie das board in c zu schreiben.


gruß

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.