Go Down

Topic: Elo Ping Pong Platine mit Arduino 0021 programmieren? (Read 2262 times) previous topic - next topic

DE8MSH

Jan 30, 2011, 08:01 pm Last Edit: Jan 30, 2011, 08:23 pm by DE8MSH Reason: 1
Hallo,

ich habe ja haufenweise ELO Ping Pong Platinen herumliegen, die ich gerne direkt aus Arduino 0021 heraus programmieren würde. Ich würde gerne mehrere Ping Pong Platten mit I2C verbinden und einen Scroller über mehrere Module laufen lassen - muss ich dann coden...

Ich kann ein .hex File, welches ich mit SHIFT+compile in %temp%\..... erzeugt habe, mit

avrdude -c avr910 -P com3 -b 115200 -p m8 -U laufschrift.hex

in die Platine bringen.

Dazu meine Frage: wie stelle ich Arduino ein, damit Arduino direkt nach dem Compilieren das .hex File in den ATmega8 der Pong Platte überträgt?

Fehlermeldung ist:

Binary sketch size: 6014 bytes (of a 7168 byte maximum)
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51
Look at
http://de8msh.blogspot.com/
and
http://www.youtube.com/user/de8msharduino

DE8MSH

Hallo,

es scheint passiert. Ich wollte den ATmega8 mit dem Arduino Bootloader versehen. Nun kann ich nichts mehr mir avrdude aufbringen. Jetzt kann es sein, dass ich ihn verfused habe. Kann mit jemand eine schnelle Softwarelösung nennen wie ich mit dem Arduino Uno einen TTL Takt auf XTAL1 des ATmega8 legen kann? Ich möchte probieren ob ich den ATmega8 wiederbeleben kann indem ich einen externen Takt anlege. Lt. div. Foren soll das eine Lösung sein...
Look at
http://de8msh.blogspot.com/
and
http://www.youtube.com/user/de8msharduino

madworm

#2
Jan 30, 2011, 09:35 pm Last Edit: Jan 30, 2011, 09:46 pm by madworm Reason: 1
Code: [Select]
void setup(void){
 DDRD = 0xFF;
}

void loop(void){
 while(1) {
   PIND ^= 0xFF;
 }
}


Das sollte so um die 2MHz liefern. Auf den "analogen" pins.

Code: [Select]
000000ac <loop>:
 ac:   89 b1           in      r24, 0x09       ; 9
 ae:   80 95           com     r24
 b0:   89 b9           out     0x09, r24       ; 9
 b2:   fc cf           rjmp    .-8             ; 0xac <loop>


• Upload doesn't work? Do a loop-back test.
• There's absolutely NO excuse for not having an ISP!
• Your AVR needs a brain surgery? Use the online FUSE calculator.
My projects: RGB LED matrix, RGB LED ring, various ATtiny gadgets...
• Microsoft is not the answer. It is the question, and the answer is NO!

DE8MSH

#3
Jan 30, 2011, 09:52 pm Last Edit: Jan 30, 2011, 10:00 pm by DE8MSH Reason: 1
Hi,

habe es mal compiliert. XTAL1 vom ATmega8 liegt nun an PIN7 des Ardo. GND des ATmega8 an GND des Ardo. Leider kappt's nicht:

avrdude -c avr910 -P com3 -b 115200 -p m8 -U lfuse:w:0xE4:m -U hfuse:w:0xC9:m -F

bringt

Found programmer: Id = "AVR ISP"; type = S
   Software Version = 3.9; Hardware Version = 1.2
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize = 64 bytes.

Programmer supports the following devices:
   Device code: 0x13 = AT90S1200
   Device code: 0x20 = ATtiny84
8x8x8x8x8x8x8x8x8x8x
   Device code: 0x76 = ATMEGA8
8x8x8x8x8x8x8x8x8x8x

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.03s

avrdude: Device signature = 0xffffff
avrdude: Yikes!  Invalid device signature.
avrdude: Expected signature for ATMEGA8 is 1E 93 07
avrdude: reading input file "0xE4"
avrdude: writing lfuse (1 bytes):

Writing |                                                    | 0% 0.00s ***failed;
Writing | ################################################## | 100% 0.52s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xE4:
avrdude: load data lfuse data from input file 0xE4:
avrdude: input file 0xE4 contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.07s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
        0xe4 != 0xff
avrdude: verification error; content mismatch

avrdude: safemode: lfuse changed! Was e4, and is now ff
Would you like this fuse to be changed back? [y/n] y


Wenn ich y gebe passiert nichts weiter. ISP Brenner Lampen brennen als wenn etwas übertragen wird. Fuses werden aber nicht gesetzt....
Look at
http://de8msh.blogspot.com/
and
http://www.youtube.com/user/de8msharduino

madworm

PIN7, Ich hoffe nicht einer der "digitalen"...

Sollte es auch noch an anderweitig falschen fuses liegen, also nicht nur falsche clock source, dann gibt es noch das hier:

http://mightyohm.com/blog/products/hv-rescue-shield-2-x/

Schaltplan + code ist verfuegbar. Benoetigt noch 12V DC fuer den reset pin, um den chip in das HV parallel programming zu bringen. Damit sollte sich so ziemlich alles wiederbeleben lassen.

Und hier noch ein guter FUSE calculator.
• Upload doesn't work? Do a loop-back test.
• There's absolutely NO excuse for not having an ISP!
• Your AVR needs a brain surgery? Use the online FUSE calculator.
My projects: RGB LED matrix, RGB LED ring, various ATtiny gadgets...
• Microsoft is not the answer. It is the question, and the answer is NO!

DE8MSH

Nichts zu machen. Egal ob ich XTAL1 an analogen oder digitalen PINS klemme: og. Meldung bleibt.
Look at
http://de8msh.blogspot.com/
and
http://www.youtube.com/user/de8msharduino

volvodani

Ich weiss ist schon ein alter Thread aber ich habe die Platine schon seit einiger Zeit hier rumliegen. Nach dem erfolgreichen Nachbau einer Wordclock in groß wird mit dieser Palatine eine kleine Schwester das "Licht" der Welt erblicken.
Um die Pong Platine mit 1.0.3 zu Programieren (via ISP) nutzte ich einfach folgende Erweiterung in dem Pfad.
In
D:\arduino-1.0.3\hardware\arduino\boards.txt
folgendes "Board" ergänzen
Code: [Select]

***************************************************************
atmega8.name=Pong (int.OSC 8Mhz)

atmega8.upload.protocol=arduino
atmega8.upload.maximum_size=8192
atmega8.upload.speed=19200

atmega8.bootloader.low_fuses=0xE4
atmega8.bootloader.high_fuses=0xD9
atmega8.bootloader.path=atmega8
atmega8.bootloader.file=ATmegaBOOT-prod-firmware-2009-11-07.hex
atmega8.bootloader.unlock_bits=0x3F
atmega8.bootloader.lock_bits=0xFF

atmega8.build.mcu=atmega8
atmega8.build.f_cpu=8000000L
atmega8.build.core=arduino
atmega8.build.variant=standard

Und mit diesem Sketch kann man dann alle LED mal leuchten lassen:
Code: [Select]
#define R1 14
#define R2 15
#define R3 16
#define R4 17
#define R5 4
#define R6 5
#define R7 6
#define R8 7
#define R9 8
#define R10 9

byte R[11]={
  14,15,16,17,4,5,6,7,8,9};
int latchPin = 10;
int clockPin = 11;
int dataPin = 12;
int x=0;
byte b1=255;
byte b2=255;

void setup(){
  for(int i=0;i<11;i++){
    pinMode (R[i],OUTPUT);
  }
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
}




void loop(){
  digitalWrite(R[x],HIGH);
  digitalWrite(R[x-1],LOW);
  x=x+1;
  if (x>=11){
    x=0;
    if(b1>=1){
      b1=b1-1;
      b2=b1;
    }
    if (b1==0){
      b1=255;
      b2=255;
    }
  }
  digitalWrite(latchPin, LOW);
  shiftOut(dataPin, clockPin, LSBFIRST,b2); 
  shiftOut(dataPin, clockPin, LSBFIRST,b1); 
  digitalWrite(latchPin, HIGH);
  delay(7);
}


Falls es jemand gebrauchen kann.
Gruß
Der Dani
So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!

DE8MSH

Hallo Der Dani,

ja, ich kann das noch gebrauchen. Ich habe die Platten weiterhin hier liegen. Habe eine Projekt Idee, die mit den Platten noch nicht gemacht wurde ;).
Look at
http://de8msh.blogspot.com/
and
http://www.youtube.com/user/de8msharduino

Go Up