• 20.04.2024, 04:50
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

Lieber Besucher, herzlich willkommen bei: Aqua Computer Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Mikrocontroller Problem (Bilder S.2)

Freitag, 5. September 2003, 18:50

Morgen Jungs!

Wir haben: Atmega8 + ISP + Ein Problem.

Beim Flashen wird der Controller normal erkannt. Flashen funktionert auch, Auslesen geht auch, nur macht der Controller ned was er soll, anstatt Leds leuchten zu lassen macht er gar nigs. ??? ???

Woran könnte des liegen?

Re: Mikrocontroller Problem

Freitag, 5. September 2003, 19:04

Hellseherische fähigkeiten haben wir noch nicht, wie soll jemand dir helfen wenn du deinen Code nicht Postest?

MfG
Sebastian

Re: Mikrocontroller Problem

Freitag, 5. September 2003, 19:14

Quellcode

1
2
3
4
5
6
.include "4433def.inc"
         ldi r16, 0xFF       
         out DDRB, r16      
         ldi r16, 0b11111100 
         out PORTB, r16      
ende:    rjmp ende


Wir haben verschiedene Pin & PortKombinationen ausprobiert.

Re: Mikrocontroller Problem

Freitag, 5. September 2003, 19:57

du hast den Stack Pointer nicht gesetzet.
warum includest du die datei für den 4433 und nicht für den mega8 wenn du den mega8 als CPU verwendest?

Sebastian

Re: Mikrocontroller Problem

Freitag, 5. September 2003, 20:09

Ich dachte der Stackpointer wird nur dann benötigt, wenn man Unterroutinen und Interrupts verwendet ?


-RedHead

Re: Mikrocontroller Problem

Freitag, 5. September 2003, 20:29

@RedHead
das ist richtig, aber wenn man das nicht schon am anfang mact vergisst man es später auch wenn man die erste call routine schreibt .. ;D
@hurra
gib doch mal bitte als test statt DDRB und PORTB die entspechende Hex adresse aus dem Datenblat ein also $xx anstatt DDRB usw.

Sebastian

Re: Mikrocontroller Problem

Freitag, 5. September 2003, 20:32

Jo, erstmal Danke für die Infos.

Also dann versuche ich als erstes Mal, anstatt der 4433def.inc die m8def.inc zu verwenden. Wenn das nicht klappt, werde ich den Tipp von Sebastian mal probiern. Erfolgsvermeldungen gibts erst etwas später, ich hab den Controller zZ nicht daheim

Danke

Cu Hurra

Re: Mikrocontroller Problem

Samstag, 6. September 2003, 14:28

Zitat von »Sebastian«


@hurra
gib doch mal bitte als test statt DDRB und PORTB die entspechende Hex adresse aus dem Datenblat ein also $xx anstatt DDRB usw.

Sebastian


So erstmal wurde die passende m8def.inc ohne Erfolg verwendet. Auch das Ersetzen durch die Adresen brachte nichts ein. ??? ???

Woran könnte es noch liegen? Ich hab nämlich nicht wirklich viel Ahnung von der Materie.

Danke

Cu Hurra

Re: Mikrocontroller Problem

Samstag, 6. September 2003, 14:42

Hast du veilleicht die Fuse Bits im Programmer verändert oer falsch gesetzt? Da muss man sehr genau nach Datenblatt vorgehen und die sind bei jedem Controller anders.

Hallo, so sieht mein Gerüst in ASM dür einen 8535 aus,
1. IRQ Vektoren mit den dazugegörigen IRQ Routinen am ende.
der erser IRQ ist immer die Reset anspungadresse..
2. Port definitionen EIN/AUsgang
3. Main Loop

Probiere deine SW mal bitte im AVR Studio mit der Simulation durch ob es auch das tut was du dir erhoffst.
teste mal das:

.include "m8def.inc"
rjmp Start   ;ist der Reset Vektor:


Start:

; **** Stack Pointer Setup Code ****
ldi r16,high(RAMEND)      ; Stack Pointer Setup
out SPH,r16            ; Stack Pointer High Byte
ldi r16,low(RAMEND)      ; Stack Pointer Setup
out SPL,r16            ; Stack Pointer Low Byte


        ldi r16, 0xFF        
        out DDRB, r16      
        ldi r16, 0b11111100  
        out PORTB, r16      


ende:    rjmp ende






.include "8535def.inc"      ;definitonsdatei für AT90S9535 einbinden
;interupt Vector Table
rjmp Init            ;Reset Handler & Watchdog Reset
rjmp INT_0            ;Externer Reset eingang 0
rjmp INT_1            ;Externer Reset eingang 1
rjmp Timer2_Comp      ;Timer 2 Compare Match
rjmp Timer2_OVF            ;Timer 2 Overflow
rjmp Timer1_Capt      ;Timer 1 Capture Event
rjmp Timer1_CompA      ;Timer 1 Compare Match A
rjmp Timer1_CompB      ;Timer 1 Compare Match B
rjmp Timer1_OVF            ;Timer 1 Overflow
rjmp Timer0_OVF            ;Timer 0 Overflow
rjmp Spi_Comp            ;Spi Transfer Complete
rjmp UartRX_Comp      ;Uart RX Transfer Complete
rjmp Uart_DRE            ;Data Register Emty
rjmp UartTX_Comp      ;Uart TX Transfer Complete
rjmp ADC_Comp            ;Aanlog Digtal Conversion Comlete
rjmp EE_RDY            ;EEprom Ready
rjmp Ana_Compa            ;Analog Compeerator




Init:
;Initialisierung des stack Pointers
ldi r16, $02            ; Stack Pointer setup
out SPH,r16            ; Stack Pointer High Byte
ldi r16, $5F            ; Stack Pointer setup
out SPL,r16            ; Stack Pointer Low Byte

;Initialisierung der PORTS A-D
ldi r16,$FF            ;Load FF(hex) into the register file r0
out DDRA,r16            ;set PORT A as output im data direction register
ldi r16,$FF
out PORTA,r16            ;schalte alle Leds aus

ldi r16,$00            ;Load 00(hex) into the register file r0
out DDRB,r16            ;PORT B as input Direction Register
out PINB,r16            ;schreibe ins eingangsregister $00

ldi r16,$FF            ;Load FF(hex) into the register file r0
out DDRC,r16            ;set PORT C as output im data direction register
ldi r16,$00
out PORTC,r16            

ldi r16,$00            ;Load FF(hex) into the register file r0
out DDRD,r16            ;set PORT D as input im data direction register
ldi r16,$00
out PORTD,r16            

;-----------------------------------------------------------------------------------------------------------------------------
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
;*****************************************************************************************************************************
;ab hier beginnt das eigentliche programm das aber auch mit eigener initroutine sein kann

.def            temp0 = r16
.def            temp1 = r17


Loop:      sbis PINB,0
     sbi PORTA,0
     sbic PINB,0
     cbi PORTA,$00
     rjmp Loop


;-----------------------------------------------------------------------------------------------------------------------------
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
;***********************INTERUPTROUTINEN**************************************************************************************


INT_0:            reti            ;Externer Reset eingang 0

INT_1:            reti            ;Externer Reset eingang 1

Timer2_Comp:      reti            ;Timer 2 Compare Match

Timer2_OVF:      reti            ;Timer 2 Overflow

Timer1_Capt:      reti            ;Timer 1 Capture Event

Timer1_CompA:      reti            ;Timer 1 Compare Match A

Timer1_CompB:      reti            ;Timer 1 Compare Match B

Timer1_OVF:      reti            ;Timer 1 Overflow

Timer0_OVF:      reti            ;Timer 0 Overflow

Spi_Comp:      reti            ;Spi Transfer Complete

UartRX_Comp:      reti            ;Uart RX Transfer Complete

Uart_DRE:      reti            ;Data Register Emty

UartTX_Comp:      reti            ;Uart TX Transfer Complete

ADC_Comp:      reti            ;Aanlog Digtal Conversion Comlete

EE_RDY:            reti            ;EEprom Ready

Ana_Compa:      reti            ;Analog Compeerator

Re: Mikrocontroller Problem

Samstag, 6. September 2003, 20:10

Öhm jo, danke für die Mühe
Ich versteh zwar nicht richtig viel davon.

So ich hab jetzt mal den Code im Studio simuliert

Quellcode

1
2
3
4
5
6
7
8
9
.include "m8def.inc"
ldi r16, 0xFF
out DDRB, r16        

ldi r16,0b11111100
out PORTB, r16 
loop: 

rjmp loop    

Ergebniss: Funktioniert.

Dann das Pogramm auf den Controller & nigs geht. Wenn ich den Controller dann wieder Auslese bekomme ich auch die richtigen Werte zurück, d.h keine Fehler beim Übertragen in den Controller.

Fusebits:


Externes-4 Mhz-Quarz


Später gibts auch noch Photos.


Cu Danke an Alle

Cu Hurra

Re: Mikrocontroller Problem

Samstag, 6. September 2003, 20:13

Dann haste wohl in Deiner Hardware irgendnen Fehler drin. Haste die mal kontrolliert ? Was haste denn für Hardware ? Selbst gebaut ?


-RedHead

Re: Mikrocontroller Problem

Samstag, 6. September 2003, 20:16

Ja, alles selbst gebaut. Hm, wenn der Controller aber erkannt wird & auch das Flashen mit yaap einwanfrei geht?


Cu Hurra

Re: Mikrocontroller Problem

Samstag, 6. September 2003, 21:18

nimm mal einen anderen HW Port und messe dann mal mit einem Messgerät nach ob das Richtige rauskommt,.. .
Ich gebe immer $AA raus das ist 0b101010...

Hast du bei der HW daran gedacht ein Pull Up Widerstand an den Reset eingang zu machen und dann noch ein C nach masse? Sonst gehts nicht.

Sebastian

Re: Mikrocontroller Problem

Sonntag, 7. September 2003, 14:52

So Schaltplan ist dieser:


Der Code:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
.include "m8def.inc"
rjmp main
 
main:
ldi r16,$AA
ldi r17,$AA
ldi r18,$AA
out DDRB, r16
out DDRC, r17
out DDRD, r18
loop:
rjmp loop ;


& Ich messe einfach mit dem Multimeter die Spannung zwischen 5V & den einzelenen Ports, ode muss ich da noch was dazwischenschalten?

Re: Mikrocontroller Problem

Sonntag, 7. September 2003, 15:06

naja, geh mal mit der schwarzen messspitze alsso masse an die 0V und mit der Roten Messspitze gehe an die Ports, eigentlich solltest du da dann 5V oder =V je nach zustand messen. Und messe am besten ohne jegliche aussenbeschaltung, ... da kannst du dir dan sicher sein das deine LEDs keinen Kurzen machen.

Re: Mikrocontroller Problem

Sonntag, 7. September 2003, 15:13

Nigs. Nur an einem Pin von PortD liegen 5V an, die liegen aber immer an, d.h es ist egal ob ich den Pin laut Programm schalte oder nicht. ??? ???

Re: Mikrocontroller Problem

Sonntag, 7. September 2003, 15:18

ziehe mal dein Programmieradapter aus der schaltung und messe dann nochmal nach.
wie hast du die LEDs angeschlossen, ich hoffe doch LOW aktiv, damit meine ich wenn der Controller ausgang auf 0 ist leuchten die LEDs, anders geht es nicht.

Re: Mikrocontroller Problem

Sonntag, 7. September 2003, 16:14

Den Programmieradapter habe ich bisher für jeden Test rausgezogen. Ich messe, so wie du angegeben hast mit meinem Multimeter. Da ich $AA ausgebe, muss ich doch beim Durchmessen der einzelnen Pins mal 5V messen können.

Re: Mikrocontroller Problem

Sonntag, 7. September 2003, 17:32

eigentlich schon,...
hast du mal meinen code ausprobiert?
.. so langsam denke ich das es doch ein HW fehler ist.


Sebastian

Re: Mikrocontroller Problem

Sonntag, 7. September 2003, 17:52

So hier sind die Photos:


Die Isp-Platine von oben





Hier kann man die MikrocontrollerPlatine, angeschlossesn am Isp (schwarzes Kätschen) erkennen


Weils so schön is, nochmal


DER Controller auf der Platine


Die Unterseite der Platine






Jo, ich hoffe ihr meckert nicht zuviel rum ;)

Cu Hurra