Archiv verlassen und diese Seite im Standarddesign anzeigen : Gameboy Kamera an rs232
Ich habe eine Gameboy Kamera die ich mit einem Controller via rs232 an den Computer anschliessen möchte. Zusätzlich möchte ich Steuersignale senden und empfangen.
Das Thema wurde schon etliche male diskutiert und umgesetzt. Daher hoffe ich von Erfahrungen zu profitieren.
Ich möchte wissen mit welchem Controller, ram und AD sich das Projekt am einfachsten und günstigsten umsetzten lässt. Ich habe nur beschränkt Programmiererfahrungen, daher wäre ich froh wenn ich von jemandem ein funktionierendes Programm übernehmen und anpassen könnte.
Das ganze sollte am Schluss ein Remote System für meinen Roboter werden.
pebisoft
23.05.2005, 17:37
das thema wurde bis jetzt noch nicht in diesem forum konstruktiv lauffähig umgesetzt. der einzige der ein beispiel umsetzte war "uli", merk dir den namen, kannste auch im internet aufrufen, er hat schon einige andere avr projekte mit "video" umgesetzt.
es klappt noch nicht so richtig, es fehlt ein sram-speicher der mit dem avr und mit dem kamera-kopf läuft. ich mach zur zeit meine experimente mit der mmc/sd-karte (gibt es auch bei uli), ist nicht einfach. wenn du dich nicht mit winavr-c auseinandersetzt, hast du keine change es zum laufen zu bringen um das bild sichtbar zu machen brauchst du eh noch ein selbstgeschriebenes mswin-programm mit irgendeiner mswin-sprache.
ich habe erste vesuche (gameboy-cam)mit dem avr16 mit 16mhz und dem adc-port gemacht. die daten/zahlen sind noch nicht das gelbe vom ei. ein bild dauert zur zeit noch ca 9sec mit der übertragung von rs232, dann kommt noch die auswertung dazu. aber interessant ist es schon obwohl es noch nicht läuft.
zur zeit ist aber ruhe auf dem gameboy-cam-schiff.
die sdram-variante(mmc/sd) wird auch noch einige euro und zeit kosten. nur um erst einmal zu schauen, wie man denn überhaupt mit dem winavr-c daten rein bekommt und auch wieder auslesen kann ohne überhaupt an die gameboy-cam zu denken.
mfg pebisoft
Ich nahm an, nach dem was ich gefunden habe, dies lässe sich auf einfachem weg realisieren. Was lässt sich bis jetzt mit der Kamera realisieren? Das auslesen der bilddaten wurde hier https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=7504&highlight=gameboy schon realisiert.
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=434&highlight=gameboy
http://www.kreatives-chaos.com/index.php?seite=gbcam
http://www.destroy-yourself.de/julian/juliprograms/amr/gbcam.htm
pebisoft
23.05.2005, 18:06
na dann viel spasss.....................
es wurde dort sehr viele unregelmässigkeiten festgestellt.
es steckt noch total in den kinderschuhen.
oder siehst du hier im forum eine weihnachtsstimmung das es geklappt hat.
wenn du meinst, dann schnapps du dir deine 4 titel die du hier rein gestellt hast, und baust dir auf die schnelle eine gameboycam auf dem robby mit auswertesytsem.
wenn du sie fertig hast, würde ich mich freuen wenn du uns unter die arme greifen könntest.
hast du dir überhaupt schon einmal das winavr-c-programm für die cam angeschaut.
mfg pebisoft
pebisoft
23.05.2005, 18:27
Wuist net longsam hoam noch Lineboug, i bin ma sicher deß des do anna in oam sotz beantwortn wird kenna.
mfg pebisoft
Euer Pessimismus hat mich leider noch nicht zur Erleuchtung gebracht. Ich werde mich wohl noch ein wenig mit der cam beschäftigen.
Da hat nebenbei noch jemand ein Board für die Cam Konstruiert...
pebisoft
23.05.2005, 18:35
endlich kommt die erleuchtung.....
jetzt wirst du erst merken, es ist doch nicht so einfach....und dann die bauteilkosten. ich kann nebenbei so ein board nicht konstruieren und ätzen.
mfg pebisoft
der Pessimismus wurde bisher nur von pebisoft vertreten...
das thema wurde bis jetzt noch nicht in diesem forum konstruktiv lauffähig umgesetzt. der einzige der ein beispiel umsetzte war "uli"
ich glaube, die Gameboycam haben schon mehr als uli zum Laufen gebracht (ich unter anderem)
es fehlt ein sram-speicher der mit dem avr und mit dem kamera-kopf läuft
der Speicher braucht nur mit dem AVR zusammenzulaufen und dafür tuts ganz normaler SRAM
ich mach zur zeit meine experimente mit der mmc/sd-karte
die mmc/sd-Karten sind aber kein RAM, also nur begrenzt oft wiederbeschreibbar, deshalb sind sie zum Zwischenspeichern der Pixelwerte nicht so gut geeignet
sdram-variante(mmc/sd)
das sind zwei komplett verschiedene Sachen, sdram ist DRAM und die mmc/sd-Karten basieren auf Flashspeicher
der Link http://www.destroy-yourself.de/julian/juliprograms/amr/gbcam.htm ist echt gut, damit kannst du selbst ein Programm zum Benutzen der gbcam schreiben, nur die Werte für die Register musst du selbst herausfinden oder passende zusammensuchen(bei mir wars eine Mischung daraus)
ich kann inzwischen Bilder machen, allerdings noch sehr langsam, was aber mit einem entsprechenden Quarz am AVR behoben werden kann(hoffe ich)
es wurde dort sehr viele unregelmässigkeiten festgestellt.
es steckt noch total in den kinderschuhen.
Kannst du dich dazu bitte näher äußern?
Was steckt noch in den Kinderschuhen?
so hoch sind die Bauteilkosten aber auch wieder nicht, der AVR kostet so um die 4 Euro, der ADC (PCF8591) so um die 5 Euro(genau weiß ich es im Moment nicht), der RAM 1 Euro, der Rest vielleicht nochmal 5 Euro
klar, eine selbstgeätzte Platine ist was feines(werd ich für die gbcam auch noch machen), aber zum Testen ist sowas nicht nötig, dazu reicht eine Loch- oder Streifenrasterplatine vollkommen aus
pebisoft
23.05.2005, 20:04
www.roboternetz.de/phpBB2/zeigebeitrag.php?t=7504&highlight=gameboy
...zur zeit keine lösung gefunden, die zur hinderniserkennung funktioniert.
www.roboternetz.de/phpBB2/zeigebeitrag.php?t=434&highlight=gameboy
...streitigkeiten bei der programmerfahrung. ich bin mir nicht ganz schlüssig, ob das bascom programm tatsächlich vorhanden ist.
stell doch bitte mal deine struktur zur funktion, platine,chip,adc und programm
vor.
mfg pebisoft
www.roboternetz.de/phpBB2/zeigebeitrag.php?t=7504&highlight=gameboy
...zur zeit keine lösung gefunden, die zur hinderniserkennung funktioniert.
Hab nie gesagt, dass dies mein Ziel sei. Für das giebt es Sharp's
EDIT:
@pascal:
Weilche IC's hast du verwendet oder würdest du mir empfehlen? Wie weit hast du es mit der software gebracht? Kann man die Daten via Schnittstelle auf den Computer laden? Hast du eventuel noch einen schaltungsbeschreibung?
...zur zeit keine lösung gefunden, die zur hinderniserkennung funktioniert.
da schließ ich mich Z80 an, aber eine Hinderniserkennung für einen mobilen Roboter ist das Ziel von mir und eines Bekannten, wobei ich eher für die Hardware zuständig bin und er für die Bildverarbeitung
das Ganze ist, wie gesagt, momentan noch ziemlich experimentell, daher ist es auf einer Streifenrasterplatine hauptsächlich mit Litzenverbindungen aufgebaut, als µC kommt ein ATMega16-16 zum Einsatz, der momentan noch intern mit 1MHz getaktet ist
das ist natürlich erstens viel zu langsam und auch nicht genau genug für die usart, weshalb ich demnächst einen externen Quarz verwenden werde
der ADC ist der PCF8591(angeblich tuts auch der im AVR eingebaute ADC, was aber sicherlich die schnellste der drei Methoden ist, ist ein externer ADC mit parallelem Interface)
@ pebisoft: was meinst du mit Funktion? meinst du, wofür ich die cam im Moment verwende? wenn ja, zum Bildermachen :-) (das ganze ist schließlich noch in der Test- und Aufbauphase)
die Daten kann man vie RS232 auf den PC laden und als Bild betrachten, im Moment, wegen der schlechten Taktung, aber nur mit 2400 Baud(ich weiß, das ist verdammt wenig), wenn ich aber eine höhere Geschwindigkeit verwende, gibts Probleme(ich hoffe aber, dass die sich mit einem neuen(genauen) Quarz verringern lassen)
Schaltungsbeschreibung habe ich nicht, da ich dafür keinen Schaltplan gezeichnet habe, sondern mit die Datenblätter angeschaut und danach gelötet habe
die µC-Software ist komplett selbst geschrieben und funktioniert auch, nur wird die niemand nachvollziehen können, da ich nicht sehr ausführlich kommentiere
ich kann das in den kommenden Tagen mal nachholen(geht aber nicht so schnell)
bei Unklarheiten bitte weiterfragen...
pebisoft
23.05.2005, 22:10
hast du in c oder asm geproggt.
wenn du intern auf 8mhz gehst (geht beim avr16-16), kannst du 19200baud übertragen.
mfg pebisoft
ich hab in C programmiert
wenn du intern auf 8mhz gehst (geht beim avr16-16), kannst du 19200baud übertragen.
danke für den Tip, ich dachte, der interne Takt sei bei 8MHz nicht mehr exakt genug für usart-Übertragungen
pebisoft
23.05.2005, 22:29
kannst du dein c mal hier reinstellen, spielt keine rolle wie es aussieht.
ich habe zur zeit das winavr-c von "uli" wo er seine grafikkarte mit ansteuert und ein bild von der gameboy-com abbildet, das teilprogramm habe ich dann rausgezogen und mit den register-einstelldaten aus dem forum versehen.
mfg pebisoft
pebisoft
23.05.2005, 22:31
das der uart nicht immer genau funktioniert liegt an den condensatoren am max, die teilweise zu grosse abweichung in der vorgeschriebenen toleranz haben.
mfg pebisoft
das der uart nicht immer genau funktioniert liegt an den condensatoren am max, die teilweise zu grosse abweichung in der vorgeschriebenen toleranz haben.
welche Kondensatoren sollte man dann verwenden?
hier mein Code:
die Headerdatei:
#include <avr/io.h>
#include <avr/signal.h>
#include <avr/twi.h>
#include <stdlib.h>
#include "TWI.h"
#include "uart.h"
#include "sram.h"
#define START_PORT PORTB
#define START_PIN 1
#define SIN_PORT PORTD
#define SIN_PIN 7
#define LOAD_PORT PORTD
#define LOAD_PIN 6
#define RESET_PORT PORTB
#define RESET_PIN 4
#define XCK_PORT PORTD
#define XCK_PIN 2
#define READ_PORT PIND
#define READ_PIN 3
void sei(void);
uint8_t ADC_read(uint8_t, uint8_t);
void ADC_print(uint8_t);
void gbcam_write(uint8_t, uint8_t);
void pos_imp(void);
void delay(uint8_t);
die Codedatei:
#include "gbcam.h"
uint8_t temp=0, counter;
int main(void)
{
/* Deaktivieren des JTAG-Interfaces */
MCUCSR = (1<<JTD);
MCUCSR = (1<<JTD);
/* Initialisieren des UART */
uart_init(UART_BAUD_SELECT(2400, 1000000));
/* Initialisieren des TWI */
TWI_init(0xFD);
/* Initialisieren von PortA */
DDRA = 0xFF;
PORTA = 0x0;
/* Initialisieren von PortB */
DDRB = 0xF;
DDRB |= 0x12;
/* Initialisieren von PortD */
DDRD |= 0xC4;
DDRD &= ~0x8;
PORTB |= (1<<WE);
/* Interrupts global aktivieren */
SREG |= 1<<7; //sei();
/* gbcam resetten */
RESET_PORT &= ~(1<<RESET_PIN);
XCK_PORT |= (1<<XCK_PIN);
RESET_PORT |= (1<<RESET_PIN);
XCK_PORT &= ~(1<<XCK_PIN);
/* gbcam-Register beschreiben */
gbcam_write(0x0, 0x80);
gbcam_write(0x1, 0x04);
gbcam_write(0x2, 0x00);
gbcam_write(0x3, 0x15);
gbcam_write(0x4, 0x01);
gbcam_write(0x5, 0x00);
gbcam_write(0x6, 0x01);
gbcam_write(0x7, 0x04);
/* Bild machen... */
START_PORT |= (1<<START_PIN);
pos_imp();
START_PORT &= ~(1<<START_PIN);
/* ...und warten, bis Bild fertig ist */
while(!(READ_PORT & (1<<READ_PIN)))
pos_imp();
/* ADC konfigurieren */
uint8_t u;
u = ADC_read(0x48, 0x41);
/* Pixelwerte lesen und in SRAM speichern */
uint16_t counter=0;
for(counter = 0; counter < 16384; counter++) {
pos_imp();
sram_write_byte(counter, TWI_readbyte());
}
/* TWI_Verbindung beenden */
TWI_stop();
/* Pixelwerte aus Speicher lesen und an PC senden */
for(counter = 0; counter < (16384); counter++) {
u = sram_read_byte((counter));
uart_putc(u);
}
while(1);
}
/* Funktion zum Initialisieren und Lesen des ADCs */
uint8_t ADC_read(uint8_t addresse, uint8_t control)
{
uint8_t temp;
TWI_start((addresse << 1) | SEND);
TWI_sendbyte(control);
TWI_start((addresse << 1) | READ);
temp = TWI_readbyte();
temp = TWI_readbyte();
return temp;
}
/* Funktion zum Beschreiben der Kameraregister */
void gbcam_write(uint8_t addr, uint8_t wert)
{
uint8_t temp;
for(temp=3; temp > 0; temp--) {
if((addr & (1<<(temp-1))) == (1<<(temp-1))) SIN_PORT |= (1<<SIN_PIN);
else SIN_PORT &= ~(1<<SIN_PIN);
pos_imp();
}
for(temp=8; temp > 1; temp--) {
if((wert & (1<<(temp-1))) == (1<<(temp-1))) SIN_PORT |= (1<<SIN_PIN);
else SIN_PORT &= ~(1<<SIN_PIN);
pos_imp();
}
if((wert & (1<<0)) == (1<<0)) SIN_PORT |= (1<<SIN_PIN);
else SIN_PORT &= ~(1<<SIN_PIN);
XCK_PORT |= (1<<XCK_PIN);
delay(3);
LOAD_PORT |= (1<<LOAD_PIN);
delay(3);
XCK_PORT &= ~(1<<XCK_PIN);
LOAD_PORT &= ~(1<<LOAD_PIN);
}
/* Erzeugen eines positiven Impulses am Taktpin */
void pos_imp(void)
{
XCK_PORT |= (1<<XCK_PIN);
delay(3);
XCK_PORT &= ~(1<<XCK_PIN);
}
/* Verzögerungsfunktion, Parameter bezieht sich nur auf Anzahl der auszuführenden nops */
void delay(uint8_t time)
{
uint8_t temp;
for(temp = 0; temp < (time + 1); temp++)
asm("nop");
}
ich verwende ziemlich oft kurze Pausen(->delay() ), ob man die aber benötigt, weiß ich nicht
pebisoft
24.05.2005, 13:51
kondensatoren, die die vorgegebene toleranz , die der hersteller vorgibt auch einhalten. und das ist nicht immer der fall, condensatoren kann man nicht so einfach mit einem messgerät prüfen wie einen widerstand.
mfg pebisoft
pebisoft
24.05.2005, 14:05
das programm hast du aber sauber geschrieben.
vielen dank das du es reingestellt hast.
wie funktioniert das eigentlich mit dem sram, welches hast du. packst du da alle 16kbyte rein. das mit dem sram ausserhalb des avr habe ich noch nicht in den griff bekommen.
mfg pebisoft
das programm hast du aber sauber geschrieben.
danke
als sram verwende ich das 62256-80 von Reichelt, das hat eine Speicherkapazität von 32kByte
da kommen alle 16kByte an Pixeldaten rein, ist vom programmieren her einfacher, außerdem hat der ATMega16 gerade mal 1kByte sram
wie das mit dem sram funktioniert, steht ziemlich genau im Datenblatt, außerdem findet man dazu auch einiges im Internet, ich kann meine Routinen aber gerne mal aufbereiten und hier reinstellen
du musst die Addresse(bei 32kByte 15 Bit)(da hier ziemlich viele Pins am µC benötigt werden, bietet sich die Verwendung von Latches an) an den Ram anlegen und dann, je nachdem, ob du schreiben oder lesen willst, die Steuerbits entsprechend setzen und beim schreiben vorher die Daten anlegen oder beim lesen die Daten in den µC einlesen
den Code poste ich demnächst mal
pebisoft
24.05.2005, 16:19
danke , das du den code mal posten tust.
da ist dies bestimmt auch drin: sram_write_byte(counter, TWI_readbyte());
mfg pebisoft
hier der Code aus TWI.h:
#ifndef TWI_H
#define TWI_H
#include <avr/io.h>
#include <stdint.h>
#define SEND 0
#define READ 1
void TWI_init(uint8_t);
uint8_t TWI_start(uint8_t);
void TWI_sendbyte(uint8_t);
uint8_t TWI_readbyte(void);
void TWI_stop(void);
#endif
TWI.c
#include "TWI.h"
/* TWI initialisieren */
void TWI_init(uint8_t ownaddr)
{
TWAR = ownaddr;
TWSR &= 0xFC;
TWBR = 0x0;
}
/* Start und Slaveaddresse senden */
uint8_t TWI_start(uint8_t ndevaddr)
{
TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);
while(!(TWCR & (1<<TWINT)));
TWDR = ndevaddr;
TWCR = (1<<TWINT) | (1<<TWEN);
while(!(TWCR & (1<<TWINT)));
}
/* Byte senden */
void TWI_sendbyte(uint8_t nbyte)
{
TWDR = nbyte;
TWCR = (1<<TWINT) | (1<<TWEN);
while(!(TWCR & (1<<TWINT)));
}
/* Byte lesen */
uint8_t TWI_readbyte(void)
{
TWCR |= (1<<TWINT) | (1<<TWEA);
while(!(TWCR & (1<<TWINT)));
return TWDR;
}
/* Stop senden */
void TWI_stop(void)
{
TWCR = (1<<TWINT) | (1<<TWSTO) | (1<<TWEN);
}
sram.h
#ifndef SRAM_H
#define SRAM_H
#include <inttypes.h>
#include <avr/io.h>
#define WE_PIN 0 // WriteEnable
#define WE_PORT PORTB
#define CS_PIN 2 // ChipSelect
#define CS_PORT PORTB
#define LE_PIN 3 // LatchEnable
#define LE_PORT PORTB
#define ADDR PORTA // Addressport
void sram_write_byte(uint16_t, uint8_t);
uint8_t sram_read_byte(uint16_t);
void Latch(uint8_t);
#endif
sram.c
#include "sram.h"
/* Byte in sram speichern */
void sram_write_byte(uint16_t address, uint8_t data)
{
/* Addresse anlegen */
Latch(address & 0x00FF);
ADDR = ((address & 0xFF00) >> 8);
/* Byte anlegen */
DDRC |= 0xFC;
DDRD |= 0x30;
PORTC = (data & 0xFC);
PORTD &= ~0x30;
PORTD |= ((data<<4) & 0x30);
/* Byte speichern */
WE_PORT &= ~(1<<WE_PIN);
delay(2);
WE_PORT |= (1<<WE_PIN);
}
/* Byte aus sram lesen */
uint8_t sram_read_byte(uint16_t address)
{
/* Addresse anlegen */
Latch(address & 0x00FF);
ADDR = ((address & 0xFF00) >> 8);
/* Byte lesen und zurückgeben */
DDRC = 0x0;
DDRD &= ~0x30;
delay(2);
return ((PINC & 0xFC) | ((PIND & 0x30)>>4));
}
void Latch(uint8_t wert)
{
ADDR = wert;
LE_PORT |= (1<<LE_PIN);
delay(2);
LE_PORT &= ~(1<<LE_PIN);
}
der Code zum Ansteuern des sram sieht ein wenig komisch aus, weil ich keinen freien Port mehr für die Daten übrig hatte, so habe ich 6Pins vom PortC und 2 Pins vom PortD verwendet, was das ganze komplizierter macht
da ist dies bestimmt auch drin: sram_write_byte(counter, TWI_readbyte());
ja, das wirst du auch finden, aber es erklärt sich doch von fast selbst: es wird eine Funktion namens sram_write_byte aufgerufen, die ein Byte in den sram schreibt, als Argumente gibts einmal eins vom Typ uint16_t, was die Addresse im Ram sein wird und einen 8 Bit-Wert, in dem die Daten stehen
pebisoft
24.05.2005, 19:29
der at90s8515 müsste doch zum ansteuern gehen. er hat die pins a0-a15 oder???.
mfg pebisoft
dann müsste er auch ein externes Speicherinterface haben, womit du externen sram wie internes verwenden kannst
allerdings, wenn es auf die Geschwindigkeit nicht ganz so sehr ankommt, kann man den sram auch an jeden AVR anschließen(so hab ich das auch gemacht)
pebisoft
25.05.2005, 10:48
welche pins vom sram schliest du wo am at90s8515 an und welche brauchen nicht angeschlossen werden.
mfg oebisoft
DerInder
25.05.2005, 12:23
Hallo,
hier mal der Schaltplan von Daniel Herrington (ist leider nicht mehr im Netz), der funzt bei mir mit einen anderen AD-Wandler einwandfrei.
@pebisoft das Programm dafür haste ja schon ;)
Öhm... das ganze wurde auch schon erfolgreich in Bascom gelöst von Mr. Nobody oder so...
Gruß, Trabukh
kondensatoren, die die vorgegebene toleranz , die der hersteller vorgibt auch einhalten. und das ist nicht immer der fall, condensatoren kann man nicht so einfach mit einem messgerät prüfen wie einen widerstand.
mfg pebisoft
Hallo Pebisoft
Also ich hatte noch nie Probleme mit einer Pegelanpassung bei dem Max232 aufgrund von Fertigungstoleranzen bei Kondensatoren.
Und das mit dem Messen stimmt eigentlich auch nicht.
Du kannst mit einem normalen Wiederstandsmeßgerät nachmessen ob der Kondensator noch brauchbar ist (ist der C hochomig genug ? ).
Außerdem besitzen die meißten Multimeter mittlerweile auch ein Kapazitätsmeßgerät. Da wird dann zb mit einer bekannten Induktivität ein Schwingkreis gebildet und die Frequenz nachgemessen, ...
Mittlerweile bin ich auf den Max202 umgestiegen, der braucht nur mehr 100nF C. Und auch mit dem habe ich noch nie Probleme gehabt.
Und das noch dazu wo ich einen Nachbau verwende (HIN202EBN) der viel billiger ist.
LG
Rubi
Ich bin im Moment dabei eine Materialliste zu erstellen wobei ich noch etwas Hilfe brauche da ich zur zeit noch nicht all zu fiel über den ATMega weiss.
Materialliste:
ATMega16-16
ADC: PCF8591
SRAM: 62256-80
?-RS232: Max232
?-Quarze und dazugehörige Kondensatoren
?-Sonstige Teile die zum betrieb notwendig sind.
Und jede menge Fassungen, Spannungsregler, Kabel,...
Zudem suche ich noch einen geeigneten Shop der in die Schweiz liefert und nicht zu teuer ist. Musste feststellen das Distrelec fast vier mal Teurer ist als Reichelt. Kennt jemand einen Shop der meinen Anforderungen entspricht? Reichelt liefert erst ab 150€ in die Schweiz.
Ist der Grundaufbau auf dem Bild korrekt? Frage ich nur weil ich noch nie mit einem ATMega gearbeitet habe. Die restlichen Teile anzuschliessen ist dann kein Problem mehr.
pebisoft
25.05.2005, 20:16
hallo rubi, herzlichen glückwunsch...........
es können aber nicht alle so schlau nachmessen wie du schilderst..........
oder kannst du einen laien klar machen wie 5% toleranzunterschied von 0,01 us gemessen werden kann und wie gross dazu der schwingkreis sein muss.
mfg pebisoft
hallo rubi, herzlichen glückwunsch...........
es können aber nicht alle so schlau nachmessen wie du schilderst..........
oder kannst du einen laien klar machen wie 5% toleranzunterschied von 0,01 us gemessen werden kann und wie gross dazu der schwingkreis sein muss.
mfg pebisoft
Hallo Pebisoft
Ich möchte hier mal behaupten, das dem MAX232 egal ist, ob man jetzt einen 1uF, 4,7uf oder 10uF C anschließt, er wird ohne Problem funktionieren.
Aber ich, möchte eigentlich nicht mit Dir streiten.
Habe das nur erwähnt, damit man nicht einen Fehler an der falschen Stelle vermutet und ich schon dutzende Max232 verwendet habe und nicht einer ein Problem mit Kapazitäten hatte.
Habe einmal sogar uralte 1uF C genommen, die sicher weit von ihrem soll Wert entfernt waren und dennoch hat alles gefunzt.
Glaubs mir bitte oder probier es einmal aus, dieser IC ist wirklich absolut unkritisch was die Lade C betrifft.
LG
Rubi
@Z80
So auf den ersten Blick schaut das gut aus.
Lediglich AVCC gehört noch an VCC und AGround an Masse.
Sonst kann ich im Moment nichts finden, aber da gibt es hier
sicher noch erfahrenere Mitglieder die Dir vielleicht mehr dazu sagen können.
Die Programmerschaltung, würde ich z.B. nicht verwenden, wenn Du da einen Fehler machst ist der Printerport hinüber.Da verwendet man meißtens einen IC dazwischen, der eventuelle Fehler abblockt.
LG
Rubi
Das Bild hab ich aus dem i-net. Frage nur weil für mich ATMega noch neuland ist. Das material könnte schon heute hier sein, doch sind mir 35€ für die Schaltung noch zu viel. Suche deswegen noch einen shop wie z.b. Reichelt.
Hallo Z80
Meine AVRs kaufe ich meißtens bei elektro-nix.
http://www.elektro-nix.de/
Schau mal ob du sie dort günstiger bekommst.
35 € für alles ist wirklich nicht gerade günstig.
LG
Rubi
für den Betrieb von sram am ATMega16 würde ich noch die Verwendung von Latches(zB 74HC573) empfehlen, ansonsten braucht man sehr viele(3 ganze Ports(kommt zwar auf die Größe des srams an, bei 32k bleibt ein Pin noch frei) + 2 Pins) Pins am µC nur zum Ansteuern des sram, mit Latches nur noch um die 13 Pins
Hi Z80
Wie Pascal schon gesagt hat, Latches solltest Du schon verwenden.
Es gibt von Kijon eine wirklich tolle Platine für die Gameboy Kamera,
da ist das alles schon drauf.
Mega162,Sram,Latches,Inverter,RS232,RS485, ...
Ich habe mir eine Platine nach seiner Vorlage geätzt und baue das Teil wahrscheinlich am Wochenende.
Hoffentlich kommt meine GBCam bis dahin an.
LG
Rubi
Da hat nebenbei noch jemand ein Board für die Cam Konstruiert...
Hallo Z80
Habe dieses Board am Wochenende nachgebaut und bis jetzt schaut alles ganz gut aus, bis auf das ich die RS232 nicht zu laufen bekomme.
Der AtMega162 ist da sehr eigenartig.
Den Code vom Mega16 auf Mega128 zu portieren, war z.B. eine Arbeit von 10 min. , am Mega162 bin ich gestern ein paar Stunden gesessen und über die RS232 ist dennoch immer nur Müll gekommen.
Am Board kann es nicht liegen, da beim Stk500 auch nur Müll kommt wenn ich den AVR dort reinstecke.
Hat von euch schon jemand das Kijon Board aufgebaut ?
Wie sind eure Erfahrungen ?
LG
Rubi
Hallo
Das Problem mit RS232 habe ich hinbekommen, war ein Oszillator Problem.
Jetzt bin ich halt auf den internen 8 Mhz Oszillator umgestiegen.
Leider will der Quarz auf meinem Board überhaupt nicht mehr schwingen,...
Woran das liegt ist mir absolut rätselhaft, Kijon kann ich leider auch nicht erreichen, der hätte vielleicht eine Idee, hat ja auch das Board entworfen.
Um nicht total aufzusitzen, muß im Moment halt der interne Oszilator herhalten, wie schon gesagt.
LG
Rubi
Moin,
hab dir ne Mail geschrieben ...
MfG Kjion
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.