www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Bascom u. SPI und Soft-SPI


Autor: Mikro Avr (mikroavr)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte gern den Hard SPI (Ansteuerung LCD Nokia 3310) in ein Soft
spi umwandlen, damit ich den Port B frei habe für eine MMC Karte.

So jetzt habe ich folgendes gemacht:

$regfile = "m16def.dat"
$crystal = 8000000

Config Portb = Output                'Nokia 3310

Config Porta = Output
'communication port to LCD
Config Spi = Soft , Din = Pinb.6 , Dout = Portb.5 , Ss = None , Clock =
Portb.7
'Config Spi = Hard , Data Order = Msb , Master = Yes , Polarity = Low
, Phase = 0 , Clockrate = 4

' Config Spi = Soft , Din = Pina.6 , Dout = Porta.5 , Ss = None ,
Clock = Porta.7

'************************** Global vars declarations
****************************
Dim Txloc As Byte , Tyloc As Byte , Yy As Byte , Xx As Byte , Tout As
Byte
Dim Ee_data As Byte , Menu_ptr As Byte , Scr_string As String * 14 , X
As Byte
'*********************************** Aliases
************************************
Lcd_cmd Alias Porta.0                                'Low for cmd
mode
Lcd_cs Alias Porta.2
Lcd_res Alias Porta.1                                  'Low for reset


<Schnipp Ende>

Wenn ich SPI -> Hard Einstelle, arbeitet das Nokia 3310
Wenn ich SPI Soft auf Port B lege ( Hardwaremässig gleiche PINS am µC
), arbeitet das Nokia 3310
Wenn ich SPI Soft auf Port A lege -> geht nichts!

LCD_cmd,LCd_cs und LCD_res ist entweder Port A oder Port B welches ich
das Display anschliesse, werden enstsprechend angepasst.

Wieso kann geht kein Soft SPI, die PINS kann man doch frei wählen?
Kann mir einer was dazu sagen ?

Thx

Autor: Christian Fasthuber (fasti)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Also ich kenn mich in Bascom net aus aber kann man da wirklich einfach
durch angeben des Typs, sprich Hard oder Soft auswählen und Bascom
implementiert das gesammte SPI selbst?
Und wieso schliesst du nicht MMC und LCD an das Hardware-SPI an? Dann
brauchst nur noch einen zusätzlichen Pin, der als Chipselect dient und
den gerade benötigten Slave auswählt.

mfg

Fasti

Autor: Mikro Avr (mikroavr)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das kommt später , ich fange erst an in SPI einzuarbeiten, deswegen
etwas umständlich, aber ich bin am lernen.

Die HARD SPI ist ja am PORT B ( ATMEGA 16L ) MOSI,SCK,MISO,/SS
SOFT SPI ist frei wählbar wollte von B nach A wechseln.

SOFT SPI auf PORT B geht ja

Warum klappt SOFt SPI dann nicht an Port A?

Autor: Mikro Avr (mikroavr)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat keiner ne Idee woran das liegen könnte?

Autor: Togger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Mikro,
bei mir ist es genau andersrum: "Soft" klappt, "Hard" nicht.

Soft Spi habe ich auf Port b und c erfolgreich getestet (MMC Karte).

Hier der Programmauszug:

Config Spi = Soft , Din = Pinc.3 , Dout = Portc.4 , Ss = Portc.5 ,
Clock = Portc.2       ' AT8
Ddrc = &B11110111
Cs Alias Portc.5
Clk Alias Portc.2
Miso Alias Pinc.3                                         'inp
Mosi Alias Portc.4                                        'out

Das klappt leider nicht:
Config Spi = Hard , Data Order = Msb , Master = Yes , Polarity = High ,
Phase = 1 , Clockrate = 4 , Noss = 1

Port A gibt es nicht auf allen AVRs. Hast du das überprüft?
Und beim 16er liegen auf PortA die Analogeingänge.
Kann sein, dass es da Konflikte gibt.
Probier doch mal zuätzlich für jeden Pin Input oder Output zu
definieren.
Benutzt du nämlich irgendwo im Programm den AD Wandler, dann kann das
nicht gehen.

lg Ralf

Autor: Mikro Avr (mikroavr)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Also wenn ich PortC oder PortD mit Softspi nehme gehts auch nicht.

Könntest du mir die MMC Programm geben, dann hätte ich den direkten
vergleich und weniger Fehlerquellen.

Verstehen kann ich das nicht ich arbeite mit Version 1.11.74

Anbei das Programm welches für Nokia 3310 über Hard SPI geht,
vielleicht kannst du für deine MMC karte was dazu finden.

mfg
Dirk

Autor: Togger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Dirk,
ja kann ich machen, hinterlasse mir doch bitte deine EMailAddr oder
schreib mich über EMail an.

lg Ralf

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.