Hallo!
Nach etlichen Stunden Frusterlebnisse:
ATmega1284 hat an seinem Hardware-SPI vier Slaves hängen:
1: Erstes EADOGM128x64 soll gemischt ca. 70-90% Testbasierend genutzt werden.
2: Zweites EADOGM128x64 soll später 100% Grafik (xy-Charts) anzeigen.
3: Ein RFM69HW FFSK-Modem
4: Eine SDHC-Karte für ein kleines AVR-DOS als Datenlogger
Wie es sich gehört haben alle SPI-Slaves eigene /CS und der SDHC-Chacht zusätzlich noch parallel vom /CS gesteuerten Bus-Schalter (PI3C3125-W14) welcher die SDCH komplett vom SPI-Bus trennt solange /CS der SDHC high bleibt.
Mit der Inbetriebnahme des ersten LCD's kamen aber die ersten Probleme:
Alles anzeigen
Führte dazu das dass LCD nicht funktionierte.
Setze ich die Config SPI (Zeile 47) unter die Config GRAPHLCD initialisiert endlich das LCD, jedoch mit konfiguration des dann folgenden Config SPI friert ds LCD ein und nimmt meine neuen Befehle mehr an.
Offenbar kollidiert die glcdEADOGM128x6.lbx mit der Config SPI, weil sie selber bereits die Hardware-SPI-Pins definiert.
Gibt es einen Trick die glcdEADOGM128x6.lib dennoch mit anderen SPI-Slaves am Hardwarebus zu stricken?
Alternativ: Wenn ich die zwei LCD's ganz ohne Lib direkt via SPI befeuere, wie bekomme ich dann die Textfonts ins obere LCD?
Jürgen
Nach etlichen Stunden Frusterlebnisse:
ATmega1284 hat an seinem Hardware-SPI vier Slaves hängen:
1: Erstes EADOGM128x64 soll gemischt ca. 70-90% Testbasierend genutzt werden.
2: Zweites EADOGM128x64 soll später 100% Grafik (xy-Charts) anzeigen.
3: Ein RFM69HW FFSK-Modem
4: Eine SDHC-Karte für ein kleines AVR-DOS als Datenlogger
Wie es sich gehört haben alle SPI-Slaves eigene /CS und der SDHC-Chacht zusätzlich noch parallel vom /CS gesteuerten Bus-Schalter (PI3C3125-W14) welcher die SDCH komplett vom SPI-Bus trennt solange /CS der SDHC high bleibt.
Mit der Inbetriebnahme des ersten LCD's kamen aber die ersten Probleme:
BASCOM-Quellcode
- $Regfile="m1284def.dat"
- $Crystal=11059200
- $hwstack=400
- $swstack=200
- $framesize=320
- $Baud=115200
- $Baud1=38400
- $LIB "I2C_TWI.LBX"
- $LIB "glcdEADOGM128x6.lbx"
- 'Eingangsdefinitionen:
- PR alias Pina.0 'RFM-Signal Payload Ready
- PS alias Pina.2 'RFM-Signal Packet Sent
- SDwp alias pinb.3 'SD-Meldung Schreibschutz aktiviert
- SDcd alias Pinb.4 'SD-Meldung Karte eingesteckt!
- S1 alias pind.4 'Taste S1
- S2 alias pind.5 'Taste S2
- S3 alias pind.6 'Taste S3
- S4 alias pind.7 'Taste S4
- 'Ausgangsdefinitionen:
- LCD1ss alias porta.4
- LCD2ss alias porta.5
- LCDa0 alias Porta.6
- LCDrst alias Porta.7
- RFMrst alias portb.0 'Reset-Signal RFM69HW
- RFMss alias portb.1 'Slave-Select RFM69HW
- SDss alias portb.2 'Slave-Select SDHC-Card
- WC10 alias portc.2 'Schreibschutz IC10
- WC11 alias portc.3 'Schreibschutz IC11
- LSP alias portc.4 'Pizo-Signalgeber
- Licht alias portc.5 'LCD-Beleichtung
- LCDrst = 1
- LCDa0 = 1
- LCD1ss = 1
- LCD2ss = 1
- RFMrst = 0
- RFMss = 1
- SDss = 1
- WC10 = 1
- WC11 = 1
- LSP = 0
- Licht = 1
- config SPI = HARD, INTERRUPT=OFF, DATA_ORDER=MSB , MASTER=Yes , POLARITY=Low , PHASE = 0 , CLOCKRATE=4 , NOSS=1
- SPIINIT
- Config GRAPHLCD = 128 * 64eadogm , Cs1 = Porta.4 , A0 = Porta.6 , SI = Portb.5 , SCLK = Portb.7 , Rst = Porta.7
Führte dazu das dass LCD nicht funktionierte.
Setze ich die Config SPI (Zeile 47) unter die Config GRAPHLCD initialisiert endlich das LCD, jedoch mit konfiguration des dann folgenden Config SPI friert ds LCD ein und nimmt meine neuen Befehle mehr an.
Offenbar kollidiert die glcdEADOGM128x6.lbx mit der Config SPI, weil sie selber bereits die Hardware-SPI-Pins definiert.
Gibt es einen Trick die glcdEADOGM128x6.lib dennoch mit anderen SPI-Slaves am Hardwarebus zu stricken?
Alternativ: Wenn ich die zwei LCD's ganz ohne Lib direkt via SPI befeuere, wie bekomme ich dann die Textfonts ins obere LCD?
Jürgen