Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur l'Assembleur !

Modérateur : mazertoc

18f26k22 et module I2C
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#11 Message par francois77 » ven. 17 mars 2023 16:14

Bonjour,

C'est pas parfait a 100%, mais c'est déjà pas mal pour un débutant :langue:

En écriture pas de problème (en simulation)

En écriture c'est assez bizarre, j'arrive à lire 1 octet sur 2 sans défaut et une trame I2C correct

Autres points ou je bloque

Dans la config de temps-x, j'avais repris les info suivantes :

; movlw B'01010010' ; oscillateur à 4 Mhz, fréquence stable

pour moi cela serait plutôt : movlw B'01110100'

Pour le calcul de SS1ADD , je ne suis pas sur de mon calcul

Si je tourne à 64MHZ --> 16MHZ * 4 , je prend quoi pour le calcul 16MHZ ?

A suivre
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

18f26k22 et module I2C
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#12 Message par francois77 » ven. 17 mars 2023 17:07

rebonjour,

La version v2 testé en simu uniquement

Edit : Version testé en réel ==> OK

Edit2: il me reste a adapter la macro de Temp-x pour trouver les adresses des périphériques "autres"

A+
Francois
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

18f26k22 et module I2C
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#13 Message par Temps-x » ven. 17 mars 2023 21:11

Bonsoir françois77, et tout le forum,

francois77 a écrit :Source du message movlw B'01010010' ; oscillateur à 4 Mhz, fréquence stable

pour moi cela serait plutôt : movlw B'01110100'


Tu as raison sur la stabilisation de l'oscillateur, mais pas sur la fréquence qui comme tu le configure tourne à 16 MHz sans PLL d'activé

Pour 4 MHz avec fréquence stable, et en se servant de l'oscillateur interne du Pic, j'aurais du écrire

movlw B'01010110' ==> ==> ==> ==> ; oscillateur à 4 Mhz, fréquence stable

:+1: C'est très bien d'avoir relevé cette erreur, :roll: personne n'est parfait, :eek: Je ne suis pas un robot :-D

francois77 a écrit :Source du message Pour le calcul de SS1ADD , je ne suis pas sur de mon calcul


La fréquence de l'horloge est déterminée par la formule

FSCL = Fosc / (4 * (SS1ADD + 1))

En général, on connait la fréquence (100KHz, 400KHz, 1MHz), et on cherche à déterminer SS1ADD. ce qui donne

SS1ADD = (Fosc / (FSCL * 4)) - 1

Exemple pour un I2C qui tourne à 100KHz, avec un quartz à 64MHZ

Conversion en Hertz
100KHz * 1000 = 100 000 Hz
64MHz * 1000000 = 64 000 000 Hz

Calcul final
159 = (64 000 000 Hz / (100 000 Hz *4)) - 1

On mettra 159 dans SS1ADD pour avoir une vitesse de 100KHz en I2C


Ps: en regardant la datasheet de ce Pic18F26K22 j'ai vu qu'on peut tourner à 4 MHz en SPI, contre 1,47MHz en mode Big bang d'après l'analyse de paulfjujo, Voila la solution pour améliorer ta vitesse d'affichage

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

18f26k22 et module I2C
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#14 Message par francois77 » sam. 18 mars 2023 07:52

Bonjour Temp-x et tout le forum

j'ai refait quelques essais ce matin

Pour le calcul et les essais de SSP1ADD c'est ok en réel

test2 a 64MHZ 400KHZ avec SSP1ADD a 39
-----------------------------------
Pour le mode spi a 4MHZ cela serait un vrai plus pour faire de l'affichage temps réel :sifflotte: T
-----------------------------------
Pour la configuration de la vitesse, j'ai refait un essai en mode 4MHZ

ta config génère un défaut lors de la simulation
movlw B'01010110' ; oscillateur à 4 Mhz, fréquence stable

Ma config est ok
movlw B'01010100' ; oscillateur à 4 Mhz, fréquence stable

Pas simple ce 18f26k22





Séquence pour scanner l'adresse :

Code : Tout sélectionner

clrf Temp_1             ;
Scanne                                        ;        
    call        i2c_start                   
;
    movf       Temp_1,w                 ;
    movwf  SSP1BUF                    ;
    btfsc       SSP1CON2, ACKSTAT     ;
    bra       $-2                            ;
    btfss       PIR1, SSP1IF              ;
    bra       $-2                            ;
    bcf       PIR1, SSP1IF               ;            
    call        i2c_stop                    
;
                                        ;
    movlw   D'0'                            ;
    xorwf       SSP1CON2,w             ;
    btfsc    STATUS,Z                   ;
    bra          Adresse_ok               ;
    incf        Temp_1,1                 ;
    clrf     SSP1CON2                 ;
                                               ;
    movlw   0XFF                        ;
    xorwf   Temp_1,w                 ;
    btfsc       STATUS,Z                  ;    
    bra        Adresse_non_trouve  
;
    bra        Scanne                     ;
                    
Adresse_ok
    nop
  
Adresse_non_trouve
    nop





A+
Francois
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

18f26k22 et module I2C
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#15 Message par paulfjujo » sam. 18 mars 2023 18:03

bonsoir,


francois77 a écrit :-----------------------------------
Pour le mode spi a 4MHZ cela serait un vrai plus pour faire de l'affichage temps réel :sifflotte: T
-----------------------------------


il ne faut pas confondre la vitesse intrinseque du CLOCK SPI , et le debit pouvant etre atteint
en terme de bytes / secondes et donc de la vitesse moyenne réelle.
sachant qu'il y a quand meme quelques instructions autour .. surtout en mode bit bang ! ..

:-D En mode SPI Hardware on peut effectivement esperer davantage que 1,47Mhz ..

c'est pourquoi je m'acharne à vouloir faire tourner ce SPI hardware 18F27K42 .. à 10MHz ?

à voir si TempsX va me devancer en ASM ?

:sifflotte: le 18F26K22 difficile .. attend de tester le 18F27K42 ..

A+
Aide toi, le ciel ou FantasPic t'aidera


Retourner vers « Langage ASM »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 40 invités