Gast
#166516
Hallo, ich möchte ein externes SRAM an einen ATmega16 anschließen. Der elektronische Anschluss sieht wie folgt aus: PortB des Mega16 ist mit 2 latches und den IO-Ports des SRAMs verbunden. Ein Latch liegt auf Adressleitung 0-7 das andere auf 8-15 des SRAMs. Den CS1 und CS2 vom RAM habe ich direkt auf Vcc bzw. GND gelegt damit das RAM immer "an" ist. WE/ und OE/ liegen an PortD 2 und 3. Die LE Leitungen des LAtches liegen auf PortD 4 und 5. Die Routine die ich geschieben habe angehängt. Ich habe mit dem Scope geschaut und die Adresse liegt richtig an den Adressleitungen an. Das Problem ist, dass ich keine Daten aus dem RAM lesen kann. Dummerweise kann ich nicht überprüfen, ob die Daten richtig geschrieben werden. Ich wäre sehr Dankbar für jeden hilfreichen Tip. Schöne Grüße Jan-Erik SRAM.h: //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //+++++++++++++++++++++ SRAM ++++++++++++++++++++++++++ //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #define OUTEN 2 // Output Enable SDRAM #define WREN 3 // Write Enable SDRAM #define ADDRLOW 4 // Latch Enable for low Address #define ADDRHIGH 5 // Latch Enable for high Address #define DATA_PORT PORTB #define DATA_PIN PINB #define CTRL_PORT PORTD void write_address(unsigned int address); void Data_to_RAM(unsigned int address, unsigned char data); unsigned char Data_from_RAM(unsigned int address);