026
02.05.2025, 10:37 Uhr
Bert
|
Als armer Student habe ich mir Bauteile von Schrottplatinen mit dem Heißluftfön aus dem Baumarkt gefarmt. Großen Pappkarton drunter und gib ihm. Riecht nicht gut und die Platinen sind danach definitiv Schrott.
Heute würde ich auch die intelligente Lösung mit einem (5V-) Arduino versuchen:
Quellcode: | // ino ungetestet, aber auch ohne KI erstellt! const uint8_t addr_lines = 10; const uint8_t data_lines = 8; const uint8_t addr_pins[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // anpassen! const uint8_t data_pins[] = { A1, A2, A3, A4, A5, A6, A7, A8}; // ebenfalls anpassen!
void setup{} { Serial.begin( 115200); while( !Serial) {}; // wait for connection uint8_t index; for( index = 0; index < data_lines; index++) { pinMode( data_pins[ index], INPUT); } for( index = 0; index < addr_lines; index++) { pinMode( addr_pins[ index], OUTPUT); } }
void set_addr_pin( const uint8_t pin, const uint8_t value) { digitalWrite( addr_pins[ pin], value); }
uint8_t get_data_pin( const uint8_t pin) { return( digitalRead( data_pins[ pin])); }
void set_addr( const uint16_t addr) { for( index = 0; index < addr_lines; index++) { if( bit_is_set( addr, index)) { set_addr_pin( index, 1); } else { set_addr_pin( index, 0); } } }
uint8_t read_eprom( uint16_t addr) { uint8_t index; uint8_t value;
set_addr( addr); value = 0;
for( index = 0; index < data_lines; index++) { value = value << 1; if( get_data_pin( index)) { value++; } } return( value); }
void loop() { uint16_t addr; for( addr = 0; addr < 1024; addr++) { Serial.print( addr, HEX); Serial.print( ": "); Serial.print( read_eprom( addr), HEX); Serial.println(); } }
|
Man kann ja erstmal vorsichtig mit Strombegrenzung die Spannung hochdrehen. Viel Logik ist ja nicht drumrum, die kaputt sein kann. -- Viele Grüße, Bert |