LED blinken. Board MR-C3024. µC ATMEGA128L

Gast #2731282
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
Gast #2731320
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
Gast #2731375
Lesenswert?

Gast #2731408
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
#2731441
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.
Gast #2733909
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
Gast #2733957
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
#2734170
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.
Gast #2734743
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?
#2734823
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)
Gast #2736178
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ß
#2736263
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.
Gast #2738922
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
Gast #2740361
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.
Gast #2740373
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
#2740451
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.
Gast #2740458
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
Gast #2740476
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.
Gast #2740496
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ß
Gast #2742014
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
Gast #2753627
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
Gast #2753650
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
Moderator Persönliche Seite #2753668
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.
Gast #2753695
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ß

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren