mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Motorola HC12 und Eeprom 93C66


Autor: Rainer (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Versuche gerade mit einem HC912B32 ein 93C66 auszulesen, Code 
funktioniert soweit, aber: Im Eeprom stehen AA 55 (Hex), das Programm 
gibt 2A D5 aus.
Also 1Bit nach rechts verschoben. Hab leider keine Ahnung woran es 
liegen könnte. Vielleicht gibts ja hier einen HC12 Spezialisten.

Autor: EF (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielleicht wirst du dort fündig:

http://www.ece.utexas.edu/~valvano/

Das folgende Assembler prg stammt von dort
Hier werden zwei Schieberegister beschrieben bzw auch gelesen.
Sollte eigentlich helfen
Gruß
EF



// siehe http://eet.etec.wwu.edu/CPU12/SpiDemo_s12.txt
************************************************************
* SpiDemo - Demonstrates the use of the 68HC12 SPI by
*           interfacing with a 74HC595 and 74HC165.
*
* Controller: 68HC912B32
* Monitor: D-Bug12
*
* 3/5/98 Todd Morton
************************************************************
* Equates
************************************************************
PORTS       equ $d6
DDRS        equ $d7
DDRP        equ $57
PORTP       equ $56
PP0      equ $01
SS          equ %10000000
MOSI        equ %00100000
SCK      equ %01000000
SP0CR1      equ $d0
SP0CR2      equ $d1
SP0BR       equ $d2
SP0SR       equ $d3
SP0DR       equ $d5
SPIF        equ $80
INPUT       equ $0fe0
OUTBYTE     equ $0fe6

************************************************************
* Program
************************************************************
* Initialize SPI
*   Set SPI outputs as outputs in DDRS
*  SS pin is the latch clock for 74HC595.
*   Set for 1Mbps
*   Set PORTP bit0 for 74HC165 latch clock
*   Clear SPIF
************************************************************
      org $0800
main
      bset DDRS,SS|MOSI|SCK
      bset PORTS,SS
      bset DDRP,PP0
      bset PORTP,PP0
      movb #$5c,SP0CR1
      movb #$02,SP0BR
      ldaa SP0SR      ;clear flag
      ldaa SP0DR

************************************************************
* Main interface loop
*   A simple test loop that sends the ascii character
*   entered out to the 74HC595. It then reads a value
*   from the 74HC165 and displays it.
*   For testing connect the 74HC595 Qn's to the 74HC165 n's
*   This will cause the ascii character of the key pressed
*   be echoed.
************************************************************

next_in      jsr INPUT
      beq next_in
      jsr SpiOut
      jsr SpiIn
      pshb
      tfr sp,d
      jsr OUTBYTE
      pulb
      bra next_in

************************************************************
* SpiOut - Output routine for a 74HC595. It uses SS as the
*   latch clock.(SS is a GP output)
*   Spi Initialization: (could be done in main init if it
*  was the only setup needed)
*  SPCR = $5c ->SPI Enable,Master,CPOL:CPHA = 11
*   The data to be sent out is passed in ACCB. Result of
*   dummy read is returned in ACCB.
*   All other registers are preserved except CCR
************************************************************
SpiOut
      movb #$5c,SP0CR1
      stab SP0DR      ;Output data
wait_spiout brclr SP0SR,SPIF,wait_spiout ;Wait for shift complete
      bclr PORTS,SS    ;Transfer SR->Latch
      bset PORTS,SS
      ldab SP0DR      ;dummy read to clear SPIF
      rts

************************************************************
* SpiIn - Input routine for a 74HC165. It uses PP0 as the
*   latch clock.
*   Spi Initialization: (could be done in main init if it
*  was the only setup needed)
*  SPCR = $58 ->SPI Enable,Master,CPOL:CPHA = 10
*   The dummy data to be sent out is passed in ACCB. Input
*   value is returned in ACCB.
*   All other registers are preserved except CCR
************************************************************
SpiIn
      bclr PORTP,PP0    ;Transfer SR<-Latch
      bset PORTP,PP0
      movb #$58,SP0CR1
      stab SP0DR      ;Dummy data
wait_spiin  brclr SP0SR,SPIF,wait_spiin  ;Wait for shift complete
      ldab SP0DR
      rts

Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnelle Antwort. Hab noch Microchip Application Note 
AN993(PIC16F54 und 93Cx6) gefunden, war ganz hilfreich. Dann das CPOL 
Bit in SP0CR1 für das Einlesen gesetzt und funzt.

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.