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
intmain()
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
return0;
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
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
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?
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
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.)
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
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.
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
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
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
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.
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?
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)
>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ß
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.
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
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
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.
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
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.
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
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.
>>> 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.
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
>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ß
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
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
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
>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
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
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.
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.
>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ß