I2C + MMC/SD card sur PIC18Fxxx
Répondre à la discussion
Affichage des résultats 1 à 14 sur 14

I2C + MMC/SD card sur PIC18Fxxx



  1. #1
    jpjcb66

    I2C + MMC/SD card sur PIC18Fxxx


    ------

    Bonjour à tous,

    Je souhaiterais utiliser simultanément sur un18F458 les bus I2c et SPI.
    Or les sorties sont communes pour ces deux protocoles.
    Avec mikrobasic pro les bibliothèques utilisent ces sorties pin(18 RC3)= SCK/SCL - pin(23 RC4)=SDI/SDA
    On a en commun SCK/SCL (horloges) SPI et I2C, SDI/SDA (données IN SPI et datas I2C).

    Auriez vous une astuce pour ce cas de figure?

    Merci.

    jp

    -----

  2. #2
    dededu72

    Re : I2C + MMC/SD card sur PIC18Fxxx

    les pin ne sont pas reconfigurable sur ce pic?

  3. #3
    jpjcb66

    Re : I2C + MMC/SD card sur PIC18Fxxx

    Merci pour la réponse,

    En principe oui, puisque j'ai déplacé l'afficheur lcd en port D pour utiliser les interruptions de RB.

    J'ai donc entré ceci sur le même principe pour déplacer SDA et SCL :
    dim I2C_SCL as sbit at RA3_bit
    I2C_SDA as sbit at RA4_bit
    I2C_SCL_Direction as sbit at TRISA3_bit
    I2C_SDA_Direction as sbit at TRISA4_bit

    Mais ça ne donne rien. Déjà le compilateur l'accepte donc la syntaxe est correcte, mais.....

    jp

  4. #4
    RISC

    Re : I2C + MMC/SD card sur PIC18Fxxx

    Salut jpjcp,

    Le PIC18F458 est un très très vieux produit...Utilises plutôt le PIC18F4580 ou même encore plus récent, le PIC18F45K80 qui possède le même boitier mais beaucoup plus de périphériques et dont le module bus CAN à moins de bogues que le vieux PIC18F458...

    As-tu besoin du module bus CAN ? si ce n'est pas le cas, il vaudrait mieux choisir un autre PIC qui possède 2 modules MSSP ou MSSP+SSP en utilisant le sélecteur de PIC version offline MAPS.

    a+

  5. A voir en vidéo sur Futura
  6. #5
    jpjcb66

    Re : I2C + MMC/SD card sur PIC18Fxxx

    Salut RISC et merci pour ta réponse.

    Ça se complique, il est vrai que la vie passe vite ; mais à ce point.
    J'étais parti avec un 16F877A puis 16F887. Puis je me suis rendu compte que si je voulais faire du logging de températures sur SD card il me fallait un 458. (Conseil Mikroelektronika).
    Là tu me dis que c'est pas bon. Alors je vais regarder suivant tes conseils.
    Sur mon projet (régulation chauffe eau solaire) j'utilise I2C (horloge DS1307) qui va entrer en conflit avec SPI qui utilise les mêmes pins.
    One_wire sur RD2 pour les capteurs 18B20
    et SPI pour la gestion MMC/SD.

    Pas besoin d'autre chose ni du bus CAN.

    a+ si tu veux m'aider

  7. #6
    RISC

    Re : I2C + MMC/SD card sur PIC18Fxxx

    Salut,

    Tu utilises une carte particulière de Mikroelektronika ?
    Tu veux faire ta propre carte ?
    Tu développes dans l'environnement Mikroelektronika (compilateur ? , IDE ? )

    Si c'est le cas, il faut viser les PICs compatibles avec cette carte et aussi le soft...

    As-tu un cahier des charges de ce que tu as besoin ?
    * nombre de broches
    * taille RAM/FLASH
    * nb broches E/S
    * unités SPI, I2C, UART
    * horloge interne / externe
    * problème de consommation ou pas
    * tension de fonctionnement ?

    a+

  8. #7
    jpjcb66

    Re : I2C + MMC/SD card sur PIC18Fxxx

    Re,

    Les problèmes ont commencé quand j'ai voulu intégrer la SD card dans le montage à cause du conflit de broches. Et de la RAM dispo pour gérer la FAT.
    L'IDE Mikroelektronika met à disposition toutes les librairies nécessaires.
    Je travaille avec la EasyPic5 qui supporte les MPUs que j'ai en ce moment (cités plus haut).
    L'environnement est MikroBasic Pro for PIC v.5.4.0
    Les entrée/sorties passent par PCF8574 sur le bus I2C de l'horloge DS1307 et d'une eeprom qui stocke mes paramètres de consignes températures.
    La vitesse n'est pas critique, on travaille sur du solaire. Quartz 8MHz
    Un afficheur LCD 16x2 est connecté en 4bits sur le PortD. 6pattes.
    Un micro Joystick (5pattes).
    Un buzzer.
    Pas de problème de conso, (mais vu la crise ) ça tourne sous 5Vcc et 3.3Vcc pour la SDcarte.
    J'ai donc du "rabe" de pattes.
    Tout ça est très simple.
    Ce qui l'est moins c'est de se tenir au courant de ce qui sort de chez Microchip. La profusion de MPUs fait qu'on s'y perd surtout si on ne lit pas courrament l'Anglais. Alors pour cibler avec précision la bestiole adéquat .......

    a+

    jp

  9. #8
    jpjcb66

    Re : I2C + MMC/SD card sur PIC18Fxxx

    Pour RISC tout ça est visible ici

  10. #9
    RISC

    Re : I2C + MMC/SD card sur PIC18Fxxx

    Salut,

    Je ne connais pas les bibliothèques Mikroelektronika, mais tu pourrais utiliser le PIC18F45K22 qui est compatible broche à broche avec ton PIC18F458.
    Il possède 2 unités MSSP et beaucoup de choses en plus que ton PIC18F458.

    Ce qui risque d'être plus problématique est qu'il va falloir plonger dans la datasheet ...en anglais.

    Concernant le choix des PICs, il y en a effectivement de plus en plus (plus de 700 je crois à ce jour). Il y a cependant des PICs "génériques" passe-partout.
    Je trouve dommage de s'embêter avec des produits anciens alors que les nouveaux ont beaucoup plus de périphériques intégrés, consomment beaucoup moins, tournent plus vite (le PIC18F45K22 tourne à 64MHz c'est à dire 16MIPS donc 60% plus rapide que son prédécesseur le PIC18F4520) tout en consommant moins ;=)

    a+
    Dernière modification par RISC ; 04/02/2012 à 16h29.

  11. #10
    jpjcb66

    Re : I2C + MMC/SD card sur PIC18Fxxx

    Bonsoir,

    Oui, ce n'est pas simple de faire le bon choix.
    J'ai commandé deux échantillons de PIC18F45K80. On verra (comme dit le cochon) ce que ça va donner.
    Pour l'instant mon problème est de déplacer les sorties I2C SCL et SDA.
    Mikroelektronika m'a dit en Anglais que ça ne posait pas de problèmes. Alors je cherche...

    @+

    jp

  12. #11
    RISC

    Re : I2C + MMC/SD card sur PIC18Fxxx

    Salut,

    Le PIC18F45K22 possède un avantage sur le PIC18F45K80 : il a 2 unités MSSP dont tu pourrais avoir SIMULTANEMENT une liaison SPI ET une liaison I2C.
    Comme tu ne te sers pas du controleur de bus CAN, le PIC18F45K22 est une meilleure solution.
    Pour les échantillons de PIC tu peux les avoir ...gratuitement si tu les commandes chez Microchip et que tu n'es pas pressé : http://sample.microchip.com .
    Cela prend entre 8 à 10 jours s'ils sont dispo.

    a+

  13. #12
    jpjcb66

    Re : I2C + MMC/SD card sur PIC18Fxxx

    Faudra m'expliquer comment on organise simultanément deux liaisons sur les mêmes pins. j'imagine mal les deux bus SPI et I2C connectés ensembles.
    Mais je vais voir si ça passe la commande d'échantillons chez Microchip parce que ça va faire la quatrième en huit jours !!!
    Faut que je regarde aussi s'il est compatible avec EasyPic5. Qu'est que le K dans la réf du Pic apporte par rapport au 18F4522 ?
    Bonne nuit.

    jp

  14. #13
    RISC

    Re : I2C + MMC/SD card sur PIC18Fxxx

    Salut,

    Tu as je pense mal interprété mon message
    J'ai dit simultanément...j'ai pas dit sur les même broches
    Dans le PIC18F45K22, il existe 2 canaux MSSP et tu peux donc avoir un module qui fonctionne en I2C et l'autre en SPI sur d'autres broches.
    Dans ton PIC actuel (PIC18F458) ou dans les PIC18F4580 ou PIC18F45K80, il n'existe qu'un seul MSSP donc tu dois choisir I2C ou SPI.

    La lettre "K" dans le la référence du PIC signifie :
    a/ que c'est un produit récent
    b/ qu'il fonctionne jusqu'à 64MHz au lieu de 40MHz (60% plus rapide)
    c/ qu'il intègre plus de périphériques, consomme moins et ...qu'il est moins cher

    a+

  15. #14
    jpjcb66

    Re : I2C + MMC/SD card sur PIC18Fxxx

    Mouais!!! J'ai du comprendre de travers
    Mais le fait d'avoir deux modules n'arrange pas mes affaires car ils travaillent en partie sur les mêmes broches. C'est ça mon problème actuel.
    En partant du postulat que ces deux canaux MSSP travaillent simultanément. Le corps du programme qui va faire appel à eux n'est pas multitâche, lui.
    D'ailleurs je ne sais pas si MikroBasic fait appel à ce potentiel.
    Actuellement il existe deux bibliothèques pour gérer spi et I2c entre autres : I2c1_xxxx et Soft_I2c_xxxx.
    Je suppose que la seconde permet l’accès à d'autres broches que RC3 et RC4 pour véhiculer les signaux I2C. Malheureusement ça me sort une erreur indémerdable et le forum Mkroe n'a pas la réactivité de celui-ci.

    Ok pour la lettre "K". J'aurais bien racheté le dernier Tavernier mais comme je me suis déjà fait bai.... par ses copier/coller je vais continuer à me self_made_man_er. .
    Quoi que ce MikroBasic performant soit très proche du C++, j'aurais peut-être mieux fait de faire l'effort de me mettre au C histoire de parler une langue universelle. Ceci d'autant plus que dans la ligne des achats compulsifs je me suis offert un Arduino pour voir...

    Merci quand même pour cette sympathique collaboration.

    Allez j'y retourne avant la neige.

    jp
    Dernière modification par jpjcb66 ; 05/02/2012 à 09h10.

Discussions similaires

  1. Lire ou écrire sur une carte MMC/SD avec un pic
    Par invited60b6f1f dans le forum Électronique
    Réponses: 14
    Dernier message: 22/03/2012, 21h39
  2. demonstration pas comprise : Card(ExF)=card(E)Card(F)
    Par brune555 dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 27/12/2011, 21h12
  3. Ecriture fichier TXT sur SD Card en FAT32 avec un PIC.
    Par invite14d9a42f dans le forum Électronique
    Réponses: 17
    Dernier message: 08/06/2011, 08h51
  4. écrire sur une SD/MMC card avec un microcontrolleur
    Par invited60b6f1f dans le forum Électronique
    Réponses: 5
    Dernier message: 02/08/2008, 14h12
  5. Card(N) = Card(Q) = nf0
    Par prgasp77 dans le forum Mathématiques du supérieur
    Réponses: 6
    Dernier message: 24/10/2006, 18h13
Découvrez nos comparatifs produits sur l'informatique et les technologies.