Show Posts
|
|
Pages: [1]
|
|
2
|
International / Deutsch / Re: Wie ATTiny85 mit Arduino Mega 2560 Programmieren?
|
on: February 11, 2013, 04:34:18 am
|
habe mir mal den detector angeschaut.... dort kommt dieses bei raus: Atmega chip detector. Entered programming mode OK. Signature = 1E 07 00 Unrecogized signature. LFuse = 00 HFuse = 00 EFuse = 00 Lock byte = 00 Clock calibration = 00
First 256 bytes of program memory:
0: 00 00 00 00 00 00 00 00 00 00 01 3F 00 00 00 00 10: 00 00 01 01 02 02 03 03 00 00 01 01 00 00 01 01 20: 00 00 01 09 02 02 03 03 04 04 05 0D 06 06 07 07 30: 00 00 01 01 02 02 03 1F 00 00 01 1D 06 02 03 01 40: 30 0C 02 00 23 FF 11 10 60 13 05 05 06 16 07 07 50: 08 08 09 09 0A 0A 0B 0B 3F 0F 0D 0D 0E 0E 0F 0F 60: 00 00 01 18 02 0A 03 0B 04 04 05 05 0E 0E 07 07 70: 00 00 01 01 0A 02 03 03 04 04 05 05 06 0E 07 07 80: 00 1F 01 21 02 02 03 23 04 24 05 05 46 06 01 47 90: 08 08 09 3F 0A 0A 0B 0B 2C 2C 0D 0D 0E 0E 0F 01 A0: 68 7F 1A 31 0C 0C 0C 06 0D 3A 15 15 36 16 17 17 B0: 0E 01 0E 1E 3C 56 1B 3B 3E 1F 3F 19 37 1E 1F 3F C0: 10 00 01 3F 02 02 03 03 04 04 05 05 06 06 07 07 D0: 18 3F 09 09 0A 1A 0B 0B 0C 0C 0D 2D 1E 0E 0F 0F E0: 10 70 01 01 02 02 03 73 04 14 05 05 06 1F 07 07 F0: 18 08 09 09 0A 1A 0B 0B 0C 0F 0D 0D 0E 0E 0F 0F da stimmt was nicht. Die Signatur deutet nicht auf einen Attiny85 Siehe http://www.wiki.elektronik-projekt.de/mikrocontroller/avr/signature_bytes
|
|
|
|
|
3
|
International / Deutsch / Re: SainSmart 3.2" TFT Touch Screen LCD wieviel Kabel und wohin?
|
on: February 11, 2013, 01:10:42 am
|
hier steht, wie die Verkabelung läuft ... PIN für PIN, ausgeschrieben. Du solltest nur nicht direkt verkabeln, da das Display nicht mit 5V arbeitet. Was ich gemacht habe, ist, dass ich mir sog. "male/female Dupont cable" bei ebay/Watterott gekauft habe und das Schield nicht direkt sondern über diese Kabel angeschlossen habe. Erstmal ganz einfach, so wie es das Schield vorsieht. Hat übrigends den netten Effekt, dass Du statt den Pins 0-7 auch 41-49 benutzen kannst. Musst halt bei der Initialisierung aufpassen. Somit hast Du bis auf die Stromanschlüsse alle Anschlüsse auf der doppelreihe Pins http://arduino.cc/forum/index.php/topic,145665.0.html
|
|
|
|
|
5
|
International / Deutsch / Re: 24C08 Wiring & Sketch
|
on: February 02, 2013, 11:33:08 am
|
Danke für die Infos. Im Datenblatt für den 24C65 (hat den schon mal jemand mit einem Arduino genutzt?) ist folgendes angegeben: Endurance: - 10,000,000 E/W cycles guaranteed for High Endurance Block - 100,000 E/W cycles guaranteed for a Standard Endurance Block
Kann mir das mit dem "High Endurance Block" und dem "Standard Endurance Block" bitte mal jemand erklären? Dirk Du hast das falsche Datasheet verlinkt. Im richtigen Datasheet http://www.datasheetcatalog.org/datasheet2/6/0r8hiw9dchrha5s4p07uhzqe7sfy.pdfsteht: "The 24XX65 offers a relocatable 4K bit block of ultra-high-endurance memory for data that changes frequently. The remainder of the array, or 60K bits, is rated at 1,000,000 erase/write (E/W) cycles ensured." Sprich, es ist ein spezieller Speicherbereich der länger hält.
|
|
|
|
|
6
|
International / Deutsch / 24C08 Wiring & Sketch
|
on: February 02, 2013, 05:31:19 am
|
Hallo, keine Ahnung, ob es irgend jemand interessiert. Da der 24C08 EEPROM doch etwas anders ist als die anderen EEPROMs, kopiere ich mein Sketch mal hierhin. Da der 24C08 nur einen Adressbereich von einem Byte hat womit sich aber nicht der ganze Speicherbereich von 1024 Byte adressieren lässt, hat jeder EEPROM vier unterschiedliche I2C Adressen. Es lassen sich max. zwei Chips benutzen, da nur ein Eingang für die I2C Adresse vorgesehen ist. Interessant an dem Chip ist, dass STM 1 Mio Schreib-/Löschzyklen garantiert. Da ich gestern lange gegrübelt habe und nichts brauchbares im Netz bzw auch falsche Infos hier im Forum fand, hier mal mein Sketch. Vielleicht hilft es jemanden wenn er nach Infos sucht. /* Reading and writing data to 24C08 EEPROM over I2C CC0 Datasheet for 24C08 http://www.datasheetcatalog.org/datasheets/134/80474_DS.pdf WIRING __ __ PRE -| |- VCC NC -| |- MODE E -| |- SCL VSS -|_____|- SDA PRE = Write Protect -> GROUND NC = Not connected E = Chip Enable Input -> first EEPROM -> GROUND for I2C addresses 0x50,0x51,0x52,0x53; second EEPROM -> 5V for I2C addresses 0x54,0x55,0x56,0x57 VSS = Ground -> GROUND VCC = Supply Voltage -> 5V MODE = Multibyte/Page Write Mode -> GROUND (not used here) SCL = Serial Clock -> Analog PIN 5 (Uno) SDA = Serial Data Address IN/OUT -> Analog PIN 4 (Uno) */
#include <Wire.h> // for I2C
// variable to receive data coming from the EERPROMs byte data_received=0;
// eeprom address array, use I2C scanner sketch to find the addresses. This array contains 2 chips with 4 device addresses (like virtual chips) each byte chip[] = {0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57};
void setup() { Serial.begin(9600); // for screen output Wire.begin(); // waking up I2C delay(1000); Serial.println("Setup finished"); }
void writeData(int device_address, byte memory_address, byte data) // write one byte of data 'data' to eeprom memory address 'memory_address' to chip with I2C address 'device_address' { Wire.beginTransmission(device_address); // device address Wire.write(memory_address ); // memory address Wire.write(data); // data to send Wire.endTransmission(); // end delay(10); }
byte readData(int device_address, byte memory_address) // reads one byte of data from memory location 'memory_address' in chip at I2C address 'device_address' { byte result; // return value Wire.beginTransmission(device_address); // device address Wire.write(memory_address); // memory address Wire.endTransmission(); // end Wire.requestFrom(device_address,1); // get one byte of data from device if (Wire.available()) result = Wire.read(); return result; // return the read data byte delay(10); }
void loop() { // WRITING DATA
int ascii_counter = 33; // to see something we start with the first readable character in the ASCII table which is 33 == '!' Serial.println(); Serial.print("Writing data "); Serial.println(); for (int a=0; a<8; a++) // loop to go through the address array of the eeprom i.e. chip[a] { for (int b=0; b<256;b++) // each chip has one byte of addressable memory { writeData(chip[a],b,ascii_counter); // writing the value ascii_counter to chip chip[a] at address b Serial.print("chip :"); // let's see what it did Serial.print(chip[a], HEX); Serial.print(" address :"); Serial.print(b); Serial.print(" value :"); Serial.println(char(ascii_counter)); ascii_counter++; // next character of ASCII table if (ascii_counter > 126) {ascii_counter = 33;}; // ASCII characters greater 126 are not visible, go back to the first readable character at 33 } Serial.println(); } delay(10000); // let's wait some seconds
// READING DATA Serial.println("Reading data..."); for (int a=0; a<8; a++) // same as above, we toogle through the 8 chips .... { Serial.print("Chip: "); Serial.println(chip[a],HEX); for (int b=0; b<256;b++) // and all 256 addresses in each (virtual) chip... { data_received=readData(chip[a],b); // and read the data there.... Serial.print(char(data_received)); // and print it to serial.... } Serial.println(); // new line for each chip } // since the chip has only a limited number of write cycles, we don't want to write again and again. Let's end the sketch do { delay(10000); } while ( 1 != 0); }
|
|
|
|
|
8
|
Using Arduino / Displays / Re: ANOTHER Sainsmart 3.2" TFT Screen topic..
|
on: January 29, 2013, 10:32:41 am
|
|
no problem. if you want to use touch and SD card you should also connect
Touch -> Mega DCLK-> D6 CS(pin 30) -> D5 IN -> D4 OUT-> D3 IRQ -> D2
DCLK, TCS, DIN, OUT, IRQ can be wired to any free pin on your Mega. But you should initialize it accordingly with myTouch(DCLK,CS,IN,OUT,IRQ).
SD Card -> Mega SCK -> D52 MISO -> D50 MOSI-> D51 CS -> D53
|
|
|
|
|
9
|
Using Arduino / Displays / Re: ANOTHER Sainsmart 3.2" TFT Screen topic..
|
on: January 29, 2013, 09:29:32 am
|
|
I received the display yesterday but still waiting for cables. Based on what I found so far I think you try to connect TFT -> Mega LEDA -> 5V VCC -> 5V RD -> 3.3V GND -> GND DB0..DB7 -> pin D37->D30 DB8..DB15 -> pin D22->D29 RS -> D38 WR -> D39 CS(pin6) -> D40 RSET -> D41
|
|
|
|
|
10
|
International / Deutsch / Re: Arduino an USB startet ständig neu
|
on: January 01, 2013, 04:50:14 pm
|
Kann ich den Arduino dazu bewegen, mir den Grund für den Neustart irgendwie mitzuteilen? Ich nehme mal an Du hast einen Arduino UNO. Kontrollier mal das PWR-LED auf dem Arduino. Löscht dies kurz aus bevor der Arduino neu startet? Du kannst den Arduino an USB anschließen und gleichzeitig an der Stromversorgungbuchse mit Strom versorgen. Sobald an der Stromversorgungsbuchse mehr als 7V anliegen nimmt der Arduino die externe Stromversorgung. Das Problem ist die Verlustleistung am Spannungsstabilisator des Arduino. Wenn Du Arduino mit 9V versorgst und 500mA Strom ziehst dann sind das 2W am Spannungstabilisator. Bei 7V sind das immernoch 1W. Der Spannungsstabilisator ist auf dem Arduino nicht für so hohe Verlustleistung ausgelegt (es fehlt der Kühlkörper). Wie hoch ist der Strom der Hintergrundbeleuchtung (Datenblatt der Dispays)? Grüße Uwe Ich habe gerade den MEGA mit dem Display verkabelt....wenn es hilfreich ist, kann ich auch den UNO nehmen. Also die folgende Blinkfolge passiert bei jedem Neustart: 2x "L", 1x ganz kurz "Tx", 2x "L", 1x ganz kurz "Tx" PWR leuchtet immer Datenblätter der LCD muss ich erstmal suchen
|
|
|
|
|
11
|
International / Deutsch / Re: Arduino an USB startet ständig neu
|
on: January 01, 2013, 04:27:17 pm
|
Hallo, messen ist hier in jedem Fall angebracht. Wie viel Spannung bleibt am Board übrig wenn das Display angeschlossen ist? Ein weiteres Problem kann durchaus das USB Kabel sein. Gerade die biligen haben sehr oft nur ausgesprochen dünne Litzen, die ganz miesen noname Kabel gelegentlich nicht einmal welche aus reinem Kupfer sondern irgend einem "Mischmasch". Und dann bricht die Spannung zusammen auch wenn die 500mA nicht überschtitten sind. Probier einfach mal ein anderes Kabel. Möglichst kurz, nicht zu dünn, nicht das allerbilligste von ebay-China  Christian Ohje, also eines der drei Boards und das Kabel sind von Fritzing. Ich hoffe, die haben nicht das allerbilligste aus China geliefert  Ein zweites, wirklich allerbilligste China-Kabel ändert da nichts. Ich habe momentan zwar keine Ahnung, wie ich den Stromverbrauch messen kann, aber dazu gibt es ja genügend im Internet zu lesen. Es scheint also nicht möglich zu sein, die Stromversorgung auf extern umzuschalten während USB angeschlossen ist. Eins wunderte mich jetzt sehr. Ich nutze machmal eine 9V Block Batterie und machmal ein USB Netzteil von einer WLAN Station abwechselnd als externe Stromversorgung...beides funktioniert problemlos. Es kann also nicht die von Uwe erwähnte 500mA USB Sicherung sein, die da greift. Also hab ich das Board mal an einen headless Server angeschlossen, der hier noch läuft. Und auch da geht es problemlos. Es muss also an meinen Laptop liegen. Kann ich den Arduino dazu bewegen, mir den Grund für den Neustart irgendwie mitzuteilen?
|
|
|
|
|
12
|
International / Deutsch / Re: Arduino an USB startet ständig neu
|
on: January 01, 2013, 03:57:03 pm
|
Die USB-Schnittstelle kann definitionsgemäß 500mA liefern. Deshalb ist auf dem Arduino eine automatisch rücksetzende Sicherung für 500mA (Polyswitch) vorgesehen. Wenn Deine Shields jetzt mehr als 500mA ziehen dann greift die Sicherung ein. Kontrollier mal wieviel Strom die Hintergrundbeleuchtung der Displays braucht; Du wirst staunen.
Lösung: eine dem Verbrauch angemessene Stromquelle verwenden zB ein externes Netzteil. Das Netzteil jetzt bitte nicht an der Netzteilbuchse anschließen da Du somit den Spannungsstabilisator überhitzt.
Grüße Uwe
Danke Uwe. Da ich den Arduino eine Weile an USB hängen lassen muss um einige Programmfunktionen zu testen, muss ich also so lange die Stromversorgung der Komponenten über externe Netzteile (5V + 3.3V) sicherstellen. Schade, dass ich die Stromversorgung nicht auf extern umschalten kann, solange der Arduino an USB hängt.
|
|
|
|
|
13
|
International / Deutsch / Arduino an USB startet ständig neu
|
on: January 01, 2013, 03:07:55 pm
|
|
Hallo,
ich habe das Problem, dass mein Arduino mit angeschlossenem LCD oder TFT nach spätestens 30 Sekunden am USB Anschluß neu startet. Das ganze ist recht unabhängig von meinen Sketches und tritt auch bei den Lib-Beispielen auf; selbst bei einem einfachen Counter, der einmal pro Sekunde einen Zähler hochsetzt und anzeigt. Es scheint, dass das nur passiert sobald ich ein LCD oder TFT anschliesse. Bei reiner Ausgabe über die seriellen Schnittstelle startet der Arduino nicht neu. Ich habe 3 Arduino Boards, 2 LCD und 1 TFT hier, aber es tritt immer auf sobald ich eine LCD oder TFT benutze. Wenn ich die Boards an eine externe Stromversorgung hänge, gibt es auch keine Probleme. Kann mir jemand sagen, wie ich das Problem vermeiden kann?
Vielen Dank schonmal vorab
|
|
|
|
|