[Outils/Fab/Comp] Modifier légèrement le programme d'un microcontroleur Toshiba TMP47c800n
Répondre à la discussion
Affichage des résultats 1 à 22 sur 22

Modifier légèrement le programme d'un microcontroleur Toshiba TMP47c800n



  1. #1
    Bastienchaze

    Modifier légèrement le programme d'un microcontroleur Toshiba TMP47c800n


    ------

    Bonjour et bonne année à tous,
    Je souhaiterais modifier légèrement le programme interne d'un microcontroleur Toshiba TMP47c800n.
    En résumé je veux créer une prise AUX sur un ancien autoradio Philips.
    Pour cela il suffit d'envoyer une commande en I2C au circuit intégré qui gère notamment le volume, pour lui dire d'utiliser la source 3. En effet cette source 3 existe mais n'est pas utilisée : seules 2 de ses entrées sont utilisées : radio et cassette.
    Je voudrais donc qu'en appuyant sur un des boutons de commande de l'autoradio, le microcontroleur Toshiba envoie une instruction en I2C (je sais ce qu'il faut lui dire d'envoyer et quelle est l'adresse de l'esclave, ça c'est plutôt simple).

    Ma question est donc :
    - est-il possible d'accéder au programme interne du microcontroleur?
    - si oui, je suppose que j'obtiendrai un truc assez gigantesque et assez incompréhensible parce qu'il y a des centaines de fonctions, mais est-ce que je vais voir là dedans quelque chose qui dit que si on appuie sur le bouton a, il se passe telle action, etc. Bref des trucs dont je pourrai m'inspirer?
    - est-ce faisable d'y rajouter une instruction, puis de réinjecter le tout dans le microcontroleur?

    Merci d'avance pour vos conseils!

    -----

  2. #2
    gienas
    Modérateur

    Re : Modifier légèrement le programme d'un microcontroleur Toshiba TMP47c800n

    Bonjour Bastienchaze et tout le groupe

    Très bonne année à tous.

    Citation Envoyé par Bastienchaze Voir le message
    ... est-il possible d'accéder au programme interne du microcontroleur? ...
    Là, je pense que tu rêves.

    Généralement, ces programmes sont secrets, hermétiques, inaccessibles, ... pour surtout ne pas permettre de faire ce que tu souhaites faire, mais aussi ne pas divulguer des "détails" qui pourraient se retourner contre eux.

    On parle en ce moment d'obsolescence programmée, interdite! Que se passerait-il si l'on pouvait trouver/prouver que c'est vrai.

  3. #3
    Bastienchaze

    Re : Modifier légèrement le programme d'un microcontroleur Toshiba TMP47c800n

    Ah ben zut
    Tu crois que c'était déjà le cas en 1987 (année de conception du programme)?
    Je pensais qu'il y aurait peut-être des lecteurs de mémoire, ou quelque chose du genre, qui permettrait de savoir ce qu'il y a dedans, un peu comme avec une EEPROM? Même si je me doute que c'est plus complexe.

    Le problème c'est que les concepteurs de ce truc doivent tous être à la retraite depuis longtemps à présent

  4. #4
    antek

    Re : Modifier légèrement le programme d'un microcontroleur Toshiba TMP47c800n

    Citation Envoyé par Bastienchaze Voir le message
    Je pensais qu'il y aurait peut-être des lecteurs de mémoire, ou quelque chose du genre, qui permettrait de savoir ce qu'il y a dedans, un peu comme avec une EEPROM ?
    C'est un peu ça, mais le programme est implanté en ROM.
    Donc même si par des moyens détournés tu pouvais lire le programme, pas moyen d'en charger un autre.

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

    Re : Modifier légèrement le programme d'un microcontroleur Toshiba TMP47c800n

    Voilà qui est fâcheux
    Ça veut dire que dans l'hypothèse déjà incertaine où je trouverais le code, il me faut absolument l'implanter ensuite sur un processeur neuf? Car on ne peut plus modifier sa mémoire?

    Autre question, pour ma gouverne, voici le datasheet de mon processeur:
    http://pdf1.alldatasheet.fr/datashee...MP47C800N.html
    Est-ce que vous savez quel type de microcontroleur c'est? C'est un PIC??

    Merci bien

  7. #6
    invitee05a3fcc

    Re : Modifier légèrement le programme d'un microcontroleur Toshiba TMP47c800n

    Citation Envoyé par Bastienchaze Voir le message
    C'est un PIC??
    Un µC 4 bits dans la famille PIC ?????
    Si c'est un TMP47C800N, C'est de la ROM, non reprogrammable, et certainement protégée en lecture.
    Si c'est un TMP47P800N, C'est de la EPROM OTP (One Time Programming), non reprogrammable, et certainement protégée en lecture.
    Laisse tomber .......

  8. #7
    antek

    Re : Modifier légèrement le programme d'un microcontroleur Toshiba TMP47c800n

    Citation Envoyé par Bastienchaze Voir le message
    Est-ce que vous savez quel type de microcontroleur c'est ? C'est un PIC ??
    Tu l'as dit toi-même et c'est écrit dans la doc : TOSHIBA

  9. #8
    Bastienchaze

    Re : Modifier légèrement le programme d'un microcontroleur Toshiba TMP47c800n

    Ok merci pour vos indications.
    Après recherches sur la base de ce que vous avez dit, il s'agit d'une "ROM programmée par masque", donc constituée de transistors ou diodes fixes, qui ne permettent pas de changer la moindre ligne du programme source.
    Il va donc falloir que je trouve une solution pour contourner le problème.

    A noter que maintenant que j'ai compris ça, je ne peux que m'étonner de trouver sur le net des vendeurs qui proposent ce microcontroleur. Vierge ou pas, je me demande bien ce qu'un particulier peut en faire si ce n'est pas celui d'origine, vu qu'il est impossible à modifier.

  10. #9
    invitee05a3fcc

    Re : Modifier légèrement le programme d'un microcontroleur Toshiba TMP47c800n

    Citation Envoyé par Bastienchaze Voir le message
    je ne peux que m'étonner de trouver sur le net des vendeurs qui proposent ce microcontroleur. Vierge ou pas, je me demande bien ce qu'un particulier peut en faire si ce n'est pas celui d'origine, vu qu'il est impossible à modifier.
    Tu peux donner un lien WEB sur ces vendeurs ?

  11. #10
    penthode

    Re : Modifier légèrement le programme d'un microcontroleur Toshiba TMP47c800n

    il y a des pirouettes pour s'en sortir !

    je suppose que la partie K7 n'est plus utilisée.

    tu peux donc récupérer son circuit
    [b]le bon sens est un fardeau, car il faut s'entendre avec ceux qui ne l'ont pas [/b]

  12. #11
    Bastienchaze

    Re : Modifier légèrement le programme d'un microcontroleur Toshiba TMP47c800n

    Il est vendu environ 30€ sur eBay, par exemple ici : https://m.ebay.co.uk/itm/TMP47C800N-...-/172883255190
    Il est indiqué comme neuf. Ma foi...

    Effectivement j'ai trouvé d'autres solutions possibles, même en gardant la cassette (c'est sympa d'écouter les anciennes cassettes de jazz!), en interceptant le canal gauche et le canal droit juste avant qu'ils n'arrivent dans l'amplificateur. Mais ce qui m'embête c'est qu'il faut donc emmener la totalité du son hors de l'autoradio, jusqu'à un interrupteur, pour pouvoir commuter à la main entre l'entrée AUX et l'entrée radio/cassette.
    Puis renvoyer le son par le même chemin jusqu'à l'intérieur de l'autoradio. J'aurais bien aimé trouver quelque chose de plus propre, un peu moins "bricolage" et un peu moins sujet aux parasites et aux faux contacts, une façon de commander par l'autoradio lui même le changement de source.
    Dernière modification par Bastienchaze ; 02/01/2018 à 10h49.

  13. #12
    invitee05a3fcc

    Re : Modifier légèrement le programme d'un microcontroleur Toshiba TMP47c800n

    Citation Envoyé par Bastienchaze Voir le message
    même en gardant la cassette (c'est sympa d'écouter les anciennes cassettes de jazz!),
    Tu les rippes en MP3 !

  14. #13
    penthode

    Re : Modifier légèrement le programme d'un microcontroleur Toshiba TMP47c800n

    +1 , surtout en voiture !
    [b]le bon sens est un fardeau, car il faut s'entendre avec ceux qui ne l'ont pas [/b]

  15. #14
    luc_1049

    Re : Modifier légèrement le programme d'un microcontroleur Toshiba TMP47c800n

    Bonjour

    Puisque vous étiez prêt à modifier le logiciel embarqué du processeur d'origine et comme ce n'est sans doute pas possible je suppose que vous avez dépassé la loi d'ohm et que vous avez des bases solides.

    Comment se passe le dialogue i2c avec ce circuit multiplexeur audio, ne pouvez vous pas intercepter le flux quitte à ajouter un micro-contrôleur qui enverrai les 3 ordres cassette, radio ou son auxiliaire ? Auquel cas il vous suffira de mettre un mini rotacteur 3 positions ou un bouton poussoir et changer la source après chaque appui dessus. Vous pourrez même mettre la position auxiliaire par défaut à chaque mise en route de l'autoradio.

    Sinon vous pouvez faire en sorte que les ordres du microprocesseurs d'origine soient ignorés en créant une commande sans autre microprocesseur à condition que le circuit i2c choisissant le flux audio ait aussi un mode de commande simple avec 2 broches d'entrée inutilisé lorsqu'il est en mode logiciel commandé par son bus i2c.

    Espérons que vous ne choisissez pas l'option "j'abandonne c'est trop compliqué" !

    Mettez donc un lien pour information sur le circuit i2c multiplexeur audio.

    J'ai supposé peut être à tort que le micro principal ne relie pas l'état du circuit i2c ou n'en attend pas d'accusé réception, si tel est le cas puisque le bus i2c est bidirectionnel cela sera plus élaboré mais pas impossible.

    En tout cas cela ne tient pas du bricolage et n’argumente pas dans le sens de l'abandon de ce projet.

    cdlt

  16. #15
    Bastienchaze

    Re : Modifier légèrement le programme d'un microcontroleur Toshiba TMP47c800n

    Merci à tous pour ces tuyaux !
    Non non je ne vais pas abandonner, c'est bien mon problème d'ailleurs, je suis capable de passer un temps démesuré rien que pour le plaisir d'aboutir

    J'avais pensé au fait d'envoyer par un autre microcontrôleur l'instruction du choix de source en I2C. Mais j'ai peur d'avoir des phénomènes de superposition d'instructions? Ou alors il faudrait couper le bus I2C le temps de passer cette instruction. Mais je ne sais pas si c'est faisable facilement et quels sont les bugs que cela pourrait générer. Notamment sur les acquittements qui sont transmis en retour.

    Pour la deuxième solution, j'ai regardé le fonctionnement du circuit intégré qui choisit la source et qui pré amplifie le signal : c'est un TEA6300. J'ai l'impression à la relecture de la doc que la source est bel et bien commandée par l'I2C, et uniquement par ça.
    http://pdf1.alldatasheet.fr/datashee...S/TEA6300.html
    Il ne semble pas y avoir de possibilité de passer sur les Inputs A, B et C par une commande spécifique, sauf erreur?

    Il resterait néanmoins une solution, mais pas forcément super propre non plus: le microcontroleur a une fonction mute: quand il reçoit du 12V sur une broche en provenance de l'extérieur, il fait basculer le TEA6300 sur la source B pour atténuer le son le temps des messages vocaux (la voiture parle...). Ce serait une piste mais ça nécessite un bouton pour simuler du 12V, et surtout de supprimer cette fonction mute pour la remplacer par l'entrée AUX. Donc pas forcément génial non plus.

  17. #16
    invitee05a3fcc

    Re : Modifier légèrement le programme d'un microcontroleur Toshiba TMP47c800n

    La seule solution valable !
    Citation Envoyé par penthode Voir le message
    je suppose que la partie K7 n'est plus utilisée.
    tu peux donc récupérer son circuit
    Et tu passes tes cassettes en CD MP3 .

  18. #17
    Bastienchaze

    Re : Modifier légèrement le programme d'un microcontroleur Toshiba TMP47c800n

    Bien sûr! Je peux aussi acheter un autre autoradio, mais je vais essayer de trouver une solution en conservant les fonctions actuelles.
    La solution la plus rationnelle est d'ailleurs sans doute d'acheter une voiture neuve, ce qu'on me dit tout le temps, mais je ne le ferai pas non plus

  19. #18
    invitee05a3fcc

    Re : Modifier légèrement le programme d'un microcontroleur Toshiba TMP47c800n

    Citation Envoyé par Bastienchaze Voir le message
    mais je vais essayer de trouver une solution en conservant les fonctions actuelles.
    Donc, pour garder l’authenticité du poste, ça, c'est verboten !
    Citation Envoyé par Bastienchaze Voir le message
    En résumé je veux créer une prise AUX sur un ancien autoradio Philips
    Bon courage pour ton µC auxiliaire qui va leurrer l'I²C .................... Tu fais signe quand ça marche !

  20. #19
    luc_1049

    Re : Modifier légèrement le programme d'un microcontroleur Toshiba TMP47c800n

    Bonjour

    Avez vous un moyen d'observer les signaux du bus i2c ?

    Il faudrait analyser les trames pour savoir si le micro est bien toujours maître du bus i2c, car le bus le permet (passage du micro de maître en esclave) , cela vous permettra de simplifier le problème.

    Pour observer le bus i2c un oscilloscope avec des conditions élaborées de déclenchement pour voir les basculements des signaux du bus i2c, voire en complément s'il existe des fonctions arduino par exemple qui permettent de faire un espion du bus i2c.

    Théoriquement si le micro de l'autoradio relâche le bus i2c vous pourriez mettre en parallèle un deuxième maître qui ferait basculer le multiplexeur audio sur sa troisième voie.
    Il pourrait y avoir des complications si le micro de l'autoradio relie systématiquement l'état complet de la configuration du circuit multiplexeur et stocke son état dans des variables reflets. On pourrait imaginer alors un plantage du logiciel du micro de l'autoradio si le soft embarqué ne prévoit que les 2 possibilités de valeur et se plante dans le troisième cas crée artificiellement par un 2 ème maître qui profiterait de l'absence de dialogue du micro de l'autoradio pour dire en quelque sorte "je profite que le maître est absent pour te dire de passer sur la voie aux".

    cdlt

  21. #20
    Bastienchaze

    Re : Modifier légèrement le programme d'un microcontroleur Toshiba TMP47c800n

    Merci pour ces quelques éléments qui m'éclairent, et merci de vous pencher sur mon problème !
    Je suis en train depuis la dernière fois de tourner le problème dans tout les sens. J'ai téléchargé pas mal de manuels de service pour des autoradios qui utilisent le même microcontrôleur.
    Mais contrairement à ce que j'espérais, aucun d'entre eux n'utilise le même programme : les fonctions des broches du microcontroleur sont à chaque fois assez différentes. Donc c'est difficile de s'en inspirer.

    Par rapport à votre idée, c'est ce que j'envisage actuellement.
    Mais j'ai du mal à imaginer pour quel type de fonction le microcontrôleur cesserait d'être maître. Je vais regarder, mais je n'ai rien trouvé qui pourrait le faire supposer : à chaque fois il interroge les composants, mais ces derniers n'ont jamais vraiment de rôle actif.
    Je vais essayer de voir avec l'Arduino si je peux me bricoler un pseudo-oscilloscope, ou quelque chose pour observer l'I2C.

    Sinon, dans le même ordre d'idées, aujourd'hui je pensais tout simplement couper le bus I2C qui va vers l'amplificateur au moment où je veux lui envoyer l'instruction, puis lui envoyer par un autre petit microcontroleur l'instruction de basculer sur la source 3, puis reconnecter le bus I2C. Je suppose que ça peut créer des bugs si c'est fait au milieu d'une instruction, donc éventuellement attendre que le bus ne soit plus actif pour le faire (SCL et SDA sur 1 depuis 4,7 microsecondes).

    Ou, autre chose que je veux tester, c'est de savoir si cela pose un problème au microcontroleur principal qu'un autre maître prenne la main, et lui dise de se taire. Normalement le protocole I2C est prévu pour, mais est-ce que mon microcontroleur dont je ne connais pas le programme interne a bien la connaissance intégrale de ce protocole...

    Si ça vous intéresse, voici le lien du manuel de service de l'autoradio:
    https://drive.google.com/file/d/1zb7.../view?ths=true

    L'affectation des broches du microcontroleur (TMP47c800n) est à la page 13.
    Le gestionnaire du volume, de la balance, de la source, etc. (TEA6300) est à la page 23. Il est représenté un peu à gauche de la page, et au milieu. Mais c'est le même composant (TEA6300). Les entrées [12,17] et [10,19] sont utilisées, mais pas les entrées [8,21] qui pourraient donc servir pour l'entrée AUX.

  22. #21
    luc_1049

    Re : Modifier légèrement le programme d'un microcontroleur Toshiba TMP47c800n

    Bonjour

    Par sécurité pour ne pas abimer les ports i2c du micro vous pourriez ajouter un multiplexeur pour isoler le micro d'origine du circuit qui sélectionne l'audio.
    Un multiplexeur analogique ou plutôt interrupteur du type 4951 de mémoire pourrait faire l'affaire, mais il faudra vérifier la compatibilité des niveaux électriques.
    Le signal sda est bidirectionnel puisque le micro peut lire les registres du circuit normalement, mais scl n'est peut être que mono directionnel si le micro d'origine est tjs le maître, cela pourrait vous simplifier pour la conception.

    Attendre le relâchement du bus sans ajouter un interrupteur analogique pourrait conduire à un conflit si vous passez en mode auxiliaire et si malencontreusement vous appuyez sur une autre touche ou modifier le volume en même temps.
    Enfin il faut mieux prendre les précautions pour éviter les conflits hardware car le micro d'origine on peut deviner son fonctionnement mais on n'en 'est pas certain à moins d'en avoir le source et en plus il ne faut qu'il parte jamais.

    J'ai vu qu'il existe (lecture rapide ) des multiplexeur i2c pour arduino si on a plusieurs périphériques identiques qui ont la même adresse, cela ne répond pas tout à fait au besoin mais voir si cela pourrait vous être utile pour faire l'interrupteur.
    https://www.google.fr/search?q=multi...LiD6zVXs38o-gG
    cdlt

  23. #22
    Bastienchaze

    Re : Modifier légèrement le programme d'un microcontroleur Toshiba TMP47c800n

    Bonjour,
    J'ai beaucoup réfléchi à tout ça et comme je ne connais pas le programme source je me demande si je vais reussir à faire un montage fiable. En fait c'est rigolo de parler en I2C à ce composant et je suis prêt à le faire, mais je me demande quelle sera la fiabilité sur le long terme (au moins 2 ans). C'est votre précédent message qui m'y a fait penser.
    J'ai peur de créer des bugs sur mon autoradio (pas grave, je démonte!) mais surtout sur celui des 2 copains qui attendent ce montage pour leur poste aussi. Eux apprécieront moins un événement inattendu
    Du coup je réfléchis à un commutation en amont de l'ampli, via une bascule et quelques Mofset.
    C'est moins ambitieux et moins rigolo je sais, mais je me demande si ce n'est pas plus raisonnable.

Discussions similaires

  1. aide pour modifier un programme du pic
    Par invite8fabcf6d dans le forum Électronique
    Réponses: 8
    Dernier message: 03/02/2013, 19h55
  2. Probléme pour modifier un programme
    Par invitea883d7b1 dans le forum Électronique
    Réponses: 5
    Dernier message: 27/04/2011, 11h49
  3. Modifier Un Programme de Pic
    Par invitef894bf53 dans le forum Électronique
    Réponses: 2
    Dernier message: 15/06/2009, 09h36
  4. Logiciel R: programme pour modifier une séquence d'ADN
    Par invitecec0883f dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 23/03/2009, 09h07
  5. Quelqu'un peut m'aider à modifier ce programme?
    Par invitee6921968 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 16/05/2008, 16h33
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...