Dual Tone Multi-Frequency (DTMF) Generator on AVR. Generation and recognition of DTMF signals

Golovna / Main functionality

Vinahid is brought to the field of generation by digital methods of two-tone frequency signals (DTMF), used for data transmission, for example, in the field of telephony. The technical result that can be achieved is a change in the number of oversized circuit elements, an increase in economic efficiency. Generator DTMF Signal, Shaho Realіzu Svosib Generate DTMF Signal, Maine Two Accumamamamamamamamy, Two Filight Register, Two Tops'yatovichi Sunshi, Pіdsumkoviy Summer, DVMF Signal Code Signal Signal Signal Signal Signal DTMF Signal DTMF Signal Signal Signal Signal Signal Signal Code the code of the coefficient is correct. 2 s. and 3 z.p. f-li, 2 il.

Vinahid is considered to be a method of generating DTMF (two-tone frequency) signals by digital methods, suitable for data transmission, for example, in the field of telephony with tone-frequency dialing. US patent No. 5034977 dated April 4, 1989, publ. 07/23/91, M.cl. 5 H 04 M 1/00. Vіdomy sposіb generatsії DTMF signalіv vklyuchaє vibіr Persha i another kodіv kutіv diskretizatsії, vіdpovіdnih pershoї that Druha frequency now warehouses DTMF signal nakopichuvalne pіdsumovuvannya okremo Persha i another kodіv kutіv diskretizatsії of vіdpovіdno perіodichno fіksuyutsya, of perіodom, chastotі diskretizatsії, Persha i Other results nakopichuvalnogo sumuvannya, deletion of the first and other discrete values ​​of the warehouse DTMF signal, which are stored in the addressable tables of discrete values ​​of the warehouse DTMF signal, by way of reading from the warehouse tables for the addresses of the first and other discrete values ​​of the warehouse DTMF signal to remove the third discrete value of the DTMF signal, . Another way to generate DTMF signals in the offensive: F the signal after the additional first code conversion of the DTMF signal codes, the first code is selected, which is assigned to the sampling cut to the signal with the frequency, which selects the upper frequency groups - the stops, and after the other code of the other code, the DT is selected scho viznachaє kut diskretizatsії signal of frequency scho vіdpovіdaє grupі nizhnіh frequency - ryadkіv, perіodichno, s perіodom scho vіdpovіdaє taktovіy chastotі diskretizatsії, Purshia code kuta diskretizatsії pіdsumovuєtsya at vіdpovіdnomu nakopichuvalnomu sumatorі i fіksuєtsya at vіdpovіdnomu regіstrі on vihodі yakogo znahoditsya result values yakogo vіdpovіdaє adresі oseredku tablitsі scho zberіgaєtsya at vіdpovіdnomu postіynomu zapam'yatovuyuchomu pristroї diskretnі values sinusіv scho viznachayut highpass DTMF signal in the same rank, perіodichno, s perіodom scho vіdpovіdaє taktovіy chastotі diskretizatsії, another code kuta diskretizatsії pіdsumovuєtsya at vіdpovіdnomu nakopichu vachі sumatorі m i y fіksuєtsya vіdpovіdnomu regіstrі on vihodі yakogo znahoditsya result values yakogo vіdpovіdaє adresі komіrki tablitsі scho zberіgaєtsya at vіdpovіdnomu postіynomu zapam'yatovuyuchomu pristroї i in yakіy znahodyatsya vіdpovіdnі diskretnі values sinusіv scho viznachayut lowpass DTMF signal values diskretnі sinusіv , which assigns the upper frequency to the DTMF signal, is summed up in the sub-bag adder, assigning discrete values ​​to the DTMF signal and, through digital-to-analog conversion, are fed to the output, forming a step-frequency-sinusoidal DTMF signal, similar to the input code of the DTMF signal. Vіdomy sposіb є nizkoeffektivnym, scho zumeno yogo low technical and economic indicators and technological indicators. In the home method, the accuracy of frequency generation is determined by the bitness of the code, which allows for a sampling cut, which means the obviousness of the large bitness of the accumulative adder, which simplifies the implementation of the method with simple hardware methods. And at the same time, the code of the discretization cut in the given way is determined by the pattern K = (F / F t) 32 ..., (1.1) de K is the code that matches the discretization cut; F - generated frequency; F t - sampling frequency. As you can see, the accuracy of the generated frequency is uniquely dependent on the assumption of the generated sampling rate. To achieve the necessary accuracy of the generated frequency, and in itself, not higher than 1.5%, obviously, at least two significant digits are required after komi, which takes into account the filing of data with a capacity for lower frequencies of at least 8 bits, and for upper frequencies less than 9 bits, and cumulative summation of less than 12 bits, which allows to increase the number of component parts of the outbuildings, implement the self-contained method. Vіdomі pristroї for realіzаtsії vіdomogo way, and itself sumatori, registry, postіyni prіstroї, scho to remember, may enter/exit with a capacity of 4 and 8 bits. Therefore, for greater capacity, additional technical and economic costs are required for the implementation of equally functional outbuildings. With the help of this method, changing the number of discharges after the Komi leads to a frequency change that exceeds the permissible. Shirokoposhirenі mіkrokontoroleri scho zastosovuyutsya telefonії in that telemetrichnih vimіryuvannyah, vikoristovuyut 8 bіtovі danі that 8-bіtovy arithmetic logіchny pristrіy scho vimagaє at realіzatsії vіdomogo method dodatkovih obchislyuvalnih operatsіy, pov'yazanih of pіdsumovuvannyam danih, s rozryadnіstyu bіlshe bіt 8, that analіzom transfer signal, which increases the number of commands and, obviously, the clock frequency of the microcontroller, as well as the memory of the microcontroller, which leads to an increase in the cost of attachments, which uses the DTMF signal generation method. Danish visnovok was induced during the analysis of zasosuvannya in the home method in tone dialing on the basis of microcontrollers of the company Atmel, Microchip tnc and іn. , so it can be exchanged with a different method, including a wide stock of microcontrollers, which manifests itself in the advancement of technical characteristics, which are presented to microcontrollers, which reduce their rich functionality. signals, submissions in patent No. 5034977 dated 04.04.89, publ. 07/23/91, M.cl. 5 H 04 M 1/00. The output of the DTMF signal generator includes: the first accumulator with the input of the first fixing register, the exit of the first fixing register with the input of the first storage device, as well as with one of the inputs of the first storage adder, the exit of the first storage device from the inputs of the bag adder, the output of another accumulative totalizer with the input of another fixing register, the output of another fixing register of data with the input of another storage add-on, and also with one of the inputs of another accumulative adder, the output of another storage add-on 'data with the other input of the sub-bag adder, output of the sub-bag adder with the input of the digital-to-analog converter, output of the other input of the DTMF signal generator. Vіdomy generator mіstit takozh Purshia Peretvoriuvach kodіv DTMF signalіv at vіdpovіdnі Cody kutіv diskretizatsії, vіdpovіd vihіd pershit Peretvoriuvach kodіv DTMF signalіv z'єdnany of іnshim input pershit nakopichuvalnogo sumatora, vihіd another Peretvoriuvach kodіv DTMF signalіv z'єdnany of іnshim nakopichuvalnogo sumatora input of another, come pershit and other conversion codes of DTMF signals to the inputs of the DTMF signal generator, and the clock input of the first connection between itself and the input of the clock sampling frequency of the DTMF signal generator. Vіdomy DTMF signal generator ensures a low technical result, sounds of overworld number of circuit elements connected with different, as well as overworld range of functional elements. Krіm of realіzatsіya vіdomogo tehnіchnogo rіshennya efektivnosti mozhliva in viglyadі okremoї іntegralnoї mіkroskhemi against tse vimagaє organіzatsії spetsіalіzovanogo virobnitstva, ale z After looking at those scho generator DTMF signalіv Je Chastain bagatofunktsіonalnih pristroїv (telefonnі aparata of rozshirenimi mozhlivostyami, pristroї peredachі telemetrichnoї Informácie by phone lіnіyah skinny). etc.), which are currently being implemented on the basis of universal microcontrollers, the production of eight DTMF signal microcircuits is economically inefficient. method of temple-tehnіko ekonomіchnimi pokaznikami, obumovlenimi zmenshennyam rozryadnostі uniformity operatsіy, temple tehnologіchnimi pokaznikami at realіzatsії method yak at skhemotehnіchnomu vikonannі aparatno zasobami simply because i y skladі bagatofunktsіonalnogo mіkrokontrolera, pov'yazana of povtoryuvanіstyu at realіzatsії odnakovo funktsіonalnih elementіv. The number of superfluous circuit elements, and, obviously, economically efficient, is connected with the possibility of implementing a technical solution, which is claimed by widely available methods. signal nakopichuvalne pіdsumovuvannya okremo pershit i other kodіv kutіv diskretizatsії of vіdpovіdno perіodichno fіksuyutsya, s perіodom scho vіdpovіdaє taktovіy chastotі diskretizatsії, pershit i other results on kopіtelnogo pіdsumovuvannya, otrimannya pershit i different discrete values warehouses DTMF signals, for otrimannya tert discrete values, scho vіdpovіdaє values DTMF signal novim Yea those scho otrimannya Persha i other discrete values warehouses DTMF signal scho zberіgayutsya in targeted roztashovanih oseredkah vіdpovіdnih table of discrete values warehouses DTMF signal carried Shlyakhov zchituvannya of vіdpovіdnih results table nakopichuvalnogo pіdsumovuvannya vіdpovіdno to pershoї that Druha poslіdovnostey qіlih numbers, averaging znachennya kah vіdpіdaє codes kutіv discretizії, vіdpіdnіh storable DTMF signal. In addition, the average value of the sequence of numbers, which form the result of the accumulative summation, can be the arithmetic average of numbers. It is also different, as for the second DTMF signal generator, which includes the first storage adder, the first fixing register, the first storage adder, the other storage adder, the other fixing register, the other storage adder, the first bag adder, the first digital-to-analog converter, the first storage adder accumulative adder of the first fixing register, output of the first fixing register of data with the input of the first storage add-on, as well as with one of the inputs of the first accumulative adder, output of the first memory add-on accumulative adder of data with the input of another fixing register, output of another fixing register of data with the input of another accumulator, as well as with one of the inputs of another accumulative adder, output of another memory attachment of data with another input of the sub-bag adder with the input of a digital-to-analogue converter, which є Vigilant generator DTMF Signal, new, zgіdimo-vynod, є щ щ щ ШО дтмон тованованованована дотоводово истор потевевучучучучисті дTMF Signal Signal Signal Signal DTMF Signal Signal Communication Signal Signal Signal Signal Signal Signal Signal Signal Code besides, the first output of the conversion of DTMF codes of signals in the sequence of integer numbers of inputs with the other input of the first accumulative adder, the other output of the conversion of DTMF codes of signals in the sequence of integer numbers of inputs with the other input of another accumulator generator in the DTMF adder frequency Aglassnostі Tsіilih Numbers, and Torzozh z cloth input of the french french register І tact Вохід передевавачча котів DTMF Signal in the code of Krayfіnta Поліль З'єднанная З in the entrance of the installation of Krayfіtnaya rinked code in the code Z'єдная Із Із Ізъ идевовачка кодів DTMF Signal Signal Signal DTMF signal generator. Code of Togo, Codev DTMF Signal Signal Signal Number of Bethi Viconinius at the Visigands Kerovanovaya Programming Favorny Emboste, Pamiy Skala Signal Signal, Pam'yati regions, Shah whapping from Vіdpovy Dovzhіvіvіvnostі Tsіlih Numbers 'Yati, Wyenovy So, Scho in one of the half of the Komіrki Pam'yatі zherіgyzhnuyu number, shade to be added to Pershino, and in Insіy Polovini Komіrki Pam'yatі zh_gіnguyu number, Shaho to visit, Vіdpovy, to Іншоїні стовідодності сілихы of cumulative accumulators, and the management of the programming of the memory device is based on the possibility of a separate building area of ​​​​memory and a small room of memory. a new necessary technical result is being baked. A causal link between succession is a sign of the method and is reached by the technical result, which is explained by the next. To reveal the essence of a proponated technical solution, the next steps will be easy: y (P) = sin (n) (1.2), de y (P) - discrete value of the sine function; = wT = 27F / Fr (1.3) - sampling rate, which is measured in radians; n - serial number of the sample - discrete; outbuildings; kd - regulation coefficient below. Todi = 2FК D / F OSC. (1.4) As a general rule, the sine function is periodic with a period of 2. In order to convert the discretization cut from radians to a single unit, the code of the discretization cut is divided by dividing the entire period into m parts, where m is a double number. In this order, we take one minimal discrete part of the period = 2/m. (1.5) Sampling cut code - the value of the sampling cut is valid up to one part of the period, and itself, K = / = 2F / F t: 2P / m = Fm / F t. (1.6) For example, for generating frequencies of 1477 Hz i 697 Hz (according to the DTMF code signal “3”), at m=64, and clock frequency F t =32768 HzK 697 =1.36; K l477 =2.88. 36 valid 136 required 8 bits (1281+640+320+160+81+40+20+10), and Up to 1477 =2.88 valid 288 required 9 bits (2561+1280+640+321+ 160+80+40 + 20+10). At the same time, for the accumulative sum, it is necessary for the two-fold filing to require 12 bits, which indicated the above description of the shortfall of the given solution. For example, the number 1.36, as the average value of the sequence of integer numbers 1 and 2, and itself 1.36 \u003d (1x + 2y) / (x + y), de x and y, de x and y - obviously the number of numbers 1 and 2 , periodically repeating with a period (x + y). The value of the discretization code is added up from the whole part of the C and the shot, tobto. for example, 1.36 = 1 +0.36. Obviously, the accuracy of such a replacement is clearly up to the point (1.7)=K/C (1.7) moving beyond the larger integer part of the value of the discretization cut code. For example, for a generated frequency of 697 Hz, m=64, and a clock frequency of F t =32768 Hz, the change in the value of up to 697 = 1.36 of the values ​​of numbers 1 and 2 is probably 36 and 32%. , then the error of replacing Up to 697 \u003d 5.45 values ​​​​of numbers 5 and 6 changes 9 and 10%. 5.45=(5x+6y)/(x+y), de (x+y)=16. of sixteen operations of accumulative summation nine times summation of additions 5 and seven times of additions 6, with which actually Up to 697 = 5.4375, representing the value of virase (1.6) for m = 256, F t = 32768 Hz, significantly more actual than rozrahunkov the value of the generated frequency F = 696 Hz, with which the error was 0.1%. In this rank, nakopichuvalne pіdsumovuvannya poslіdovnostі tsіlih numbers userednene values yakih vіdpovіdaє vіdpovіdnim Kutama diskretizatsії, dozvolyaє dosyagti temple tehnіko-ekonomіchnih pokaznikіv for rakhunok zmenshennya rozryadnostі operatsіy nakopichuvalnogo pіdsumovuvannya, obumovlenih mozhlivіstyu warehouses vischenavedenih virazіv, i vіdpovіdno zmenshennya rozryadnostі pristroїv scho realіzuyut proponovany sposіb scho leading to a change in hardware and energy inputs during the implementation of the method, and to ensure high technological indicators of the proponated method with vikoristanni in richly functional outbuildings, wisely reduced and technically advanced. A causal link between succession is a sign of a technical solution and is reached by a technical result, which is explained by the next. Visokiy tehnіchny DTMF generator result signalіv zabezpechuєtsya administration novih elementіv Peretvoriuvach kodіv DTMF signalіv in poslіdovnostі tsіlih numbers Peretvoriuvach kodіv DTMF signalіv code koefіtsієnta dіlnika, SSMSC zabezpechuyut realіzatsіyu method skhemotehnіchnimi Some of the elements of odnakovoyu rozryadnіstyu scho not perevischuє 8 bіt at tsomu vіdsutnya nadmіrnіst elementіv, neobhіdnih for virіshennya dekіlkoh zavdan, napriklad, i for fіksuvannya result nakopichuvalnogo pіdsumovuvannya, i for adresatsії vіdpovіdnogo zapam'yatovuyuchogo Pristrom vikoristovuєtsya odnakova Quantity rozryadіv scho realіzuyutsya not bіlshe nіzh 8 rozryadnim regіstrom, yaky Mauger Buti vikonany zagalnodostupnimi zasobami in viglyadі odnієї mіkroskhemi abo, in the microprocessor vision, one in the middle of memory. In addition, the implementation of accumulative sumators can be implemented in the same outbuildings, with the same rank, in the sight of globally accessible sumator microcircuits, which operate with 4-bit add-ons. different coding codes for discretization, can be with a different number of digits, or the most optimal, from the point of view of the goals set for solutions, є 4-bit numbers. In addition, a high technical result is also ensured in the implementation of a proponated technical solution at the warehouse of microcontrollers, where the system of commands for microcontrollers will automatically include commands that operate with 4-bit numbers - nipbytes. In this rank, zayavlyaєtsya tehnіchne rіshennya DTMF generator signalіv dozvolyaє zabezpechiti Visokiy tehnіchny result pov'yazany Zi zmenshennyam kіlkostі schematics elementіv and takozh zabezpechuє unіversalnіst at realіzatsії DTMF generator signalіv yak zagalnodostupnimi aparatno zasobami because i y skladі bagatofunktsіonalnih mіkrokontrolerіv scho viznachaє temple ekonomіchnu efektivnіst technical solution. DTMF Signal Include Perevanduchuch 1 code_v DTMF Signal in Poslіdovnostі Tsіlih Numbers, Lock 2 Question Signature DTMF Signal Signal Signal Signal Signal Code DTMF Signal Signal Signal in Code DTMF Signal Signal in Code CodeTsієnt Signal, Person Skirting Sumyor 4, Person Fixuity Prince another memory device 7, another fixing register 8, another accumulator adder, a bag adder 10, a digital-to-analog converter 11. The operation of the DTMF signal generator is illustrated on the basis of the implementation of the DTMF signal generation method. Aritiously on Pіdtsti Virazіv (1.4, 1.6) and technichnye dones, the zokrema setting the frequency attack, de Buda RealInzovy SPOSIB, Roshahvyov Schosovnostі Tsіlih Numbers, Scho Vіdpovіdnі Kody Kutіv Discretisatzії, i Cody Kooofієntіv іло ількой кортові портоватор полостованом koefіtsієntom podіlu, SSMSC zapisuyutsya at vіdpovіdnі oseredki areas pam'yatі Peretvoriuvach 1 kodіv DTMF signalіv at poslіdovnostі tsіlih numbers i Peretvoriuvach 3 kodіv DTMF signalіv Cody koefіtsієntіv podіlu, takozh poperedno rozrahovuyut diskretnі values vіdpovіdnih funktsіy sine Quantity yakih viznachaєtsya diskretіv number t, i zapisuyut memory devices 6 and 7, when generating a DTMF signal, at the inputs of the 1 and 3 repeater, which are the inputs of the generator, for an hour after the DTMF signal, set the code of the DTMF signal that is generated, the code, the initial coefficient, is set at the output of the repeater 3 podіlu for dіlnik 2, at the same time at the exit of dіlnik 2 set Taktov frequency of discretisativation per_iodic, z per_iod, scho vіdpovіdaєdakiy frequency of discretizatsakії, from the first PRAVYE-RATRUEVUCH 1 to naughty 4 dvikіkovі numbers, Shahu in the post alone Didnight Tsіlih numbers, and a friend 9 dvіykovі number scho of male poslіdovnіst tsіlih numbers vіdpovіdnih warehouses DTMF signal results nakopichuvalnogo pіdsumovuvannya podayutsya of vihodіv nakopichuvalnih sumatorіv at input vіdpovіdnih fіksuyut 8 vihodіv fіksuyuchih regіstrіv 5 i 8 results nakopichuvalnogo pіdsumovuvannya, s perіodom scho vіdpovіdaє taktovіy chastotі diskretizatsії, nadhodyat on the other inputs to the inputs of the storage adders 4 and 9, as well as to the inputs of the inputs to the inputs to the storage adders 6 and 7, setting the address a of the discrete values ​​of the sinuses of the input storage DTMF signal, and the input of the memory storage devices 6 and 7 of the discrete storage values ​​of the DTMF signal to go to the input of the sub-bag adder 10, at the output of which a discrete two-way DTMF signal is established, which is to go to the input of the digital-to-analogue stage of the DTMF sinusoidal signal, which is valid for the input code of the DTMF signal. Converter 1 code of DTMF signals to a sequence of integer numbers (Fig.1) can be changed in the view shown in Fig.2, converting code to DTMF signals to a sequence of integer numbers, including attachments of keying 12, programming memorizing device 1 DTMF generator 3. signalіv іlyustruєtsya Dali in particular prikladі realіzatsії zayavlyaєtsya method in a telephone tone-frequency nomeronabiratele.Poperedno on pіdstavі virazіv (1.4, 1.6) i tehnіchnih danih rozrahovuyutsya poslіdovnostі tsіlih numbers scho viznachayut vіdpovіdnі Cody kutіv diskretizatsії, i Cody koefіtsієntіv podіlu for dіlnika 2 daє frequency signal regulation by a coefficient below. While the implementation of the method includes the same type of expansions, then for illustration of the work in a specific application, the implementation of the method for generating a DTMF signal, pressing the “7” key at the tone-pulse dialer is carried out. As the frequency of the generator, which is set, a quartz frequency is installed, the most widely used in telephone technology, and itself F OSC \u003d 3579545 Hz. Pressing the “7” key sends a DTMF signal from the upper (stowpts) frequency of 1209 Hz and the lower (row) frequency of 852 Hz. Since the DTMF signal transmits two frequencies at the same time, then the coefficients of the rozpodіl are allowed for the higher - upper frequency, so that the second code of the sampling cut is viable up to a maximum of (1,6) close to the maximum value - 16, which should be implemented no more than 4 . In this way, at F OSC =3579545 Hz, the number of discrete values ​​of sinuses m=128, the value of the coefficient sub-line for the second frequency timer is set, which sets the DTMF signal generator with the adjustable sub-floor coefficient K D =240=460, with this code , for the lower frequency K 852/1209 = 7.312. With the help of the coding code in the discretization, it is replaced by the sequence of integer numbers in the same way 10/11 і 7 / 8.10.375 = (10x + 11y) / (x + y), with which actually K 1209 / 852 \u003d 10.3757.312 \u003d (7x + 8y) / (x + y), and in fact K 952/1209 \u003d 7.313, with (x + y) \u003d 16. In this way, 10.375 is replaced by a periodically repeated sequence of numbers 10 x 10 times and 11 x 6 times, and 7.312 is replaced by 7 x 11 times and 8 x 5 times.
In this way, sixteen tables are opened that correspond to DTMF signal codes, and 0, 1, 2 ... 9, *, #, A, B, C, D, and are written in the memory of the programmed add-on 13 (transforming the code to the DTMF symbol in the sequence of integers). When pressing on the key, for example, “7” at the input of the generator for an hour, the DTMF signal is set to the double code of the DTMF signal “7” (0111), converting the 3 code of the DTMF signal podіlu kd for dilnik 2 sets the frequency of the generator with a regulated coefficient podіl, at the output of dilnik 2, the sampling clock frequency is set F t = F OSC / K D . The DTMF code for the signal should also be located on the address input of the higher order of the programmed memory 13 (transformation of the DTMF signal codes in the sequence of integer numbers) and the DTMF signal present there for an hour. Kerovanias 12, Wyenovaniya, Rinelvach DTMF DTMF Signal Signal Signal Signal Signal Signal), PID Plitovnosti Tsіlih Numbers), PID Fitting Total Signal Signal Wr Frequency Cyclic Q-Zmіniuє His value in parallel departments Aglassno Vіd 0000 to 1111, Zmіnіnyuyi Vіdpovyvyvnya 'what I add 13 (conversion of the DTMF signal codes in the sequence of integer numbers), at the output of the programmed memorization add 13, the clock sampling frequency is 8-digit (bytes) numbers, with which it is possible to table 1 most significant byte (highest order) Forming ambassadorsnіst zivih numbers, sukupniy, and same, sedno arithmetic, visnachary code cute DiscretizatsA, Scho Vіdpovіdaє Verkhnіyi (Stovptsi) frequency, and youth Chotiri Rosieti (young sentіvb) molding the ambassador of Tsіlih numbers, sukupnіtniy, and same, semi-arithmetic, visnacu sampling rate code, lower lower (rows) frequency, chotyri digits Ani, Vіdpovyky to Taxes 1, Z Vyiviva the Foreign TopNeight Acting 13 (Codev DTMF Signal Signal Signal Signal Signal Signal) Retinally Surrive on Correct Vіdpovіdnykiyvalnyy Sumylіv 4 І 9, at the Vіdpovіd 4 І 9 Danі zmіdnuzhaz ЗРАТОВС up to m (in this case m=128), acting and fixing for additional fixing registers 5 and 8 and 7 two-way discrete values ​​of the two-way sinusoidal warehouse DTMF signal should go to the two-way input of the sub-bag adder 10; The DTMF signal generator can be implemented on the basis of global technical specifications, descriptions, for example: Dovіdnik/For red. B.M. Faizulaeva, B.V. Tarabrena. - M.: Radio i zvyazok, 1986. When converting 3 codes of DTMF signals, the codes of coefficients can be broken, for example, when looking at the microcircuit of the permanent memory device 155PE 3 (p. 343), the implementation is described on page. 108 implementation of accumulative adders is described on p. 114. A method is claimed for the DTMF signal generator, which is also implemented on the basis of the technical specifications of Microchip Inc. (8-bit single-chip microcontrollers of the pic16f628 type), at the warehouse of the pulse-tone telephone dialer "Kadran - NKT - 01" manufactured by the company "Kadran" (Ukraine, Zaporizhzhya). The command system and the internal attachments of the microcontroller nodes are described by: Prokopenko B.Ya. Single-chip microcontrollers. Dodeka, 2000, ISBN8-87835-056-4. A description of the parameters in the DTMF signal is given, for example, in: Integrated circuits: Microcircuits for telephony. Vip.1. - M: Dodeka, 1994, 256 p. – ISBN-5-87835-003-3., p. 12, 13.

FORMULA VINAHODU

1. Sposіb generatsії dvotonalnih frequency (DTMF) signalіv scho Persha i vklyuchaє vibіr another kodіv kutіv diskretizatsії, vіdpovіdnih pershoї that Druha warehouses frequency DTMF signal nakopichuvalne pіdsumovuvannya okremo Persha that another kodіv kutіv diskretizatsії of vіdpovіdno perіodichno fіksuyutsya perіodom, vіdpovіdnim clock i Other results nakopichuvalnogo pіdsumovuvannya, otrimannya Persha that another discrete values warehouses DTMF signal scho zberіgayutsya in targeted roztashovanih oseredkah vіdpovіdnih table of discrete values warehouses DTMF signal Shlyakhov zchituvannya of vіdpovіdnih table of addresses, vіdpovіdnimi results nakopichuvalnogo pіdsumovuvannya diskіv values warehouses DTMF signal for otrimannya thirds of discrete values, what is the value of the DTMF signal, what is the difference between the first and the other discrete values ​​of the warehouse їх DTMF signal, what is taken in the addressable distribution of the middles of the discrete values ​​of the warehouses table their DTMF signal, .2. The method for item 1, which is based on the fact that the average value of the sequence of numbers, that forms the result of the accumulative sum, is the arithmetic average of numbers.3. The method according to claim 1, which is considered, is that periodically fixing the first and other results of the accumulative summation is carried out with a period that matches the clock frequency and sampling, different for different DTMF signals.4. DTMF signal generator, which includes the first storage adder, the first fixing register, the first storage adder, the first storage adder, the first storage adder with the input of the first storage add-on, and also with one of the inputs of the first storage adder, the first memory adder 'which attachment is connected with one of the inputs of the bag adder, the output of another accumulative adder of data with the input of another fixing register, the output of another fixing register of data with the input of another attachment, and also with one of the inputs of another accumulative adder, zamem'yatovoyuho pristroy z'ednany with the other input of the sub-bag adder, the output of the sub-bag adder with the input of the digital-to-analogue converter. la, vihіd yakogo Je vihodom generator DTMF signalіv, yaky vіdrіznyaєtsya tim scho generator DTMF signalіv dodatkovo mіstit Peretvoriuvach kodіv DTMF signalіv at poslіdovnostі tsіlih numbers dіlnik zadaє DTMF oscillator frequency signalіv of regulovanim koefіtsієntom podіlu, Peretvoriuvach kodіv DTMF signalіv code koefіtsієnta podіlu, wherein Purshia vihіd Peretvoriuvach kodіv DTMF signalіv at poslіdovnostі tsіlih z'єdnany numbers of input іnshim pershit nakopichuvalnogo sumatora, other vihіd Peretvoriuvach kodіv DTMF signalіv at poslіdovnostі tsіlih z'єdnany numbers of input of another іnshim nakopichuvalnogo sumatora, vihіd dіlnika zadaє DTMF oscillator frequency of signalіv regulovanim koefіtsієntom podіlu conversion of DTMF signal codes at a sequence of integers, as well as with the clock input of the first fixing register and the clock input of another locking register DTMF signal torus, input converting DTMF signal codes into the code of the coefficient of subdivision with the input of the sequence of integer numbers - the input of the DTMF signal generator. 5. The DTMF signal generator according to claim 4, which is designed to change the codes of DTMF signals in a sequence of integer numbers of beacons at a ceramic programmed memory device, the memory of which is formed from the number of DTMF signals, areas of memory Studying s vіdpovіdnyy dodzhіmi posalovnostі zіlih numbers of Pam'yatі, oscillations so, scho in one-time half-one sideline pam'yatі znikіnguyuyu rye, scho to add to Prshino Sovietovnostі Tsіlih numbers, and in another half a rank of pam'yatі zherіgіnguyu number, scho to visit Vіdpovo number of numbers, which are storage accumulative sumators, and the programming of memory devices is possible due to the possibility of a separate control over the choice of the memory area and the memory room.

In the world of modern digital exchanges in the telephone networks of the Russian Federation, a rich frequency method of transmitting signals in dialing is gradually expanding, which is indicated by the English abbreviation DTMF (Dual-Tone Multiple-Frequency). Another name for the system of signal transmission in the dialing is replaced by another English term - Touch-None (tone dialing). This method was developed in 1960, but in reality it began to expand in the 80s in the world of digital (electronic) automatic telephone exchanges.

With this method of transmission of signals to the control of the skin, a rich-frequency signal of the digit of the number is added up from two tones, in accordance with the recommendation Q.23 ITU-T "Technical features of telephones with keypad dialing".

DTMF frequencies are not matched. Tse means that the frequencies cannot be controlled by 1 whole dilnik. For example, frequencies of 1200 and 1600 Hz are harmonics of a frequency of 400 Hz (3x400 = 1200 and 4x400 = 1600), and frequencies of 697 and 770 Hz are inharmonious.

The skin signal contains two frequencies: one is selected from the lower, and the other - from the upper frequency group.

The frequency between the information that is being transmitted and the frequencies is indicated in the table on the front panel of the laboratory unit.

The transmission level for a dual-frequency signal, switching to a 600 ohm bias, should be: for the lower frequency group - minus 6 dBmO ± 2 dB, for the upper frequency group - minus 3 dBmO ± 2 dB. The frequency level of the upper group of frequencies in the total signal by 2 ± 1 dB outweighs the frequency level of the lower group. The total level of all frequency warehouses in the highest order is taken 20 dB lower than the level of the frequency of the lower group.

Think, for which the normal reception of signals is to blame, such as: the presence of a signal of two frequencies, one of them is selected from the lower group, and the other - from the upper one; frequencies are not subject to their nominal values ​​greater than 1.8%; The skin level of two frequencies lies at the boundary between minus 7 and minus 30 dBmO; the difference between equal two frequencies does not exceed 3 dB; frequency signal trivality is less than 40 ms.

Before notifying the installation, follow these steps:

Switch switch S6 in the lower position;

Switch S13 in the upper position;

Set the oscillators in the upper and lower frequency groups to the "Vimk." position;

The jumper of the analog key (AK) is installed at the position "Uv_mk.";

Turn the knobs for adjusting the output voltage of the generator and the resistor R3 to the opposite direction of the arrow until it stops.

Forming a dtmf signal

1.1 Enable installation.

1.2 Connect the oscilloscope to the control point KT3.

1.3 Turn on the generator of the upper group of frequencies, pressing one of the keys of the jumper will select whether it is from the frequencies of the group.

1.4 By turning the knob for adjusting the output voltage of the generator, set the amplitude of the signal to KT3, which is 0.5 Volt.

1.5 Switch the input of the oscilloscope to the control point KT4. Repeat steps 1.3, 1.4 for the generator of the lower frequency group by setting KT4 to a voltage of 0.5 V.

NOTE: As a result of the above operations, the input of the adder received signals of the upper and lower frequency groups equal in amplitude. After the installation of tsikh rivnіv knobs for regulating the output voltage fix the generators.

1.6 Switch the input of the oscilloscope to the control point KT7. By turning the knob of the resistor (R3) for adjusting the output voltage of the DTMF signal, set the voltage in KT7 to 0.5 Volt.

NOTE: as a result of the above operations, an uninterrupted two-tone signal was sent to the input of the receiver, with which the symbol is indicated on the indicator of the received symbol, which indicates the combination of generator frequencies in the upper and lower frequency groups, apparently up to the table. Indication of the received and recognized signal - the presence of the signal at the output STD of the receiver (illumination of the light diode).

      The switching frequencies of the upper and lower groups of frequencies are changed according to the type of combinations of these frequencies of symbols that are accepted.

Vіdminnі features:

  • Generation of sinusoidal signals with different pulse-width modulation (PWM)
  • Consolidation of various sinusoidal signals into one DTMF signal
  • Exterior code for mov assembler and C
  • Expanded for sleeper work with STK500
  • Program code size 260 bytes / constant table size 128 bytes
  • Matching the tabular conversion method

Entry

This document describes a technique for generating DTMF signals (dual-tone rich-frequency signals) from any AVR microcontroller that can replace the pulse-width modulation (PWM) block and static RAM. These signals are known to be widely used by telephony, de stinks are heard when pressing on the dialing buttons on the phone. For correct generation of a DTMF signal, it is necessary to overlay two frequencies: a low frequency (fb) and a high frequency (fa). Table 1 shows how different frequencies are changed for DTMF tones deselection when pressing different keys.

Figure 1 - Scheme of the DTMF signal generator

Table 1 - Tone Shaping Matrix

fb/fa 1209 Hz 1336 Hz 1477 Hz 1633 Hz
697 Hz 1 2 3 A
770 Hz 4 5 6 B
852 Hz 7 8 9 C
941 Hz * 0 # D

In the rows of the table, 1 shows the values ​​of the low frequency, and in the columns, the values ​​of the high frequency. For example, the matrix shows that when pressing on the "5" button, the frequencies fb = 770 Hz and fa = 1336 Hz are shifted. As a result of combining two sinusoidal signals at different frequencies, a DTMF signal is established

de change of amplitudes K=Ab /Aa weekend signals

Principle dії

Krim zagalnyh vіdomosti about vikoristannya pulse-width modulation, further will be shown how pulse-width modulation allows you to generate sinusoidal signals. In the offensive paragraph, it is described how, vicoristing the base frequency of the PWM is taken from the different frequencies. Following a review of the theoretical foundations, a description of the DTMF signal generator will be given. Generation of sinusoidal signals

Fallow in terms of high VH and low VL stress levels, the average value at the output SHIM changes. As a result, the constant balance of the VAV voltage is generated as a result. Tiny 2 shows the signal from pulse-width modulation.


Figure 2 - Generation of equal constant voltage

The value of the voltage is determined by the viraz:

(3)

A sinusoidal signal can be generated for the mind, that the average value of the voltage, which is generated by pulse-width modulation, will change the skin period of the PWM. Spivvіdnoshennia between high and low levels can be set at vіdpovіdnіst up to vіdnа sinusoidal signal voltage at vіdpovіdny hour. The whole process is illustrated on little 3. Expiration dates for WIM are calculated for the skin period and recorded in the conversion table (TP).

Figure 3 also illustrates the overlap between the frequency of the main sinusoidal signal and the number of vibrations. The greater the number of vibrations (Nc) - the greater the accuracy of modeling the resulting signal:

(4)

PWM frequency With an 8-bit expansion, the end value (top of the chart) of the timer is 0xFF (255). Because the timer counts down at the direct and reverse straight lines, then the given value may be subdued. Therefore, the PWM frequency can be calculated by the scale under the clock frequency of the timer f CK by 510. Thus, with a clock frequency of the timer of 8 MHz, the resulting PWM frequency is 15.6 kHz.


Figure 3 - Generation of a sinusoidal signal with PWM victories

Changing the frequency of a sinusoidal signal

It is acceptable that sinusoidal vibrations are read from the conversion tables not sequentially, but through one. In which case, at the same frequency of reading vibrations, a signal with a sub-frequency is generated (div. Fig. 4).


Figure 4 - Sub-frequency result (XSW = 2)

By analogy, it does not mean that the skin has a different meaning, but the skin of the third, fourth, five (for example, the width of the cut is 3, 4, 5 ...) and so on. you can generate Nc-frequencies in the range. Note that for high frequencies the resulting waveform will not be sinusoidal. The width of the crop according to the table of transformation is significant X SW, de

(5)

Calculation of the current position of the TP for the upcoming period of the PWM (when the timer is reordered) is counted for an additional variable (6). New value for position X LUT lie down in front of me in position X" LUT with the addition of the width of the crop X SW

(6)

Folding of frequencies for DTMF-signal rejection

DTMF-signal can be generated for additional viruses (1) and (2). For simplicity, the arithmetic value of the coefficient is taken equal to 0.75, so that the arithmetic function is replaced by logical failures. With the virase improvements (6), more precise values ​​for the PWM control can be calculated for the virase:

but for the improvement of what X LUTa=X" LUTa + X SWa ,X LUTb=X" LUTb + X SWb, we write the remainder

Implementation of a DTMF generator

This add-on shows the DTMF tone generator with a variable output of an 8-bit WIM (OC1A) and a table with 128 vials the value of the sinusoidal function (Nc), the skin of which shows 7 bits (n). Steps show how fallow, and also show how to calculate the elements of the transformation table:

(9)

The choice of 7 bits is those that the sum of the signal values ​​of high and low frequencies is less than one byte. To support a new set of DTMF tones, it is necessary to calculate 8 values ​​of the skin DTMF frequency from the table 1 and enter them in the conversion table.

In order to achieve greater high accuracy, the next solution was reached: values ​​calculated for virus 5 require a total of 5 bytes. For a variation of all 8 bytes, to allow for a change in the rounding error, the value is multiplied by 8. The index of the conversion table is recorded in the same way. Ale, in this way, two bytes are needed to memorize the 8-fold value. Tse means that it is necessary to add 3 right-handed calls and the operation of the module from the Nc substitution (logically multiplying by Nc-1) before the selection of these bytes as an indicator for the value of the sinusoid in


Figure 5 - Scheme of the module for connecting up to STK500

The PWM signal is formed on the output of OC1A (PD5). The additional output filter is more sensitive to the sinusoidal waveform. When the PWM frequency is changed, the need to stop the filter with a steep frequency response may be eliminated for a good result.

The connection of the keyboard is shown in figure 1. The operation of the keyboard is to be organized in such a way that it would be possible to assign a pressed button. Tse mozhe buti vikonano behind such an algorithm:

  1. Designated row of pressed keys
    • set the youngest one to port B to the exit and install the beam. "0"
    • configure the older one to send port B to the input with connected resistors that are being pulled.
    • a row with a pressed button is designated as a rank of a senior zoshita behind a beam. "0"
  2. Designation of the pressed key
    • configure the older one to send the port to the output and insert the log. "0"
    • set the youngest port to the input with the connection of pull-up resistors
    • a step with a pressed button is shown as a discharge of a young zoshit from a beam. "0"

Note: In STK200 resistors are connected in series between the outputs of the PORTB socket and the outputs of the microcontroller BP5, PB6 and PB7 (div. circuit STK200). This indicates the problem as the keyboard is connected to the PORTB jack.

Malyunok 6 illustrative work under the program of the assigned pressed key. If you press the button, the trivality of the interval is displayed. The procedure for converting the variable frequency value for calculating the PWM settings for two sinusoids in a DTM tone. The procedure for processing the reset is shown in Figures 7 and 8.

This procedure calculates the value for matching with the output of the PWM advance period timer. The conversion procedure is to sort through the column, calculate the position of the value of the next selection in the conversion table and read the value there.

The position of the selection in the conversion table is determined by the frequency of the pulse, and in the upper case, the frequency of the impulse is determined by the frequency that is generated.

The residual value, as it is written to the timer offset register, is assigned to the variation of the formula (7), deleting the values ​​of the vibrations of both DTMF frequencies.


Figure 6 - Block diagram of the main program

Vіdminnі features

  • Generation of sinusoidal signals with different pulse-width modulation (PWM)
  • Consolidation of various sinusoidal signals into one DTMF signal
  • Exterior code for mov assembler and C
  • Expanded for sleeper work with STK500
  • Program code size 260 bytes / constant table size 128 bytes
  • Matching the tabular conversion method

Entry

This document describes a technique for generating DTMF signals (dual-tone rich-frequency signals) from any AVR microcontroller that can replace the pulse-width modulation (PWM) block and static RAM. These signals are known to be widely used by telephony, de stinks are heard when pressing on the dialing buttons on the phone. For correct generation of a DTMF signal, it is necessary to overlay two frequencies: a low frequency (fb) and a high frequency (fa). Table 1 shows how different frequencies are changed for DTMF tones deselection when pressing different keys.


Figure 1. Scheme of the DTMF signal generator

Table 1. Tone Shaping Matrix

fb/fa 1209 Hz 1336 Hz 1477 Hz 1633 Hz
697 Hz 1 2 3 A
770 Hz 4 5 6 B
852 Hz 7 8 9 C
941 Hz * 0 # D

In the rows of the table, 1 shows the values ​​of the low frequency, and in the columns, the values ​​of the high frequency. For example, the matrix shows that when pressing on the "5" button, the frequencies fb = 770 Hz and fa = 1336 Hz are shifted. As a result of combining two sinusoidal signals at different frequencies, a DTMF signal is established

de change of amplitudes K=A b /A a

Principle dії

Krim zagalnyh vіdomosti about vikoristannya pulse-width modulation, further will be shown how pulse-width modulation allows you to generate sinusoidal signals. In the offensive paragraph, it is described how, vicoristing the base frequency of the PWM is taken from the different frequencies. Following a review of the theoretical foundations, a description of the DTMF signal generator will be given. Generation of sinusoidal signals

Fallow in terms of high VH and low VL stress levels, the average value at the output SHIM changes. As a result, the constant balance of the VAV voltage is generated as a result. Tiny 2 shows the signal from pulse-width modulation.


Figure 2. Generation of constant voltage

The value of the voltage is determined by the viraz:

(3)

A sinusoidal signal can be generated for the mind, that the average value of the voltage, which is generated by pulse-width modulation, will change the skin period of the PWM. Spivvіdnoshennia between high and low levels can be set at vіdpovіdnіst up to vіdnа sinusoidal signal voltage at vіdpovіdny hour. The whole process is illustrated on little 3. Expiration dates for WIM are calculated for the skin period and recorded in the conversion table (TP).

Figure 3 also illustrates the overlap between the frequency of the main sinusoidal signal and the number of vibrations. The greater the number of vibrations (Nc) - the greater the accuracy of modeling the resulting signal:

(4)

PWM frequency With an 8-bit expansion, the end value (top of the chart) of the timer is 0xFF (255). Because the timer counts down at the direct and reverse straight lines, then the given value may be subdued. Therefore, the PWM frequency can be calculated by the scale under the clock frequency of the timer f CK by 510. Thus, with a clock frequency of the timer of 8 MHz, the resulting PWM frequency is 15.6 kHz.


Malyunok 3. Generation of a sinusoidal signal with PWM switches

Changing the frequency of a sinusoidal signal

It is acceptable that sinusoidal vibrations are read from the conversion tables not sequentially, but through one. In which case, at the same frequency of reading vibrations, a signal with a sub-frequency is generated (div. Fig. 4).


Figure 4. Sub-half of the resulting frequency (XSW = 2)

By analogy, it does not mean that the skin has a different meaning, but the skin of the third, fourth, five (for example, the width of the cut is 3, 4, 5 ...) and so on. you can generate Nc-frequencies in the range. Note that for high frequencies the resulting waveform will not be sinusoidal. The width of the cut according to the table of transformations is significant as X SW de

(5)

Calculation of the current position of the TP for the upcoming period of the PWM (when the timer is reordered) is counted for an additional variable (6). The new value of the X LUT position will lie down in the front to the X position "LUT with the addition of the width of the X SW

(6)

Folding of frequencies for DTMF-signal rejection

DTMF-signal can be generated for additional viruses (1) and (2). For simplicity, the arithmetic value of the coefficient is taken equal to 0.75, so that the arithmetic function is replaced by logical failures. With the virase improvements (6), more precise values ​​for the PWM control can be calculated for the virase:

and for the sake of argument, X LUTa \u003d X "LUTa + X SWa, X LUTb \u003d X" LUTb + X SWb, we write down the rest

Implementation of a DTMF generator

This add-on shows the DTMF tone generator with a variable output of an 8-bit WIM (OC1A) and a table with 128 vials the value of the sinusoidal function (Nc), the skin of which shows 7 bits (n). Steps show how fallow, and also show how to calculate the elements of the transformation table:

(9)

The choice of 7 bits is those that the sum of the signal values ​​of high and low frequencies is less than one byte. To support a new set of DTMF tones, it is necessary to calculate 8 values ​​of the skin DTMF frequency from the table 1 and enter them in the conversion table.

In order to achieve greater high accuracy, the next solution was reached: values ​​calculated for virus 5 require a total of 5 bytes. For a variation of all 8 bytes, to allow for a change in the rounding error, the value is multiplied by 8. The index of the conversion table is recorded in the same way. Ale, in this way, two bytes are needed to memorize the 8-fold value. Tse means that it is necessary to add 3 right-handed calls and the operation of the module from the Nc substitution (logically multiplying by Nc-1) before the selection of these bytes as an indicator for the value of the sinusoid in


Figure 5. Module diagram for connecting up to STK500

The PWM signal is formed on the output of OC1A (PD5). The additional output filter is more sensitive to the sinusoidal waveform. When the PWM frequency is changed, the need to stop the filter with a steep frequency response may be eliminated for a good result.

The connection of the keyboard is shown in figure 1. The operation of the keyboard is to be organized in such a way that it would be possible to assign a pressed button. Tse mozhe buti vikonano behind such an algorithm:

  1. Designated row of pressed keys
    • set the youngest one to port B to the exit and install the beam. "0"
    • configure the older one to send port B to the input with connected resistors that are being pulled.
    • a row with a pressed button is designated as a rank of a senior zoshita behind a beam. "0"
  2. Designation of the pressed key
    • configure the older one to send the port to the output and insert the log. "0"
    • set the youngest port to the input with the connection of pull-up resistors
    • a step with a pressed button is shown as a discharge of a young zoshit from a beam. "0"

Note: In STK200 resistors are connected in series between the outputs of the PORTB socket and the outputs of the microcontroller BP5, PB6 and PB7 (div. circuit STK200). This indicates the problem as the keyboard is connected to the PORTB jack.

Malyunok 6 illustrative work under the program of the assigned pressed key. If you press the button, the trivality of the interval is displayed. The procedure for converting the variable frequency value for calculating the PWM settings for two sinusoids in a DTM tone. The procedure for processing the reset is shown in Figures 7 and 8.

This procedure calculates the value for matching with the output of the PWM advance period timer. The conversion procedure is to sort through the column, calculate the position of the value of the next selection in the conversion table and read the value there.

The position of the selection in the conversion table is determined by the frequency of the pulse, and in the upper case, the frequency of the impulse is determined by the frequency that is generated.

The residual value, as it is written to the timer offset register, is assigned to the variation of the formula (7), deleting the values ​​of the vibrations of both DTMF frequencies.


Figure 6. Block diagram of the main program


Figure 7. Flowchart of the timer reset procedure


Baby 8. Flowchart of the procedure for reading the GetSample sample

Publication: www.cxem.net

Marvel at other articles divided.

The topic of clumsy attachments was chosen by the DTMF signal generator on the same ATtiny2313. For those who don't know, DTMF (Dual-Tone Multi-Frequency) is a dual-tone, rich-frequency analog signal that is used to dial a telephone number. Read Wikipedia.

The decision to choose such an attachment was dictated by the people trying to sell folding analog signals for the help of a microcontroller. There were no plans for any practical construction for which outbuilding, but who could benefit from such an outbuilding? Koristiruetsya!

DTMF generator ID


Now let's see what's in us.

The signal is formed for the help of WIM and in order to send it to you, you will need a form to zastosovuetsya RC-lancet. As a result, after the RC-lancet, we receive the following signal (button 6 is pressed):

According to the entire curve of the coris signal, we can expect a comb of high frequency (the frequency is more sensitive, so you won’t make noise out of it) - the whole robot is an RC-lancet. You can make the line more smooth, increase the capacitance of the capacitor or opir of the resistor, and in this way, the range of the core signal will change significantly.

We marvel at the spectrum of the signal and switch over to the presence of two other frequencies (the frequency of the PWM went beyond the inter-region of the air), then, everything is fine - the application is practical as a requirement.

Ready solutions

For the tasks of generating and decoding a DTMF signal, there are prepared solutions. Axis of datasheet splicing on microcircuits.

DTMF generator
- DTMF decoder


P.S. It's a pity that in ATtiny2313 ADC - you can turn off the DTMF decoder! Ale nothing, I will repeat on the mezі obov'yazkovo priroby.

(Visited 6 868 times, 1 visits today)

© 2022 androidas.ru - All about Android