Audiyofan.org http://www.audiyofan.org/forum/ |
|
Ajout d'une télécommande sur un ampli (ou un préamp) http://www.audiyofan.org/forum/viewtopic.php?f=60&t=8502 |
Page 6 sur 10 |
Auteur: | Totof [ Jeu 05 Jan 2012, 07:15 ] | |||
Sujet du message: | Re: Ajout d'une télécommande sur un ampli (ou un préamp) | |||
Bonjour Philbob Ah oui volontier, , car c'est pas du tout mon domaine et je rame un peu je te joint mes fichiers sources , je programme avec un USBASP sous Kontrollerlab avec Avrdude Je galère avec ces timer et interruptions et le décodage des trames RC5 j'essaye de comprendre mais dur dur après le taf de ce plonger dans toutes ces pages de codesavec cette incertitude sur le matériel de récup Merci de ton aide Précision l'entrée de L'IR est sur PA0 (ADC0) le schéma complet sous Kicad plus haut dans le post sinon ci-joint le pdf pour pas chercher
|
Auteur: | philbob [ Ven 06 Jan 2012, 00:00 ] |
Sujet du message: | Re: Ajout d'une télécommande sur un ampli (ou un préamp) |
Bonjour, Après lecture rapide des schémas et du code: Fonctionnalités en sortie: Gestion potentiomètre alps 4 pistes dont 1 est libre (moteur cc sur pont H L293D piloté par coups de 10ms) Gestion source (6 relais pilotés derrière transistors) Gestion mute (1 relais piloté derrière transistor) Affichage LCD (données transmises en mode 4bits) Fonctionnalités en entrée: Gestion clavier (boutons poussoirs pour défilement page menu) menu+ menu- Gestion télécommande (récepteur IR démodulant à 40kHz) vol+ vol- source+ source- mute on/off Coté soft: un code pour le LCD un code pour le RC5 un code pour le général Le programme générale fonctionne en mode scanning régulier des infos RC5. Le timer 0 (8 bits) est programmé pour compter de 0 à 255 à la cadence de 1 coup tout les 256 coups d'horloge (prescaleur réglé à 256 voir ligne 173 du code: TCCR0 = 1<<CS02;) A chaque dépassement du compteur, une interruption est générée (voir ligne 174 du code: TIMSK = 1<<TOIE0;) Si j'en crois les #define, tu tourne à 4MHz, alors cela donne une lecture du capteur toutes les 16 ms La routine d'interruption est en ligne 707: ISR(SIG_OVERFLOW0) { ticker1ms++; ticker10ms++; rc5_scheduler(); } C'est là que l'on interroge la routine de lecture du récepteur IR qui retourne normalement une trame de 14 bits si il y a eu signal, 0 sinon. Une fois sorti de la routine d'interruption, le programme reprend là ou il s'était arrêté. Je n'ai pas complètement détripaillé le "main" mais on voit assez facilement les portions relatives aux commandes moteur et relais ainsi que les pages du menu. Il me semble aussi que la config du sélecteur d'entrée est stockée en eeprom. (à part pour sélectionner la même source à la mise sous tension que celle utilisée la fois d'avant, je n'en vois pas l'intérêt) Vient ensuite un meli melo un peu tordu que je n'ai pas creusé. Enfin on tombe sur la gestion de l'afficheur. Question: As tu essayé le programme? Le receteur RC5 fonctionne t'il? L'ATmega peut tourner soit sur quartz externe, soit sur oscillateur interne. As tu bien programmé les fusibles en ce sens? Si non, tu tourne sans le savoir à 1MHz et cela rend inopérante la routine de capture du RC5. |
Auteur: | Totof [ Ven 06 Jan 2012, 00:46 ] |
Sujet du message: | Re: Ajout d'une télécommande sur un ampli (ou un préamp) |
philbob a écrit: Question: As tu essayé le programme? Le receteur RC5 fonctionne t'il? L'ATmega peut tourner soit sur quartz externe, soit sur oscillateur interne. As tu bien programmé les fusibles en ce sens? Si non, tu tourne sans le savoir à 1MHz et cela rend inopérante la routine de capture du RC5. Bonsoir Philbob Je suis entrain de traduire les petites lignes de commentaire en allemand pour mieux comprendre la structure du main de ce que j'ai lu ton explication colle parfaitement et m'explique bien plus simplement la routine principale Je continue à creuser , c'est passionnant le monde des µC et ce qu'on peut y apprendre mais faut aller au dodo aussi Vite fait le "main" garde en effet la dernière source stockée dans l'eeprom , enfin si j'ai bien lu je te posterai le fichier une fois tout les commentaires traduits le capteur IR je l'ai tester avec une alim 5V et une résistance et une led visible entre sortie et +5V verdict quand je pointe une télécomande philips dessus et que j'appuie sur un bouton la led clignotte la carte avec l'atmega8535 fonctionne au niveau bouton poussoir et relais faut que je modifie d'ailleurs le programme a ce niveau à l'origine les ports D de 0 à 6 sont pour les sources chez moi D0 est réservé pour le "mute" et de D1 à 6 pour les sources actuellement de D0 à D2 fonctionne correctement comme le prog d'origine mais faut que D0 soit le port du mute et fonctionne à l'inverse des relais des sources normalement inactif , alors pour selectionner la source les relais sont activé donc il me faut activé uniquement de D1 à D3 et plus de D0 à D2 je creuse Pour les fuses je crois que c'est une réponse très probable , j'ai pas lu encore comment programmer les fusibles et activé l'horloge externe , ceci explique cela peut être On en reparle demain si tu veut bien Bonne nuit |
Auteur: | Totof [ Ven 06 Jan 2012, 07:47 ] | ||
Sujet du message: | Re: Ajout d'une télécommande sur un ampli (ou un préamp) | ||
Bonjour On en reparle ce soir mais ceci peut être vu ici http://www.frank-zhao.com/fusecalc/fusecalc.php?chip=atmega8535&LOW=F7&HIGH=99&LOCKBIT=FF A plus
|
Auteur: | Totof [ Ven 06 Jan 2012, 21:44 ] |
Sujet du message: | Re: Ajout d'une télécommande sur un ampli (ou un préamp) |
bonsoir J'ai fait une bêtise j'ai cramé les fusibles de mon atmega8535 , je suis bon pour aller en acheter 1 demain matin ça tombe bien il me manquait quelques bricoles pour finir de câbler les PCB Par contre j'ai beau relire les doc j'ai pas compris ou j'ai merdé Philbob tu as une idée de ce qu'il faut exactement , j'ai programmé ce qui est indiqué sur la capture d'écran précédente Aller je retourne traduire mon fichier c A plus |
Auteur: | Totof [ Ven 06 Jan 2012, 23:58 ] |
Sujet du message: | Re: Ajout d'une télécommande sur un ampli (ou un préamp) |
Totof a écrit: bonsoir Par contre j'ai beau relire les doc j'ai pas compris ou j'ai merdé Philbob tu as une idée de ce qu'il faut exactement , j'ai programmé ce qui est indiqué sur la capture d'écran précédente A plus Je crois que j'ai compris EXT RC est différent de EXT crystal et résonnator bonne nuit |
Auteur: | WismerHill [ Sam 07 Jan 2012, 08:02 ] |
Sujet du message: | Re: Ajout d'une télécommande sur un ampli (ou un préamp) |
Normalement tu dois pouvoir reprogrammer les fusibles. Sur certains Atmel il y a possibilité de configurer le pin du Reset comme une I/O. Dans ce cas il ne peux y avoir qu'une et une seule programmation car le Reset est nécessaire dans la phase de flash. Encore qu'il existe une méthode de programmation dite "haute tension" qui permet de tout réinitialiser. La haute tension ca doit être du 12V, pas du 400V |
Auteur: | Totof [ Sam 07 Jan 2012, 09:23 ] |
Sujet du message: | Re: Ajout d'une télécommande sur un ampli (ou un préamp) |
WismerHill a écrit: Normalement tu dois pouvoir reprogrammer les fusibles. Bonjour Oui mais là il veut rien savoir de plus le prix d'un µC est faible et le prix du montage pour réaliser le AVRdoctor HVSP + HVPP est équivalent au prix du µc Voir ici si ça intéresse quelqu'un http://www.instructables.com/id/How-to-fix-dead-atmega-and-attiny-avr-chips/ Je doit approvisionner quelques bricoles donc J'espère ne pas cramer le prochain |
Auteur: | Totof [ Sam 07 Jan 2012, 13:35 ] |
Sujet du message: | Re: Ajout d'une télécommande sur un ampli (ou un préamp) |
Yes Yes Yes Yes Après lecture des doc fuse bit et RC externe de Atmel non seulement j'ai réactivé mon Atmega8535 ( du coup j'en ai 2 fonctionnel ) RC oscillateur en mode R et C suivant doc une R de 3K9 brancher entre VCC et XTal1 et C de 22 pf donne une horloge de 4 Mhz ( merci Seb c'est ton post qui ma mis la puce à l'oreille et fait chercher ) Du coup j'ai programmer mon µc sur crystal externe pour 4 Mhz et bingo la réception IR fonctionne , je peut me servir d'une vulgaire télécommande de marque philips récupérer à la décharge ( pas besoin d'acheter un modèle universel ( quoi que ) Bref je vais continuer par la traduction et la mise en ligne de dito finir de câbler tout mes PCB et améliorer le prog pour l'adapter à mon montage suppression de la fonction " Tape" par exemple Merci Philbob pour ton aide ( c'était bien une question de Fuse ) Bon appétit |
Auteur: | Totof [ Sam 07 Jan 2012, 15:27 ] | |||
Sujet du message: | Re: Ajout d'une télécommande sur un ampli (ou un préamp) | |||
Juste pour info première capture les fuses originaux deuxième capture les fuses pour un crystal externe de 4 Mhz
|
Auteur: | philbob [ Sam 07 Jan 2012, 19:02 ] |
Sujet du message: | Re: Ajout d'une télécommande sur un ampli (ou un préamp) |
Bonjour, J'arrive un peu après la bataille... L'important, c'est que ça fonctionne. Le coup des fusibles, un grand classique! Un autre coup classique: On fait tout bien sauf qu'on oublie d'autoriser les interruptions. (mais ce n'est pas le cas ici, c'est le premier truc que j'ai vérifie) Si tu veux voir un bout de code, tu peux aller piocher celui que j'ai fait pour mon lecteur tweaké (sur mon site). Il n'y a pas de commande de volume ni de RC5, mais il y a la capture en temps réel de la trame temps du lecteur avec génération de l'affichage ainsi qu'une tempo de mise en marche de la HT. |
Auteur: | Totof [ Sam 07 Jan 2012, 19:33 ] | ||
Sujet du message: | Re: Ajout d'une télécommande sur un ampli (ou un préamp) | ||
Bonsoir Philbob Merci J'ai traduit les petits commentaire , et c'est presque "lisible" là je vais "purifier" le programme principal pour enlever l'état Tape inexistant chez moi , et essayer de rajouter un affichage du niveau du potar grâce au connecteur "read" de mon PCB j'hésite encore sur la forme que je vais donné a cet affichage un % , un niveau relatif en dB par calcul entre la tension d'entrée et la sortie du ur ( 5V - ce qui sort sur le ur ) Me faut changer les activations et désactivations des relais pour la sourdine Bref plein de trucs à faire , mais le plus gros est fait je pense J'ai testé un peu cet AM en jouant avec diverses télécommandes à chaque fois ça marche réglage du volume , changement de source activation de la sourdine , que du bonheur je vous dit Aller ci-joint le preamp.c légèrement francisé
|
Auteur: | Totof [ Dim 08 Jan 2012, 20:40 ] | |||
Sujet du message: | Re: Ajout d'une télécommande sur un ampli (ou un préamp) | |||
Bonsoir Une petite capture du montage qui fonctionne bien je planche sur la lecture du volume je posterai ce soir un avant-projet de code pour en discuter ci-joint le fichier préamp.c à jour , donc allégé sans la gestion "tape" et avec les bons pilotages des relais de sorties et la sourdine ça fonctionne au poil Bon appétit
|
Auteur: | philbob [ Dim 08 Jan 2012, 22:41 ] |
Sujet du message: | Re: Ajout d'une télécommande sur un ampli (ou un préamp) |
Bonjour, Pas de problème particulier pour la lecture du volume avec l'ADC. La piste potard restée libre servira à cela. Une précaution: ne surtout pas tenter de lire une tension > à la tension d'alim du µC. (donc la piste potard sera alimentée par Vcc) Enfin, la valeur retournée par l'ADC est sur 16 bits et varie de 0 à 1023. Pour la convertir en db: d'abord passer en flottant puis faire niveau_db=20*log10(mesure/1023.0); Un exemple de routine qui actionne l'ADC //------------------------------------------------------------------------------------- //mesure //------------------------------------------------------------------------------------- uint16_t can_mesure(uint8_t voie,uint8_t noise_reduction) { volatile uint16_t res; //aden=0 arret ADCSRA &= ~_BV(ADEN); //multiplexage (choix de la voie) ADMUX=0+voie; //ADC noise reduction if (noise_reduction!=0) { MCUCR=16; } //aden=1 mise en route ADCSRA = 128+4+1; //debut conversion ADCSRA |= _BV(ADSC); //attente fin de conversion while ((ADCSRA & 64)!=0) { } //conversion res=ADCL+ADCH*256; return res; } |
Auteur: | WismerHill [ Dim 08 Jan 2012, 23:04 ] |
Sujet du message: | Re: Ajout d'une télécommande sur un ampli (ou un préamp) |
philbob a écrit: Enfin, la valeur retournée par l'ADC est sur 16 bits et varie de 0 à 1023. Pour la convertir en db: d'abord passer en flottant puis faire niveau_db=20*log10(mesure/1023.0); Tu peux aussi mettre une résistance entre le curseur et un des deux points restant. Ca permet de linéariser une courbe log et inversement. |
Page 6 sur 10 | Heures au format UTC + 1 heure |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |