Futura Sciences
Image de la rubrique en cours

Forum FS Generation

Précédent   Vous êtes ici : Forum FS Generation » Futura Technique » Électronique

Découvrir d'autres sujets sur ces thèmes :


Réponse
Vieux 10/12/2007, 19h01   Sujet bus I2C - Message #1
Maje
 
Date d'inscription: décembre 2007
Âge: 20
Messages: 2
bus I2C
Bonjour,
Je réalise un bus I2C en assembleur avec un microcntroôleur 80C552 vers une mémoire EEPROM 8582.
J'ai déjà codé l'emission desdonnées, mais le programme n'entre en interruption et donc n'envoie les données qu'aléatoirement. Il met parfois plusieures minutes pour cela.
Voila le programme pour plus d'infos.

Merci de votre aide.



Code:
include reg552.inc ;Positionner des bits utiles a la routine FIN_TR equ 07fh ;Donnees immediates a ecrire dans le registre S1CON ;(cas du 80C552 version 12Mhz, l'I2C fonctionnant a 100kbit/s) ENS1_NOTSTA_STO_NOTSI_AA_CR0 equ 0d5h ;genere un stop (CR0 equ 100khz) ENS1_NOTSTA_NOTSTO_NOTSI_AA_CR0 equ 0c5h ;relache le BUS et envoie acquittement ENS1_NOTSTA_STO_NOTSI_NOTAA_CR0 equ 0c1h ;relache le bus et n'envoie pas l'acquittement ENS1_STA_NOTSTO_NOTSI_AA_CR0 equ 0e5h ;relache le bus et le reprends avec un STA ;Donnees immediates generales OWNSLA equ 031h ;adresse personnelle ENSIO1 equ 0a0h ; EA+ES1 autorise l'interrupion SIO1 doit etre ecrit dans ENI0 OFFSET equ 050h ;adresse de base des routines de traitement d'interruption liees ADRESC_W equ 0a0h ;ex. adresse esclave + bit ecriture ADRESC_R equ 0a1h ;ex. adresse esclace + bit lecture FIN equ 080h ;indic de fin de message FIN1 equ 040h ;Emplacements de registres particuliers en RAM internes MTD equ 030h ;adresse de base MST/TRX/DATA MRD equ 038h ;adresse de base MST/REC/DATA SRD equ 040h ;adresse de base SLV/REC/DATA STD equ 048h ;adresse de base SLV/TRX/DATA BACKUP equ 053h ;retour de backup de NOMBOCT ;pour faire revenir de sauvegarde NUMBYTMST en cas de perte d'arbritage NOMBOCT equ 052h ;nombre d'octets a transmettre ou recevoir SLA equ 0a0h ;contient l'adresse de l'esclave et le sens de transfert (R/W) a transmettre HADD equ 050h ;octet d'adresse haute des differents traitements dont l'adresse basse ;est fournie par la valeur du registre de status S1STA DAT equ 70h ;Routine d'utilisation Code at 4100h INIT: mov p4,#00h ;!!! TEST !!! mov S1ADR,#OWNSLA ;chargement adr perso + autorisation mov sp,#0a0h ;positionnement du pointeur de pile setb p1.6 ;p1.6 niveau haut (SCL) setb p1.7 ;p1.7 niveau haut (SDA) mov HADD,#OFFSET orl IEN0,#ENSIO1 ;autorisation interruption SIO1 mov S1CON,#ENS1_NOTSTA_NOTSTO_NOTSI_AA_CR0 ;initialisation mode maitre ;caracteres a envoyer mov r1,#DAT mov @r1,#0000h inc r1 mov @r1,#0041h inc r1 mov @r1,#0042h mov p4,#03h ;!!! TEST !!! ever : mov SLA,#ADRESC_W ;W=ecriture mov NOMBOCT,#3 acall trans acall boucle ici: mov p4,#00h lcall 1212h ;routine de départ de transmission "maitre" trans: mov FIN_TR,#000h ;mise a zero indic fin de message mov S1CON,#ENS1_STA_NOTSTO_NOTSI_AA_CR0 ret boucle: mov a,FIN_TR jbc acc.6,etia jbc acc.7,fini mov p4,S1STA sjmp boucle etia: acall trans sjmp boucle fini: ret code at 402bh push psw push S1STA push HADD ret code at 5000h acall fct_00 pop psw reti code at 5008h acall fct_08 pop psw reti code at 5018h acall fct_18 pop psw reti code at 5020h acall fct_20 pop psw reti code at 5028h acall fct_28 pop psw reti fct_00: mov S1CON,#ENS1_NOTSTA_STO_NOTSI_AA_CR0 ;raz SI mise a 1 de STO et AA mov FIN_TR,#FIN1 mov p4,#0aah ret fct_08: ;1ere lcall 1212h mov p4,#1Fh;!!! TEST !!! mov S1DAT,SLA ;chargement de SLA+R/W ds tampon mov S1CON,#ENS1_NOTSTA_NOTSTO_NOTSI_AA_CR0 ;raz SI mov r1,#DAT ; adresse puis data 2 octets mov BACKUP,NOMBOCT ;sauvegarde valeur initiale ret fct_18: ;2eme mov S1DAT,@r1 mov S1CON,#ENS1_NOTSTA_NOTSTO_NOTSI_AA_CR0 ;raz SI et AA mov p4,#00110111b;!!! TEST !!! ret fct_20: ;Si Ack=0 mov S1CON,#ENS1_NOTSTA_STO_NOTSI_AA_CR0 ;mise a 1 STO, raz SI mov NOMBOCT, BACKUP mov FIN_TR,#FIN1 mov p4,#01h;!!! TEST !!! ret fct_28: ;3eme djnz NOMBOCT,CONTINU mov S1CON,#ENS1_NOTSTA_STO_NOTSI_AA_CR0 ;raz SI et mise a 1 de AA mov FIN_TR,#FIN ;positionnement indicateur de fin de transmission mov p4,#11101110b;!!! TEST !!! sjmp fin_28 CONTINU: inc r1 mov S1DAT,@r1 mov S1CON,#ENS1_NOTSTA_NOTSTO_NOTSI_AA_CR0 ;raz SI et AA mov p4,#11001100b;!!! TEST !!! fin_28: ret end

Dernière modification par HULK28 30/06/2008 à 09h16. Motif: Ajout des balises [CODE]...[/CODE]
Maje est déconnecté   Réponse avec citation
Alt Aujourd'hui
Publicité

Beitrag Liens sponsorisés

   
Vieux 13/12/2007, 17h47   Sujet bus I2C - Message #2
Maje
 
Date d'inscription: décembre 2007
Âge: 20
Messages: 2
Re : bus I2C
Personne n'a de solution ??? MErci de m'aider
Maje est déconnecté   Réponse avec citation
Vieux 30/06/2008, 00h28   Sujet bus I2C - Message #3
houcemgo
 
Date d'inscription: décembre 2007
Âge: 22
Messages: 7
Re : bus I2C
Salut,
Je croi qu'il faut que tu minimise autrement dit tu resume ton probleme pour qu'on puisse t'aider
houcemgo est déconnecté   Réponse avec citation
Bienvenue
Si ceci est votre première visite, vous devez vous inscrire avant de pouvoir envoyer des messages. En étant inscrit vous pourrez poster votre question, participer aux débats, joindre vos images... alors n'attendez-plus, cela vous prendra 1 minute !

Pour commencer à lire les messages, depuis la page d'accueil des forums, sélectionnez le forum qui vous tente et partez ensuite à sa découverte...

Publicité

A voir aussi
I2C : bus collision (Forum Électronique)
Electronique : bus I2C (Forum TPE / TIPE et autres travaux)
Bus I2C (Forum Électronique)
Bus I2c (Forum Électronique)
création bus I2C? (Forum Électronique)






A voir aussi (Futura Sciences n'est pas responsable du contenu de ces publicités)
Réponse



Outils
Modes d'affichage

Règles de messages
Vous pouvez ouvrir de nouvelles discussions : nonoui
Vous pouvez envoyer des réponses : nonoui
Vous pouvez insérer des pièces jointes : nonoui
Vous pouvez modifier vos messages : nonoui

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Navigation rapide


Les dernières actualités
04/07 14:09 - La Lodamine : un anticancéreux porté par des nanoparticules
04/07 11:33 - Structure de l'héliosphère : Stereo donne raison aux sondes Voyager
04/07 09:28 - Les marées en direct sur Géoportail
03/07 15:38 - Les boîtes quantiques sont-elles dangereuses pour la santé ?
03/07 14:55 - Les résultats du BAC 2008 gratuitement sur Internet
03/07 13:33 - Métastases du cancer du sein : un mécanisme élucidé
03/07 11:31 - Le Maghreb, chemin vers l'Europe pour Homo erectus

Fuseau horaire GMT +2. Il est actuellement 14h12.

Propulsé par vBulletin
Copyright © 2000 - 2008, Jelsoft Enterprises Ltd. Tous droits réservés.
Traduction par l'association vBulletin francophone