Patent ID: 12254238

MODE FOR INVENTION

FIG.1is a block diagram illustrating an electronic device101in a network environment100according to various embodiments. Referring toFIG.1, the electronic device101in the network environment100may communicate with at least one of an electronic device102via a first network198(e.g., a short-range wireless communication network), or an electronic device104or a server108via a second network199(e.g., a long-range wireless communication network). According to an embodiment, the electronic device101may communicate with the electronic device104via the server108. According to an embodiment, the electronic device101may include a processor120, memory130, an input module150, a sound output module155, a display module160, an audio module170, a sensor module176, an interface177, a connecting terminal178, a haptic module179, a camera module180, a power management module188, a battery189, a communication module190, a subscriber identification module (SIM)196, or an antenna module197. In some embodiments, at least one (e.g., the connecting terminal178) of the components may be omitted from the electronic device101, or one or more other components may be added in the electronic device101. According to an embodiment, some (e.g., the sensor module176, the camera module180, or the antenna module197) of the components may be integrated into a single component (e.g., the display module160).

The processor120may execute, for example, software (e.g., a program140) to control at least one other component (e.g., a hardware or software component) of the electronic device101coupled with the processor120, and may perform various data processing or computation. According to one embodiment, as at least part of the data processing or computation, the processor120may store a command or data received from another component (e.g., the sensor module176or the communication module190) in volatile memory132, process the command or the data stored in the volatile memory132, and store resulting data in non-volatile memory134. According to an embodiment, the processor120may include a main processor121(e.g., a central processing unit (CPU) or an application processor (AP)), or an auxiliary processor123(e.g., a graphics processing unit (GPU), a neural processing unit (NPU), an image signal processor (ISP), a sensor hub processor, or a communication processor (CP)) that is operable independently from, or in conjunction with, the main processor121. For example, when the electronic device101includes the main processor121and the auxiliary processor123, the auxiliary processor123may be configured to use lower power than the main processor121or to be specified for a designated function. The auxiliary processor123may be implemented as separate from, or as part of the main processor121.

The auxiliary processor123may control at least some of functions or states related to at least one component (e.g., the display module160, the sensor module176, or the communication module190) among the components of the electronic device101, instead of the main processor121while the main processor121is in an inactive (e.g., sleep) state, or together with the main processor121while the main processor121is in an active state (e.g., executing an application). According to an embodiment, the auxiliary processor123(e.g., an image signal processor or a communication processor) may be implemented as part of another component (e.g., the camera module180or the communication module190) functionally related to the auxiliary processor123. According to an embodiment, the auxiliary processor123(e.g., the neural processing unit) may include a hardware structure specified for artificial intelligence model processing. The artificial intelligence model may be generated via machine learning. Such learning may be performed, e.g., by the electronic device101where the artificial intelligence is performed or via a separate server (e.g., the server108). Learning algorithms may include, but are not limited to, e.g., supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning. The artificial intelligence model may include a plurality of artificial neural network layers. The artificial neural network may be a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), deep Q-network or a combination of two or more thereof but is not limited thereto. The artificial intelligence model may, additionally or alternatively, include a software structure other than the hardware structure.

The memory130may store various data used by at least one component (e.g., the processor120or the sensor module176) of the electronic device101. The various data may include, for example, software (e.g., the program140) and input data or output data for a command related thereto. The memory130may include the volatile memory132or the non-volatile memory134.

The program140may be stored in the memory130as software, and may include, for example, an operating system (OS)142, middleware144, or an application146.

The input module150may receive a command or data to be used by other component (e.g., the processor120) of the electronic device101, from the outside (e.g., a user) of the electronic device101. The input module150may include, for example, a microphone, a mouse, a keyboard, keys (e.g., buttons), or a digital pen (e.g., a stylus pen).

The sound output module155may output sound signals to the outside of the electronic device101. The sound output module155may include, for example, a speaker or a receiver. The speaker may be used for general purposes, such as playing multimedia or playing record. The receiver may be used for receiving incoming calls. According to an embodiment, the receiver may be implemented as separate from, or as part of the speaker.

The display module160may visually provide information to the outside (e.g., a user) of the electronic device101. The display160may include, for example, a display, a hologram device, or a projector and control circuitry to control a corresponding one of the display, hologram device, and projector. According to an embodiment, the display160may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of a force generated by the touch.

The audio module170may convert a sound into an electrical signal and vice versa. According to an embodiment, the audio module170may obtain the sound via the input module150, or output the sound via the sound output module155or a headphone of an external electronic device (e.g., an electronic device102) directly (e.g., wiredly) or wirelessly coupled with the electronic device101.

The sensor module176may detect an operational state (e.g., power or temperature) of the electronic device101or an environmental state (e.g., a state of a user) external to the electronic device101, and then generate an electrical signal or data value corresponding to the detected state. According to an embodiment, the sensor module176may include, for example, a gesture sensor, a gyro sensor, an atmospheric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an infrared (IR) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illuminance sensor.

The interface177may support one or more specified protocols to be used for the electronic device101to be coupled with the external electronic device (e.g., the electronic device102) directly (e.g., wiredly) or wirelessly. According to an embodiment, the interface177may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, a secure digital (SD) card interface, or an audio interface.

A connecting terminal178may include a connector via which the electronic device101may be physically connected with the external electronic device (e.g., the electronic device102). According to an embodiment, the connecting terminal178may include, for example, a HDMI connector, a USB connector, a SD card connector, or an audio connector (e.g., a headphone connector).

The haptic module179may convert an electrical signal into a mechanical stimulus (e.g., a vibration or motion) or electrical stimulus which may be recognized by a user via his tactile sensation or kinesthetic sensation. According to an embodiment, the haptic module179may include, for example, a motor, a piezoelectric element, or an electric stimulator.

The camera module180may capture a still image or moving images. According to an embodiment, the camera module180may include one or more lenses, image sensors, image signal processors, or flashes.

The power management module188may manage power supplied to the electronic device101. According to one embodiment, the power management module188may be implemented as at least part of, for example, a power management integrated circuit (PMIC).

The battery189may supply power to at least one component of the electronic device101. According to an embodiment, the battery189may include, for example, a primary cell which is not rechargeable, a secondary cell which is rechargeable, or a fuel cell.

The communication module190may support establishing a direct (e.g., wired) communication channel or a wireless communication channel between the electronic device101and the external electronic device (e.g., the electronic device102, the electronic device104, or the server108) and performing communication via the established communication channel. The communication module190may include one or more communication processors that are operable independently from the processor120(e.g., the application processor (AP)) and supports a direct (e.g., wired) communication or a wireless communication. According to an embodiment, the communication module190may include a wireless communication module192(e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module194(e.g., a local area network (LAN) communication module or a power line communication (PLC) module). A corresponding one of these communication modules may communicate with the external electronic device104via a first network198(e.g., a short-range communication network, such as Bluetooth™, wireless-fidelity (Wi-Fi) direct, or infrared data association (IrDA)) or a second network199(e.g., a long-range communication network, such as a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., local area network (LAN) or wide area network (WAN)). These various types of communication modules may be implemented as a single component (e.g., a single chip), or may be implemented as multi components (e.g., multi chips) separate from each other. The wireless communication module192may identify or authenticate the electronic device101in a communication network, such as the first network198or the second network199, using subscriber information (e.g., international mobile subscriber identity (IMSI)) stored in the subscriber identification module196.

The wireless communication module192may support a 5G network, after a 4G network, and next-generation communication technology, e.g., new radio (NR) access technology. The NR access technology may support enhanced mobile broadband (eMBB), massive machine type communications (mMTC), or ultra-reliable and low-latency communications (URLLC). The wireless communication module192may support a high-frequency band (e.g., the mmWave band) to achieve, e.g., a high data transmission rate. The wireless communication module192may support various technologies for securing performance on a high-frequency band, such as, e.g., beamforming, massive multiple-input and multiple-output (massive MIMO), full dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large scale antenna. The wireless communication module192may support various requirements specified in the electronic device101, an external electronic device (e.g., the electronic device104), or a network system (e.g., the second network199). According to an embodiment, the wireless communication module192may support a peak data rate (e.g., 20 Gbps or more) for implementing eMBB, loss coverage (e.g., 164 dB or less) for implementing mMTC, or U-plane latency (e.g., 0.5 ms or less for each of downlink (DL) and uplink (UL), or a round trip of Ims or less) for implementing URLLC.

The antenna module197may transmit or receive a signal or power to or from the outside (e.g., the external electronic device). According to an embodiment, the antenna module197may include one antenna including a radiator formed of a conductor or conductive pattern formed on a substrate (e.g., a printed circuit board (PCB)). According to an embodiment, the antenna module197may include a plurality of antennas (e.g., an antenna array). In this case, at least one antenna appropriate for a communication scheme used in a communication network, such as the first network198or the second network199, may be selected from the plurality of antennas by, e.g., the communication module190. The signal or the power may then be transmitted or received between the communication module190and the external electronic device via the selected at least one antenna. According to an embodiment, other parts (e.g., radio frequency integrated circuit (RFIC)) than the radiator may be further formed as part of the antenna module197.

According to various embodiments, the antenna module197may form a mmWave antenna module. According to an embodiment, the mmWave antenna module may include a printed circuit board, a RFIC disposed on a first surface (e.g., the bottom surface) of the printed circuit board, or adjacent to the first surface and capable of supporting a designated high-frequency band (e.g., the mmWave band), and a plurality of antennas (e.g., array antennas) disposed on a second surface (e.g., the top or a side surface) of the printed circuit board, or adjacent to the second surface and capable of transmitting or receiving signals of the designated high-frequency band.

At least some of the above-described components may be coupled mutually and communicate signals (e.g., commands or data) therebetween via an inter-peripheral communication scheme (e.g., a bus, general purpose input and output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)).

According to an embodiment, commands or data may be transmitted or received between the electronic device101and the external electronic device104via the server108coupled with the second network199. The external electronic devices102or104each may be a device of the same or a different type from the electronic device101. According to an embodiment, all or some of operations to be executed at the electronic device101may be executed at one or more of the external electronic devices102,104, or108. For example, if the electronic device101should perform a function or a service automatically, or in response to a request from a user or another device, the electronic device101, instead of, or in addition to, executing the function or the service, may request the one or more external electronic devices to perform at least part of the function or the service. The one or more external electronic devices receiving the request may perform the at least part of the function or the service requested, or an additional function or an additional service related to the request, and transfer an outcome of the performing to the electronic device101. The electronic device101may provide the outcome, with or without further processing of the outcome, as at least part of a reply to the request. To that end, a cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used, for example. The electronic device101may provide ultra low-latency services using, e.g., distributed computing or mobile edge computing. In another embodiment, the external electronic device104may include an Internet-of-things (IoT) device. The server108may be an intelligent server using machine learning and/or a neural network. According to an embodiment, the external electronic device104or the server108may be included in the second network199. The electronic device101may be applied to intelligent services (e.g., smart home, smart city, smart car, or health-care) based on 5G communication technology or IoT-related technology.

The electronic device according to various embodiments of the disclosure may be one of various types of electronic devices. The electronic devices may include, for example, a portable communication device (e.g., a smart phone), a computer device, a portable multimedia device, a portable medical device, a camera, an electronic device, or a home appliance. According to an embodiment of the disclosure, the electronic devices are not limited to those described above.

It should be appreciated that various embodiments of the present disclosure and the terms used therein are not intended to limit the technological features set forth herein to particular embodiments and include various changes, equivalents, or replacements for a corresponding embodiment. With regard to the description of the drawings, similar reference numerals may be used to refer to similar or related elements. It is to be understood that a singular form of a noun corresponding to an item may include one or more of the things, unless the relevant context clearly indicates otherwise. As used herein, each of such phrases as “A or B,” “at least one of A and B,” “at least one of A or B,” “A, B, or C,” “at least one of A, B, and C,” and “at least one of A, B, or C,” may include all possible combinations of the items enumerated together in a corresponding one of the phrases. As used herein, such terms as “1st” and “2nd,” or “first” and “second” may be used to simply distinguish a corresponding component from another, and does not limit the components in other aspect (e.g., importance or order). It is to be understood that if an element (e.g., a first element) is referred to, with or without the term “operatively” or “communicatively”, as “coupled with,” “coupled to,” “connected with,” or “connected to” another element (e.g., a second element), it means that the element may be coupled with the other element directly (e.g., wiredly), wirelessly, or via a third element.

As used herein, the term “module” may include a unit implemented in hardware, software, or firmware, and may interchangeably be used with other terms, for example, “logic,” “logic block,” “part,” or “circuitry”. A module may be a single integral component, or a minimum unit or part thereof, adapted to perform one or more functions. For example, according to an embodiment, the module may be implemented in a form of an application-specific integrated circuit (ASIC).

Various embodiments as set forth herein may be implemented as software (e.g., the program140) including one or more instructions that are stored in a storage medium (e.g., internal memory136or external memory138) that is readable by a machine (e.g., the electronic device101). For example, a processor (e.g., the processor120) of the machine (e.g., the electronic device101) may invoke at least one of the one or more instructions stored in the storage medium, and execute it, with or without using one or more other components under the control of the processor. This allows the machine to be operated to perform at least one function according to the at least one instruction invoked. The one or more instructions may include a code generated by a complier or a code executable by an interpreter. The machine-readable storage medium may be provided in the form of a non-transitory storage medium. Wherein, the term “non-transitory” simply means that the storage medium is a tangible device, and does not include a signal (e.g., an electromagnetic wave), but this term does not differentiate between where data is semi-permanently stored in the storage medium and where the data is temporarily stored in the storage medium.

According to an embodiment, a method according to various embodiments of the disclosure may be included and provided in a computer program product. The computer program products may be traded as commodities between sellers and buyers. The computer program product may be distributed in the form of a machine-readable storage medium (e.g., compact disc read only memory (CD-ROM)), or be distributed (e.g., downloaded or uploaded) online via an application store (e.g., Play Store™), or between two user devices (e.g., smart phones) directly. If distributed online, at least part of the computer program product may be temporarily generated or at least temporarily stored in the machine-readable storage medium, such as memory of the manufacturer's server, a server of the application store, or a relay server.

According to various embodiments, each component (e.g., a module or a program) of the above-described components may include a single entity or multiple entities. Some of the plurality of entities may be separately disposed in different components. According to various embodiments, one or more of the above-described components may be omitted, or one or more other components may be added. Alternatively or additionally, a plurality of components (e.g., modules or programs) may be integrated into a single component. In such a case, according to various embodiments, the integrated component may still perform one or more functions of each of the plurality of components in the same or similar manner as they are performed by a corresponding one of the plurality of components before the integration. According to various embodiments, operations performed by the module, the program, or another component may be carried out sequentially, in parallel, repeatedly, or heuristically, or one or more of the operations may be executed in a different order or omitted, or one or more other operations may be added.

Hereinafter, an example of an operation of an electronic device200(e.g., the electronic device101ofFIG.1) according to various embodiments is described with reference toFIG.2.

FIG.2is a view illustrating an example of an operation of providing vibration using a vibration device220based on a plurality of data of an electronic device200(e.g., a processor210) according to various embodiments.

According to various embodiments, the electronic device200(e.g., the processor210) may obtain a plurality of data (e.g., first data and second data) for providing vibration to the user as shown inFIG.2. For example, the plurality of data (e.g., first data and second data) are data used to generate vibration in the vibration device220IC for driving the vibration device220, and may be defined as a haptic source (S). For example, the haptic source (S) may include various types of data signals and, as described below, may include data of a type that may be transmitted through an I2C bus and/or an integrated interchip sound (I2S) bus. For example, the haptic source (S) may include index data to be described below, transferred through an I2C bus. The index data may include an index (or value) for indicating a vibration of a specific characteristic (e.g., a specific pattern or a specific magnitude). As is described below, information for generating a vibration of a specific characteristic (e.g., magnitude and/or pattern) for each of a plurality of values that may be included in the index data may be previously stored in a vibration device IC (e.g., the vibration device IC330ofFIG.3). Accordingly, the vibration of the specific characteristic corresponding to the value included in the index data may be generated in the vibration device IC. As another example, the haptic source (S) may include A2H data and/or ACH data to be described below, transferred through an I2S bus. The A2H data and/or the ACH data may include, for example, audio data (e.g., PCM data). Meanwhile, the data received through the I2C bus and the data received through the I2S bus are not limited to the described examples, but may further include various types of data signals for driving the vibration device220. For example, the data of the type transmittable through the I2S bus may further include other types of data, e.g., image data, which may be obtained based on other types of content, such as image data, than the audio data (e.g., PCM data).

According to various embodiments, when a plurality of haptic sources (S) are obtained, the electronic device200(e.g., processor210) may select specific data for generating vibration from among the plurality of haptic sources (S), and this is described below.

Hereinafter, examples of a configuration of the electronic device200according to various embodiments are described.

FIG.3is a view illustrating an example of a configuration of an electronic device200according to various embodiments.FIG.3is described below with reference toFIGS.4A,4B,5, and6.

FIG.4Ais a view illustrating an example of a processor350and a vibration device IC330connected via different communication interfaces (e.g., I2C bus401and I2S bus402) according to various embodiments.FIG.4Bis a view illustrating an example of a selection circuit of a vibration device IC330according to various embodiments.FIG.5is a view illustrating an example of an operation of transferring a haptic source to a vibration device IC330through different communication interfaces (e.g., I2C bus401and I2S bus402) using a vibration device driver374of a processor350according to various embodiments.FIG.6is a view illustrating an example of a softwarewise configuration of an electronic device200according to various embodiments.

According to various embodiments, an electronic device200may include a vibration device310, a vibration device IC330, a media device320, a media device IC340, a processor350, and a memory360including a plurality of modules300(e.g., a priority determination module373, a vibration data acquisition module371, a media data acquisition module372, and a vibration device driver374). Meanwhile, without being limited to the components illustrated inFIG.4A, the electronic device200may be implemented to include more or fewer components. For example, the electronic device200may be implemented to further include components of the electronic device101described with reference toFIG.1. Hereinafter, an example of a configuration of the electronic device200according to various embodiments is described.

First, examples of the vibration device310and the media device320according to various embodiments are described.

According to various embodiments, the vibration device310may generate vibration under the control of the vibration device IC330. For example, the vibration device310may include a motor (not shown) and a rotation weight (not shown) connected to the rotation shaft of the motor. As the motor (not shown) is driven based, at least in part, on data (e.g., pulse-width modulation (PWM) data) received from the vibration device IC330, the rotation weight may be rotated about the rotation shaft of the motor (not shown), and the vibration may be generated from the vibration device310by rotation of the rotation weight. The generated vibration may lead the electronic device200including the vibration device310to vibrate. Accordingly, the user may receive a sense of vibration through the electronic device200. Meanwhile, since it is well known that the vibration device310may be implemented in various examples without limited to the described example, a more detailed description will be omitted.

According to various embodiments, the media device320may be defined as devices implemented to provide various types of media content. The media content may include various types of content, such as visual content, auditory content, and tactile content. For example, as shown inFIG.3, the media device320may include an audio device321for providing auditory content but, without limited thereto, may further include types of devices for providing various types of content, such as a display.

An example of the vibration device IC330is described below according to various embodiments.

According to various embodiments, the vibration device IC330may include a processing circuit410implemented (or configured) to process the plurality of data received from the processor350to generate control data for driving the vibration device310, a plurality of terminals420,430, and440, a control circuit (not shown), and a memory (not shown) as shown inFIG.4A. The processing circuit410memory a digital signal processing (DSP) circuit, a circuit corresponding to a specific coder (e.g., codec or decodec), and/or an amp circuit for converting input data into data (e.g., PWM data) for generating vibration. Meanwhile, without limited thereto, the data for generating vibration may further include at least one of serial data (SDA) or open wave table (OWT) data. Referring toFIG.4B, the processing circuit410may include a plurality of processing circuits (e.g., a first processing circuit410a, a second processing circuit410b, and a third processing circuit410c) for processing different data. The memory (not shown) may store a program (e.g., firmware and/or software) for overall controlling the vibration device IC330. When the firmware is executed, the control circuit (not shown) of the vibration device IC330can select data corresponding to the received HS value, described below, from among the plurality of data (e.g., index data, A2H data, and ACH data described below) received by the vibration device IC330and/or process the data (e.g., index data, A2H data, and ACH data described below) selected by the vibration device IC330, using the processing circuit410to thereby generate the data (e.g., PWM data) for driving the vibration device310. Meanwhile, without limited thereto, the data for generating vibration may further include at least one of SDA or OWT data. Meanwhile, without limited thereto, as shown inFIG.4B, the vibration device IC330may further include a hardware selection circuit450for selecting data from among the plurality of data (e.g., index data, A2H data, and ACH data described below) received from the processor350, but not limited thereto.

According to various embodiments, the plurality of terminals420,430, and440may include terminals420and430for connection to a plurality of communication interfaces401and402connected to the processor350and terminals440connected to the vibration device310. For example, referring toFIG.4A, the plurality of communication interfaces401and402may include a plurality of buses (e.g., an I2C bus401and an I2S bus402). The plurality of terminals may include the I2C terminals421and422connected to the I2C buses401aand401band the I2S terminals431,432, and433connected to the I2S buses402a,402b, and402c. Accordingly, the vibration device IC330may be connected to the processor350via the I2C bus401connected to the I2C terminals421and422and the I2S bus402connected to the I2S terminals431,432and433. Further, the plurality of terminals may include output terminals441and442connected to the vibration device310. Data (e.g., PCM data) for driving the vibration device310may be transferred through the output terminal.

The I2C bus401, for example, may be a serial bus for data transmission and/or data reception between the processor350and other electronic components (e.g., the vibration device IC330) in the electronic device200. The I2C bus401may include two transmission lines401aand401b, e.g., a serial clock line (SCL) and a serial data line (SDA). A clock signal for synchronization may be output from the processor350to electronic components through the SCL. Data (e.g., SDA data) may be transmitted and/or received between the processor350and the electronic component through the SDA line at the time corresponding to the clock signal. For example, the index data and/or HS value may be transferred from the processor350to the vibration device IC330through the I2C bus401.

The I2S bus402may be a serial bus for other types of data and/or additional types of data compared to the data transmitted on the I2C bus401. The I2S bus402, for example, may be a serial bus for audio data transmission and/or audio data reception between the processor350and other electronic components (e.g., the vibration device IC330) in the electronic device200, or for image data transmission and/or image data reception between the processor350and other electronic components (e.g., the vibration device IC330) in the electronic device200. The audio data may, for example, include PCM data indicative of an audio haptic source. The I2S bus402may include three transmission lines402a,402b, and402c, e.g., a serial clock SCK, a word select WS, and an SDA. A clock signal for synchronization may be output from the processor350to electronic components through the SCK. A word selection signal may be transmitted to the processor350and electronic components through the WS. Audio data may be transmitted from the processor350to the electronic components through the SD. In this case, the transmission may be unidirectional. For example, A2H data and/or ACH data may be transferred from the processor350to the vibration device IC330through the I2S bus402.

Meanwhile, the type of data transferred through the I2C bus401and the type of data transferred through the I2C bus402may be different from each other.

According to various embodiments, the selection circuit450may include a 1-in 2-out multiplexer (MUX). For example, the input terminal of the multiplexer may be connected to the I2S terminal430, and each of the two output terminals may be connected to a different processing circuit (e.g., the second processing circuit410band the third processing circuit430b). In this case, the I2C terminal420may be connected to the other first processing circuit410a. Meanwhile, without limited to those described and/or shown, at least some of the processing circuits (e.g., the first processing circuit410a, the second processing circuit420a, and the third processing circuit430a) connected to the I2C terminal420and the output terminals of the multiplexer may be implemented as the same processing circuit.

For example, the vibration device IC330(e.g., a control circuit (not shown)) may deactivate (e.g., HS=0) the multiplexer or electrically connect (HS=1 and HS=2) the input terminal with a specific processing circuit based on the value HS for selecting the haptic source received through the I2C bus401as shown in Table 1 below.

TABLE 1Received value (HS)Multiplexer control operation0deactivate multiplexer1connect first output terminal2connect second output terminal

Accordingly, when the HS value is 0, the vibration device IC330may process the first data (e.g., vibration data described below) received through the I2C terminal420, using the first processing circuit410a, thereby obtaining data (e.g., PWM) for driving the vibration device310. Accordingly, when the HS value is 1, the vibration device IC330may process the second data (e.g., ACH data described below) received through the I2S terminal430, using the second processing circuit410b, thereby obtaining data (e.g., PWM) for driving the vibration device310. Accordingly, when the HS value is 2, the vibration device IC330may process the third data (e.g., A2H data described below) received through the I2S terminal430, using the third processing circuit410c, thereby obtaining data (e.g., PWM) for driving the vibration device310. Accordingly, specific data may be selected, as the data for generating vibration, from among the plurality of data (e.g., first data, second data, and third data) transferred through the I2C bus401and the I2S bus402to the vibration device IC330, based on the value HS for selecting the haptic source. Meanwhile, a 1 in 2 out multiplexer has been exemplified as the selection circuit but, without limitations thereto, various types of electronic components may be implemented as the selection circuit450. For example, the selection circuit may be implemented as a 2 in 1 out multiplexer, so that two input terminals of the multiplexer may be implemented to be connected to the I2C terminal420and the I2S terminal430, respectively. Accordingly, when the HS value is 0, the input terminal and output terminal connected to the I2C terminal420may be electrically connected so that the index data received through the I2C terminal420is output through the output terminal of the multiplexer and, when the HS value is 1 or 2, the input terminal and output terminal connected to the I2S terminal430are electrically connected so that the A2H data and/or ACH data received through the I2S terminal430may be output through the output terminal of the multiplexer. Or, instead of the selection circuit450, the program (e.g., firmware) implemented on the vibration device IC330may be softwarewise implemented to include the function of selecting specific data from among the plurality of data transferred to the vibration device IC330based on the HS value, as described above.

According to various embodiments, the vibration device IC330may control the vibration device310to generate vibration using the processing circuit410. For example, as described above, the vibration device IC330may generate (or obtain) data (e.g., PWM data) for controlling the vibration device310of the vibration device IC330based on processing, using the processing circuit410, the specific data selected from among the plurality of data received from the processor350through the plurality of communication interfaces (e.g., the I2C bus401and the I2S bus402), based on the program (e.g., firmware) stored in the memory (not shown). The firmware of the vibration device IC330may be executed when the electronic device200is booted (or turned on). In an embodiment, when the index data received through the I2C bus401is selected, the vibration device IC330may generate data (e.g., PWM data) for generation of vibration based on a value included in the index data. For example, the value included in the index data is information representing a vibration of a specific pattern (e.g., magnitude, pattern), and the memory (not shown) of the vibration device IC330may previously store (or define) information for generating the vibration of the specific characteristic (e.g., magnitude or pattern) for each of the plurality of values that may be included in the index data. The vibration device IC330may obtain information for generating the vibration of the specific characteristic corresponding to the value included in the index data among the pre-stored information and use the processing circuit based on the obtained information, thereby generating data (e.g., PWM data) for providing the vibration of the specific characteristic. In another embodiment, when the ACH data or A2H data received through the I2S bus402is selected, the vibration device IC330may generate the data (e.g., PWM data) for generating the vibration corresponding to the value (or waveform) of the ACH data or A2H data (e.g., PCM data). The generated data (e.g., PWM data) for generating vibration may be implemented to provide the vibration of the characteristic corresponding to the value (or waveform) of the ACH data or A2H data (e.g., PCM data). The vibration device IC330may generate vibration by driving the vibration device310(e.g., motor (not shown)) based on the generated data (e.g., PWM data) for generating vibration. For example, the vibration device IC330may transfer the generated data (e.g., PWM data) for generating vibration through the output terminal440connected to the vibration device310, and the vibration device310(e.g., motor) may be driven based on the received data (e.g., PWM data). Meanwhile, without limited thereto, the data for generating vibration may further include at least one of SDA or OWT data.

An example of the media device IC340is described below according to various embodiments.

According to various embodiments, the media device IC340may be implemented to control the media device320(e.g., the audio device321). For example, the media device IC340may include an audio device IC341for controlling the audio device321but, without limitations thereto, may further include a media device IC340for controlling various types of media devices320for providing various types of content, such as a display device. For example, the media device IC340may drive the media device320(e.g., the audio device321) based on media data (e.g., A2H data and ACH data described below) received from the processor350. Since the technology for controlling the media device320of the media device IC340is well known, a detailed description thereof will be omitted.

Hereinafter, examples of the processor350and the programs (e.g., the modules300, and the driver) executed by the processor350are described according to various embodiments.

According to various embodiments, the second processor350may include at least one of an application processor (AP), a central processing unit (CPU), a graphic processing unit (GPU), a display processing unit (DPU), or a neural processing unit (NPU).

According to various embodiments, modules300implemented (or stored) in the electronic device200(e.g., priority determination module373, vibration data acquisition module371, media data acquisition module372, and vibration device driver374) may be implemented in the form of an application, a program, computer code, instructions, a routine, a process, software, firmware, or a combination of at least two or more thereof, executable by the processor350. For example, the modules300may be implemented as at least a portion of the program140ofFIG.1(or may correspond to the program140ofFIG.1). For example, when the modules300(e.g., priority determination module373, vibration data acquisition module371, media data acquisition module372, and vibration device driver374) are executed, the processor350may perform an operation corresponding to each. Therefore, when it is described below that a specific module performs an operation, it may be understood as the processor350performing the operation corresponding to the specific module as the specific module is executed. Meanwhile, as is described below inFIG.5, at least some of the modules300(e.g., priority determination module373, vibration data acquisition module371, media data acquisition module372, and vibration device driver374) may include a plurality of programs, but not limited thereto. For example, at least some of the modules300(e.g., priority determination module373, vibration data acquisition module371, media data acquisition module372, and vibration device driver374) may be implemented in the form of hardware (e.g., the processing circuit410).

According to various embodiments, the vibration data acquisition module371may be implemented to obtain first data for generating vibration when an event for providing vibration occurs in the electronic device200. Further, the vibration data acquisition module371may be implemented to control the processor350to transfer the first data to the vibration device IC330through the I2C bus401. For example, the event (hereinafter, vibration event) may be an event for generating a preset vibration in the electronic device200, and may be an event implemented to generate a vibration having a specific characteristic (e.g., specific magnitude or specific pattern). The pattern may indicate the magnitude of vibration according to time. Although not shown, information about the vibration event may be managed in a module (not shown) (e.g., a window manager) for managing the event. Meanwhile, without limited to those described and/or shown, the vibration event may indicate a state in which an audio event is not generated. For example, the first data may be index data to be described below. For example, the vibration data acquisition module371may correspond to the generated vibration event and obtain the index data for generating (or indicating or corresponding to) the vibration having the specific characteristic (e.g., specific magnitude or specific pattern) based on at least one of the value indicating a preset vibration magnitude or the value indicating a vibration effect. For example, the index data may include the value for generating (or indicating or corresponding to) the vibration having a specific characteristic (e.g., specific magnitude or specific pattern). Information for generating the vibration of the specific characteristic corresponding to each of the plurality of values included in the index data may be pre-stored (or pre-defined) in the vibration device IC330. As a result, the vibration of the characteristic corresponding to the value included in the index data may be generated by the vibration device IC330. The term “index data” is one merely for convenience of description and, without limited to those described, may be understood as various terms (e.g., SDA data). Specifically, referring toFIG.6, the vibration data module may include a vibrator service module611, a vibrator HAL (hardware abstraction layer) module612, and an InputFF (force feedback) driver613. For example, the vibrator service module611may obtain at least one of the value indicating the magnitude of vibration or the value indicating the effect of vibration based on at least one function (e.g., API) based on the occurrence of a vibration event associated with the application (e.g., notification application or phone application). The vibrator HAL module612may transfer at least one of the obtained value indicating the vibration magnitude and the value indicating the vibration effect to the InputFF driver613implemented in the kernel (e.g., Linux kernel). The InputFF driver613may obtain first data (e.g., index) for generating (or indicating or representing or corresponding to) the vibration of a specific magnitude and specific pattern based on the value indicating the value indicating the vibration magnitude or value indicating the vibration effect and transfer the first data to the vibration device driver374to allow the processor350to transfer the obtained first data to the vibration device driver374through the I2C bus401.

According to various embodiments, the media data acquisition module372(e.g., audio data acquisition module500) may be implemented to obtain data (e.g., second data and third data) for generating vibration when an event (hereinafter, audio data) for providing (or playing or outputting) media content (e.g., audio) occurs in the electronic device200. Further, the media data acquisition module372(e.g., audio data acquisition module500) may be implemented to control the processor350to transfer data (e.g., second data and third data) to the vibration device IC330through the12S bus402. Further, the media data acquisition module372(e.g., audio data acquisition module500) may be implemented to provide a mixer control function.

For example, the second data may include ACH data to be described below, and the third data may include A2H data. For example, as described below in Table 2, information about a specific function (or method or scheme) (e.g., an audio to haptics (A2H) function or an audio coupled haptics (ACH) function) for providing vibration for each audio event for outputting (or providing) audio may be previously stored in the electronic device200. The audio data acquisition module500may obtain data (e.g., ACH data and A2H data) for providing vibration for each generated audio event, based on the pre-stored information described in Table 2. The audio events may be generated based on the execution of an application.

TABLE 2EventOperatingcategoryAudio eventA2H/ACHconditions (profile)RemarksNotificationsRingtoneACHSound/Vibration/Output of vibration(Default ringtone)Mute modepattern synchronizedwith ring toneMessage AlertACHSound/Vibration/Vibration pattern output(Default noti.)Mute modesynchronized with basicnotification soundE-mail alertACHfollows app settingsVibration pattern outputsynchronized withemail notification soundCalendar scheduleACHfollows app settingsVibration pattern outputalertsynchronized withschedule notificationsoundCalendar scheduleACHfollows app settingsVibration pattern outputalarmsynchronized withschedule alarmReminder noti.ACHfollows app settingsVibration pattern outputsynchronized withnotification soundReminder alarmACHfollows app settingsVibration pattern outputsynchronized withreminder alarmTimerACHfollows app settingsVibration pattern outputsynchronized with timeralarm soundAlarmACHfollows app settingsVibration pattern outputsynchronized withalarm soundSystemScreen CaptureACHSound/Vibration/Capture sound +Mute modecapture vibrationsynchronized outputBooting soundACHSound/Vibration/Vibration synchronizedMute modeoutput when bootanimation sound sourceis appliedPower offACHSound/Vibration/Vibration synchronizedMute modeoutput when power offanimation is appliedUnlock_VA_ModeACHSound/Vibration/Screen unlock sound +Mute modevibration synchronizedoutputMediaGamingA2HSound/Vibration/Applies game-onlyMute modeA2H solutionMusicA2HSound/Vibration/Vibe woofer conceptMute mode(vibration woofer)VideoA2HSound/Vibration/Vibration pattern outputplayer(Gallery)Mute modesynchronized withvideo soundcompositecompositeA2H/Sound/Vibration/Notification (ACH)operationoperationACHMute modeoutput during mediaoperation (A2H)

For example, the A2H function may be a function for obtaining audio data (e.g., PCM data) for outputting audio from an audio file (e.g., a wave file) and providing vibration based on audio data (e.g., PCM data). For convenience of description, the obtained audio data (e.g., PCM data) may be defined as A2H data. As another example, the ACH function may be a function for obtaining haptic data (e.g., second PCM data) for providing vibration, included separately from audio data (e.g., first PCM data) for outputting audio in an audio file (e.g., an OGG file) and providing vibration based on the obtained haptic data. For convenience of description, the haptic data (e.g., second PCM data) may be defined as ACH data. The audio data and haptic data included in the file implemented to provide the ACH function may include different values for each time period. For example, in a case where the value of a specific time period corresponding to the audio data in the OGG file is 0 so that a sound is not provided in the specific time period, the value of the haptic data in the OGG file exists, so that vibration may be provided in the specific time period. According to various embodiments, the type of the audio file for audio output (or playback or provision) obtained for each function (e.g., A2H function, and ACH function) corresponding to an audio event may be changed. For example, when an event corresponding to the A2H function occurs, an audio file (e.g., a wave file) in a format including audio data (e.g., PCM data) may be obtained. As another example, when an event corresponding to the ACH function occurs, an audio file (e.g., an OGG file) in a format including the haptic data (e.g., PCM data) for providing vibration, as well as the audio data (e.g., PCM data) for audio output, may be obtained.

According to various embodiments, as set forth in Table 2, if a specific audio event occurs, the audio data acquisition module500may obtain data (e.g., PCM data) for providing vibration according to the A2H function and/or ACH function corresponding to the specific audio event. In an embodiment, when an audio event corresponding to the ACH function occurs, the first audio data acquisition module510amay obtain the haptic data (e.g., PCM data), as the ACH data, for providing vibration (or from the data having the extension of the haptic data of the audio file and/or the haptic channel or data area of the audio file including the haptic data), included in the audio file, based on analyzing the audio file (e.g., an OGG file) (e.g., metadata parsing). Further, in an embodiment, when an audio event corresponding to the A2H function occurs, the second audio data acquisition module510bmay obtain the audio data (e.g., PCM data), as the A2H data, for providing audio (or from the audio channel and/or data area of the audio file including the audio data), included in the audio file, based on analyzing the audio file (e.g., wave file) (e.g., metadata parsing).

Meanwhile, although not shown, the audio data acquisition module500may obtain the audio data obtained from the audio file and may be implemented to control the processor350to transfer the audio data to the audio device IC341. For example, the audio data acquisition module500may transfer the audio data obtained from the audio file to the audio device321driver, and the audio device321driver may control the processor350to transfer the audio data to the audio device IC341via a specific communication interface. Accordingly, audio may be output by the audio device321while vibration is simultaneously generated by the vibration device310based on the audio file.

Specifically, referring toFIG.6, the audio data acquisition module500may include an audio service module621, an audio HAL module622, a tiny Alsa module623, and an Alsa driver624(or advanced Linux sound architecture for SOC (ALSA/ASOC) driver). For example, the audio service module may obtain an audio file (e.g., audio file including PCM data) of the type corresponding to the audio event based on at least one function (e.g., API) based on the occurrence of the audio event associated with an application (e.g., notification application or phone application). The audio service module621may obtain the second data (e.g., ACH data) and/or third data (e.g., A2H data) from the audio file according to the function (e.g., A2H function and/or ACH function) corresponding to the occurrence of the generated audio event. The audio HAL module622may obtain the data (e.g., A2H data, and/or ACH data) and transfer it to the tiny Alsa module623implemented in the kernel (e.g., Linux kernel). The tiny Alsa module623may transfer the data (e.g., A2H data, and/or ACH data) to the Alsa driver624. Meanwhile, the tiny Alsa module623may receive a value (e.g., HS value) for determining a haptic source from the priority determination module373to be described below and may transfer the obtained value (e.g., HS value) together with data (e.g., A2H data, and/or ACH data) to the Alsa driver624. The Alsa driver624may transfer the HS value to the vibration device driver374to control the processor350to transfer the obtained data (e.g., A2H data and/or ACH data) to the vibration device IC330through the I2S bus402. Meanwhile, the Alsa driver624may transfer the HS value to the vibration device driver374so that the processor350transfers the obtained HS value to the vibration device IC330through the I2C bus401.

Meanwhile, at least a portion of the vibration data acquisition module371may communicate with (e.g., read and/or write data) at least a portion of the audio data acquisition module500. For example, the vibrator service module611and the audio service module621may communicate with each other. Accordingly, the audio data acquisition module500may set the HS value to 0 based on information indicating the generation of the vibration event received from the vibration data acquisition module371.

Although the audio data acquisition module500has been exemplified, the described example may also be applied to description of modules (e.g., an image data module) for providing other types of content (e.g., image content) other than the audio data acquisition module500. For example, the image data module may be implemented to control to obtain haptic data for providing vibration based on an image file for providing image content and transfer the obtained data to the vibration device IC330through a specific communication interface.

According to various embodiments, the priority determination module373may be implemented to control the vibration device IC330to transfer, to the vibration device IC330, a value (e.g., HS value) for determining data for generating vibration. For example, the priority determination module373may determine the HS value based on the occurrence of the audio event described above in connection with Table 2 and/or a vibration event. As an example, the priority determination module373may determine that the HS value is 2 when the audio event corresponding to the A2H function occurs. As an example, the priority determination module373may determine that the HS value is 1 when the audio event corresponding to the ACH function occurs. As another example, the priority determination module373may determine that the HS value is 0 when the audio event corresponding to the A2H function and/or ACH function does not occur (i.e., normal time or as default) and/or when a vibration event occurs. Specifically, referring toFIG.6, the priority determination module373may include an ODM adapter module631. The ODM adapter module631may obtain the HS value based on the occurrence of the event (e.g., vibration event or audio event) and transfer it to the Tiny Alsa module624. The Tiny Alsa module623may transfer the HS value to the Alsa driver624. The Alsa driver624may transfer the HS value to the vibration device driver374so that the processor350transfers the obtained HS value to the vibration device IC330through the I2C bus401.

According to various embodiments, the vibration device driver374may be configured to control the processor350to transfer predetermined data to the vibration device IC330through the plurality of communication interfaces (e.g., I2C bus401and I2S bus402). For example, the vibration device driver374may be implemented in the form of a multi-function device (MFD) driver. In an embodiment, the vibration device driver374may control the processor350to transfer the first data (e.g., index) obtained by the vibration data acquisition module371(e.g., Inputff driver) to the vibration device IC330through the I2C bus401. In another embodiment, the vibration device driver374may control the processor350to transfer the second data (e.g., ACH data) and/or third data (e.g., A2H data) obtained by the audio data acquisition module500(e.g., Alsa driver) to the vibration device IC330through the I2S bus402and transfer the HS value to the vibration device IC330through the I2C bus401. Accordingly, as described above, the vibration device IC330may drive the vibration device310based on the data (e.g., first data, second data, and third data) selected based on the HS value.

An example of an operation of an electronic device200is described below according to various embodiments.

According to various embodiments, the electronic device200(e.g., processor350) may transfer the data (e.g., index data, A2H data, and ACH data described above in connection withFIGS.3to6) for generating vibration, to the vibration device IC330through different buses.

FIG.7is a flowchart700illustrating an example of an operation of an electronic device200according to various embodiments. According to various embodiments, the operations shown inFIG.7are not limited to the shown order but may rather be performed in other various orders. According to various embodiments, more or less operations than those ofFIG.7may be performed.

According to various embodiments, in operation701, the electronic device200may transfer first data for generating vibration to the vibration device IC330through a first bus. For example, the electronic device200(e.g., processor350) may transfer, to the vibration device IC330through the I2C bus401, index data (e.g., first data) for generating vibration of a specific pattern and specific magnitude, obtained based on the occurrence of the above-described vibration event. The vibration device IC330may obtain data (e.g., PWM data) for generating vibration by processing the index data using the processing circuit410, based on firmware and provide the obtained data to the vibration device310. The vibration device310may be driven based on the data (e.g., PWM data), generating vibration. Meanwhile, the electronic device200(e.g., processor350) may transfer an HS value for selecting a haptic source to the vibration device IC330through the I2C bus401.

According to various embodiments, in operation703, the electronic device200may transfer second data for generating vibration to the vibration device IC330through a second bus. For example, the electronic device200(e.g., the processor350) may obtain A2H data and/or ACH data as second data based on the occurrence of the above-described audio event in Table 2 and may transfer the obtained A2H data and/or ACH data to the vibration device IC330via the I2S bus402. The vibration device IC330may obtain ACH data and/or A2H data for generating vibration by processing the index data using the processing circuit410, based on firmware and provide the obtained data to the vibration device310. The vibration device310may be driven based on the data (e.g., PWM data), generating vibration.

An example of an operation of an electronic device200is described below according to various embodiments.

According to various embodiments, the electronic device200(e.g., processor350) may transfer the data (e.g., index data, A2H data, and ACH data described above in connection withFIGS.3to6) for generating vibration, to the vibration device IC330through different buses. In this case, the electronic device200(e.g., the processor350) may control the vibration device IC330to drive the vibration device310based on specific data selected from among the plurality of data (e.g., index data, A2H data, and ACH data).

FIG.8is a flowchart800illustrating an example of an operation of an electronic device200according to various embodiments. According to various embodiments, the operations shown inFIG.7are not limited to the shown order but may rather be performed in other various orders. According to various embodiments, more or less operations than those ofFIG.8may be performed.FIG.8is described below with reference toFIG.9.

FIG.9is a view illustrating an example of an operation of controlling a vibration device310based on a plurality of data (e.g., index data, A2H data, and ACH data) of an electronic device200(e.g., processor350) according to various embodiments.

According to various embodiments, in operation801, the electronic device200may obtain a plurality of data for generating vibration. In one or more non-limiting embodiments, the obtained data includes different types of data. For example, the electronic device200(e.g., processor350) may obtain index data for generating vibration of a specific pattern and specific magnitude based on the occurrence of the above-described vibration event and/or obtain the A2H data based on the occurrence of the above-described audio event in Table 2. As an example, as described above in connection with Table 2, in a case where the vibration event (e.g., alarm) set in the electronic device occurs while the audio event corresponding to a specific function occurs and the audio file is obtained and/or played back, the electronic device200(e.g., processor350) may obtain index data along with the ACH data and/or A2H data. As an example, while the audio event corresponding to the ACH function occurs and ACH data is obtained as a game application is executed, a vibration event may be generated so that index data may be obtained.

According to various embodiments, in operation803, the electronic device200may transfer first part of a plurality of data to the vibration circuit through the first bus and, in operation805, transfer second part of the plurality of data to the vibration circuit through the second bus. Referring toFIG.9, for example, the electronic device200(e.g., processor350) may transfer the index data (e.g., first data) to the vibration device IC330through the I2C bus401. As another example, referring toFIG.9, the electronic device200(e.g., processor350) may transfer the ACH data and/or A2H data to the vibration device IC330through the I2S bus402.

According to various embodiments, in operation807, the electronic device200may control the vibration circuit to drive the vibration device310based on data selected from among the plurality of data. For example, the electronic device200(e.g., processor350) may transfer a value (e.g., HS value) for selecting data for generating vibration through the I2C bus401to the vibration device IC330. Accordingly, as described above in connection with Table 1, referring toFIG.9, the vibration device IC330may select specific data from among the plurality of data (e.g., index data, A2H data, or ACH data) based on the HS value. The vibration device IC330may process the specific data using the processing circuit410based on the firmware stored in the memory (not shown), obtaining data (e.g., PWM data) for driving the vibration device310. The vibration device IC330may drive the vibration device310based on the data (e.g., PWM data), thereby providing vibration. For example, in a case where the HS value is a value indicating the index data, as described above, the electronic device200, as a vibration event (e.g., notification) is generated while the audio event corresponding to the specific function is generated so that vibration is provided based on the data (e.g., A2H data and/or ACH data) obtained from the audio file, the electronic device200may temporarily stop the operation of providing vibration based on the data (e.g., A2H data and/or ACH data) obtained from the audio file and perform the operation of providing vibration based on index data. When the generation of the index data is stopped, and the data (e.g., index data, A2H data, and ACH data) obtained from the audio file is still obtained, the electronic device200may resume the operation of providing battery based on the data (e.g., A2H data, and ACH data) obtained from the audio file.

Meanwhile, when a single event occurs, the electronic device200(e.g., processor350) may transfer only data corresponding to the occurring event to the vibration device IC330through a specific bus. Even in this case, the electronic device200(e.g., processor350) may transfer the HS value to the vibration device IC330. However, without limited to those described, the electronic device200may be implemented not to perform the operation of obtaining the HS value and/or the operation of transferring the HS value to the vibration device IC330when a single event occurs.

According to various embodiments, when a plurality of events (e.g., vibration event and audio event) occur, the electronic device200(e.g., processor350) may determine the HS value according to the priority of the haptic source (e.g., index data, A2H data, and ACH data). For example, the index data may be set to have the highest priority, the A2H data may be set to have the lowest priority, and the ACH data may be set to have the priority lower than the priority of the index data and higher than the priority of the A2H data. However, without limited to those described, the priority may be set per data type. The processor350(e.g., priority determination module373) may determine the HS value corresponding to the type of data having the highest priority as described in Table 3 among the plurality of data obtained according to the occurrence of the plurality of events.

TABLE 3HS valueType of data0index data1ACH data2A2H data

For example, when index data, ACH data, and A2H data are obtained, the processor350(e.g., priority determination module373) may determine that the HS value is 0 which corresponds to the index data having the highest priority. As another example, when ACH data and A2H data are obtained, the processor350(e.g., priority determination module373) may determine that the HS value is 1 which corresponds to the ACH data having the highest priority.

Accordingly, as described above, the electronic device200may change the data for generating vibration according to time, based on the received HS value, thereby performing the operation of providing vibration based on different types of haptic sources.

Meanwhile, without limited to those described in Table 3, the HS value may be implemented as a value indicating the type of event, instead of data type. Per-event priorities may be set in the electronic device200. The electronic device200may determine the HS value indicating the type of event having the highest priority among the currently generated events. In this case, the electronic device200may transfer the HS value, along with the value (event value) indicating the type of event associated with the data (e.g., index data, A2H data, and ACH data) obtained according to the occurrence of event, to the vibration device IC330through I2C. Accordingly, the vibration device IC330may select data having the event value corresponding to the HS value and generate vibration based on the selected data.

An example of an operation of an electronic device200is described below according to various embodiments.

According to various embodiments, the vibration device IC330may obtain data (e.g., index data, A2H data, and ACH data described above in connection withFIGS.3to6) for generating vibration through different buses from the processor350and obtain data (e.g., PWM data) for driving the vibration device310based on the obtained data.

FIG.10is a flowchart1000illustrating an example of an operation of an electronic device200according to various embodiments. According to various embodiments, the operations shown inFIG.10are not limited to the shown order but may rather be performed in other various orders. According to various embodiments, more or less operations than those ofFIG.10may be performed.

According to various embodiments, in operation1001, the vibration device IC330may obtain first data from the processor350through the first bus and, in operation1003, obtain second data from the processor350through the second bus. For example, the vibration device IC330may obtain the index data (e.g., first data) through the I2C bus401from the processor350and/or obtain ACH data and/or A2H data (e.g., second data) through the I2C bus401from the processor350.

According to various embodiments, in operation1005, the vibration device IC330may select data for generating vibration among the first data and second data based on the value for selection of the received data from the processor350and, in operation1007, control the vibration device310based on the selected data. For example, the vibration device IC330may receive the above-described HS value through the I2C bus401from the processor350. The vibration device IC330may select the data corresponding to the HS value from among the plurality of data (e.g., index data, A2H data, and ACH data) and obtain the data (e.g., PWM data) for driving the vibration device310based on the selected data. The vibration device IC330may drive the vibration device310based on the data (e.g., PWM data), generating vibration.

An example of an operation of an electronic device200is described below according to various embodiments.

According to various embodiments, the electronic device200(e.g., processor350) may obtain data (e.g., index data, A2H data, and ACH data) for generating vibration according to the type of the generated event (e.g., vibration event and audio event) and determine the HS value.

FIG.11is a flowchart1100illustrating an example of an operation of an electronic device200according to various embodiments. According to various embodiments, the operations shown inFIG.11are not limited to the shown order but may rather be performed in other various orders. According to various embodiments, more or less operations than those ofFIG.11may be performed.FIG.11is described below with reference toFIG.12.

FIG.12illustrates graphs showing the presence or absence of data (e.g., HS value, index data, A2H data, and ACH data) over time according to various embodiments. In each graph shown inFIG.12, the x axis may denote the time, and the positive value of the y axis may denote the presence of data (that is, the absence of a positive value on the y axis may denote lack of data).

According to various embodiments, in operation1101, the vibration device IC330may determine whether a vibration event occurs and, when a vibration event occurs (Yes in1101), determine whether an audio event occurs in operation1103and, when no vibration event occurs, determine whether an audio event occurs in operation1105. As described above in connection withFIGS.3to6, the vibration event may be an event preset in the electronic device200to generate a vibration of a specific pattern and specific magnitude, and the audio event may be preset events for audio output described in Table 2. Meanwhile, without limited to those described and/or shown, the vibration event may mean a state in which an audio event is not generated.

According to various embodiments, when a vibration event occurs and no audio event occurs (No in1103), the vibration device IC330may obtain the value of at least one first parameter for generating vibration in operation1107, obtain index data based on the value of the at least one first parameter in operation1109, transfer the index data to the vibration device IC330through the first bus in operation1111, and drive the vibration device310based on the index data, using the vibration circuit in operation1113. For example, referring toFIG.12, as a vibration event occurs at a first time t1, the operation in which the electronic device200obtains index data based on the vibration event from the first time t1to a third time t3may be performed. As an example, as described above in connection withFIGS.3to6, the electronic device200(e.g., vibration data acquisition module371) may obtain the value of at least one first parameter including at least one of the value indicating a preset vibration magnitude or the value indicating the vibration effect, corresponding to the vibration event, based on the occurrence of the vibration event. The electronic device200(e.g., vibration data acquisition module371) may obtain the index data for generating vibration of a specific pattern and specific magnitude, corresponding to the value of the at least one first parameter. Further, the electronic device200(e.g., processor350) may determine that the HS value is 0 based on the vibration event. As a result, the electronic device200(e.g., processor350) may transfer the HS value (HS=0) and index data determined from the first time t1to the third time t3to the vibration device IC330through the I2C bus401. The vibration device IC330may obtain PWM data based on the index data from the first time t1to the third time t3and drive the vibration device310based on the PWM data.

Meanwhile, without limited to the described example, the electronic device200(e.g., processor350) may determine that the HS value is 0 during the time when no event (e.g., vibration event and audio event) occurs.

According to various embodiments, when a vibration event occurs and no audio event occurs (Yes in1103), the vibration device IC330may obtain index data based on the value of at least one first parameter in operation1115, obtain ACH data and/or A2H data based on the audio file in operation1117, transfer the index data to the vibration device IC330through the first bus and transfer the ACH data and/or A2H data through the second bus in operation1119, and drive the vibration device310based on data selected from among the first vibration data, A2H data, and ACH data using the vibration circuit in operation1121. For example, referring toFIG.12, a first audio event corresponding to the ACH function and a second audio event corresponding to the A2H function may occur at a second time t2. Accordingly, from the second time t2to the third time t3, the operation of generating index data based on the vibration event of the electronic device200, the operation of generating ACH data based on the first audio event, and the operation of generating the A2H data based on the second audio event may be performed. For example, the electronic device200(e.g., vibration data acquisition module371) may obtain index data based on the value of at least one first parameter including at least one of the value indicating a preset vibration magnitude or the value indicating the vibration effect, corresponding to the vibration event. As another example, the electronic device200(e.g., audio data acquisition module500) may obtain A2H data and ACH data from the audio file (e.g., wave file and OGG file) generated based on the occurrence of the first audio event and second audio event. The electronic device200(e.g., processor350) may determine that the HS value is 0 which corresponds to the index data having the highest priority. As a result, the electronic device200(e.g., processor350) may transfer the HS value (HS=0) and index data determined from the second time t2to the third time t3to the vibration device IC330through the I2C bus401and transfer the A2H data and ACH data to the vibration device IC330through the I2S bus402. The vibration device IC330may obtain data (e.g., PWM data) for generating vibration based on the index data corresponding to the HS value (HS=0) among the plurality of data during the period from the second time t2to the third time t3and drive the vibration device310based on the obtained data (e.g., PWM data) for generating vibration. Meanwhile, without limited thereto, the data for generating vibration may further include at least one of SDA or OWT data. In other words, an example in which the data for generating vibration is PWM data but, without limited to those described, the data may be appreciated as at least one of SDA or OWT data.

According to various embodiments, when generation of specific data among the plurality of data is terminated, the electronic device200may provide vibration based on the data selected depending on the priority of the remaining data generated. For example, A2H data and ACH data may be generated from the third time t3when the generation of index data is terminated to fourth time t4. The electronic device200(e.g., processor350) may set the HS value to 1 based on the ACH data having the higher priority among the A2H data and the ACH data, transfer the set HS value (HS=1) through the I2C bus401to the vibration device IC330from the third time t3to fourth time t4, and transfer the A2H data and ACH data to the vibration device IC330through I2S. Accordingly, the vibration device IC330may stop the operation of generating vibration based on the index data from the third time t3, obtain the PWM data based on the ACH data corresponding to the HS value (HS=1) among the plurality of data from the third time t3to the fourth time t4, and drive the vibration device310based on the obtained PWM data. As another example, only A2H data may be generated from the fourth time t4when generation of the ACH data is terminated to the fifth time t5. The electronic device200(e.g., processor350) may set the HS value to 2 based on the ACH data, transfer the set HS value (HS=2) to the vibration device IC330through the I2C bus401from the fourth time t4to the fifth time t5, and transfer only A2H data to the vibration device IC330through I2S. Accordingly, the vibration device IC330may obtain PWM data based on the A2H data from the fourth time t4to the fifth time t5and drive the vibration device310based on the obtained PWM data. Meanwhile, as described above, the electronic device200(e.g., processor350) may not transfer the HS value to the vibration device IC330during the time when one data (e.g., A2H data) is generated. The vibration device IC330may drive the vibration device310simply based on a single type of data received.

According to various embodiments, when generation of specific data is additionally generated, the electronic device200may provide vibration based on the data selected depending on the priorities of the plurality of data currently generated. For example, the electronic device200(e.g., processor350) may set the HS value to 1 based on the ACH data having the higher priority among the A2H data and the ACH data based on additional generation of the ACH data from the fifth time t5. The electronic device200(e.g., processor350) may drive the vibration device310based on the ACH data based on the HS value being set to 1. Accordingly, the electronic device200may stop the operation of generating vibration based on the A2H data from the fifth data t5and perform the operation of generating vibration based on the ACH data. As another example, the electronic device200(e.g., processor350) may set the HS value to 0 based on the index data having the highest priority, based on index data being additionally generated from the sixth time t6. The electronic device200(e.g., processor350) may drive the vibration device310based on the index data based on the HS value being set to 0. Accordingly, the electronic device200may stop the operation of generating vibration based on the ACH data from the sixth data t6and perform the operation of generating vibration based on the index data.

According to various embodiments, when no vibration event occurs and an audio event occurs (Yes in1105), the vibration device IC330may obtain ACH data and/or A2H data, as data for generating vibration, based on the audio file in operation1123, transfer the ACH data and/or A2H data through the second bus in operation1125, and drive the vibration device310based on the ACH data and/or A2H data using the vibration circuit in operation1127. For example, as described above in connection withFIGS.3to6, the electronic device200(e.g., audio data acquisition module500) may obtain the ACH data and/or A2H data from the file corresponding to the audio event based on the occurrence of the audio event. Further, the electronic device200(e.g., processor350) may determine that the HS value is 1 and/or 2. As a result, the electronic device200(e.g., processor350) may transfer the determined HS value (HS=1 and/or HS=2)) to the vibration device IC330through the I2C bus401and transfer the ACH data and/or A2H data to the vibration device IC330through the I2S bus402. The vibration device IC330may obtain PWM data based on the ACH data and/or A2H data and drive the vibration device310based on the PWM data.

An example of an operation of an electronic device200is described below according to various embodiments.

According to various embodiments, the electronic device200(e.g., processor350) may perform the operation of providing vibration while outputting audio based on the audio file obtained according to the type of audio event generated.

FIG.13is a flowchart1300illustrating an example of an operation of an electronic device200according to various embodiments. According to various embodiments, the operations shown inFIG.13are not limited to the shown order but may rather be performed in other various orders. According to various embodiments, more or less operations than those ofFIG.13may be performed.FIG.13is described below with reference toFIG.14.

FIG.14is a view illustrating an example of an operation of providing audio and/or vibration of an electronic device200according to an occurrence of an audio event according to various embodiments.

According to various embodiments, the electronic device200may determine whether an audio event occurs in operation1301. For example, the electronic device200may determine whether the audio event described in Table 2 occurs, based on the execution of an application.

According to various embodiments, when an audio event occurs (Yes in1301), the electronic device200may determine whether a first function (e.g., A2H function) is used in operation1303and, when the first function (e.g., A2H function) is determined to be used (Yes in1303), provide vibration while outputting audio based on the first audio data included in the first audio file in operation1305. For example, upon identifying the A2H function corresponding to the generated audio event, the electronic device200may obtain audio data (e.g., PCM data) from the obtained audio file (e.g., wave file). Referring toFIG.14, during a first time T1of obtaining audio data (e.g., PCM data) from the audio file, the electronic device200may provide vibration using the vibration device310based on the audio data while outputting audio through the audio device321based on the audio data. The operation in which the electronic device200controls the vibration device310using the audio data (e.g., A2H data) has been described above, and thus, no detailed description thereof is given below.

According to various embodiments, when it is determined that the first function (e.g., A2H function) is not used (No in1303), the electronic device200may determine whether to use the second function (e.g., ACH function) in operation1307and, when it is determined that the second function (e.g., ACH function) is used (Yes in1307), provide vibration based on haptic data included in the second audio file while outputting audio based on the second audio data included in the second audio file in operation1309. For example, upon identifying the ACH function corresponding to the generated audio event, the electronic device200may obtain audio data (e.g., ACH data) from the obtained audio file (e.g., OGG file). Referring toFIG.14, during a second time T2of obtaining audio data (e.g., PCM data) from the audio file, the electronic device200may output audio through the audio device321based on the audio data during the second time T2of obtaining the audio data (e.g., PCM data) from the audio file and provide vibration using the vibration device310during the third time T3of obtaining haptic data (e.g., PCM data) from the audio file. The operation in which the electronic device200controls the vibration device310using the audio data (e.g., ACH data) has been described above, and thus, no detailed description thereof is given below. As illustrated inFIG.14, the second time T2and the third time T3may overlap each other at some times, but may not overlap each other. For example, in a case where the value of a specific time period corresponding to the audio data in the OGG file is 0 so that a sound is not provided in the specific time period, the value of the haptic data in the OGG file exists, so that vibration may be provided in the specific time period.

An example of an operation of an electronic device200is described below according to various embodiments.

According to various embodiments, without limited to the described example, the electronic device200(e.g., processor350) may select data to be processed by the vibration device IC330from among the plurality of data (e.g., index data, A2H data, and ACH data) and transfer only the selected data to the vibration device IC330, instead of performing the operation of transferring the HS value for selecting data for generating vibration to the vibration device IC330. Accordingly, the vibration device IC330may drive the vibration device310using only the received data.

FIG.15is a flowchart1500illustrating an example of an operation of an electronic device200according to various embodiments. According to various embodiments, the operations shown inFIG.15are not limited to the shown order but may rather be performed in other various orders. According to various embodiments, more or less operations than those ofFIG.15may be performed.FIG.15is described below with reference toFIG.16.

FIG.16is a view illustrating an example of an operation of transferring data selected from among a plurality of data (e.g., index data, ACH data, and A2H data) of an electronic device200to a vibration device IC330according to various embodiments.

According to various embodiments, in operation1501, the electronic device200may obtain a plurality of data and, in operation1503, select source data from among the plurality of data based on the priorities of the plurality of data. For example, the electronic device200(e.g., processor350) may obtain the plurality of data (e.g., index data, A2H data, and ACH data) based on the occurrence of a vibration event and/or audio event. As described above, the electronic device200may select the data having the highest priority, as the data (e.g., source data) for generating vibration, from among the plurality of data (e.g., index data, A2H data, and ACH data) based on the priority of each of the plurality of data.

According to various embodiments, the electronic device200may determine whether the source data is the first data in operation1505and, when the source data is the first data (Yes in1505), transfer the first data to the vibration device IC330through the first bus in operation1507and control to drive the vibration device310based on the first data using the vibration device IC330, in operation1509. According to various embodiments, when the source data is not the first data (No in1505), the electronic device200may determine whether the second data is the second data in operation1511and, when the source data is the second data (Yes in1511), transfer the second data to the vibration device IC330through the second bus in operation1513and control to drive the vibration device310based on the second data using the vibration device IC330in operation1515. For example, as shown in1601ofFIG.16, the electronic device200(e.g., processor350) may transfer the selected index data to the vibration device IC330through the I2C bus401. As another example, as shown in1602ofFIG.16, the electronic device200(e.g., processor350) may transfer the selected ACH data to the vibration device IC330through the I2S bus402. As another example, as shown in1603ofFIG.16, the electronic device200(e.g., processor350) may transfer the selected A2H data to the vibration device IC330through the I2S bus402. The vibration device IC330may drive the vibration device310based on the received data (e.g., index data, ACH data, or A2H data) to allow the vibration device310to generate vibration.

According to various embodiments, there may be provided an electronic device (e.g., the electronic device200ofFIG.2) comprising a vibration device (e.g., the vibration device310ofFIG.3), a vibration device IC (e.g., the vibration device IC330ofFIG.3) connected to the vibration device (e.g., the vibration device310ofFIG.3), a first bus (e.g., the I2C bus401ofFIG.4A), a second bus (e.g., the I2S bus402ofFIG.4A), and at least one processor (e.g., the processor350ofFIG.3) electrically connected to the vibration device IC through each of the first bus (e.g., the I2C bus401ofFIG.4A) and the second bus (e.g., the I2S bus402ofFIG.4A), wherein the at least one processor (e.g., the processor350ofFIG.3) is configured to transfer first data to the vibration device IC (e.g., the vibration device IC330ofFIG.3) through the first bus (e.g., the I2C bus401ofFIG.4A), transfer second data to the vibration device IC (e.g., the vibration device IC330ofFIG.3) through the second bus (e.g., the I2S bus402ofFIG.4A) different from the first bus (e.g., the I2C bus401ofFIG.4A), and control the vibration device IC (e.g., the vibration device IC330ofFIG.3) to drive the vibration device (e.g., the vibration device310ofFIG.3) based on data selected from the first data and the second data.

According to various embodiments, there may be provided the electronic device (e.g., the electronic device200ofFIG.2), wherein the first bus (e.g., the I2C bus401ofFIG.4A) includes an inter integrated circuit (I2C) bus, and the second bus (e.g., the I2S bus402ofFIG.4A) includes an integrated interchip sound (I2S) bus.

According to various embodiments, there may be provided the electronic device (e.g., the electronic device200ofFIG.2), wherein the at least one processor (e.g., the processor350ofFIG.3) is further configured to obtain the first data indicating a characteristic of a vibration based on an occurrence of a first event for providing the vibration, wherein the characteristic of the vibration includes at least one of a magnitude of the vibration or a pattern of the vibration, and transfer the first data to the vibration device IC (e.g., the vibration device IC330ofFIG.3) through the first bus (e.g., the I2C bus401ofFIG.4A).

According to various embodiments, there may be provided the electronic device (e.g., the electronic device200ofFIG.2), wherein the at least one processor (e.g., the processor350ofFIG.3) is further configured to obtain an audio file based on an occurrence of a second event for outputting an audio, obtain the second data corresponding to a function for providing a vibration corresponding to the second event, based on the obtained audio file, wherein the second data includes pulse code modulation (PCM) data, and transfer the second data to the vibration device IC (e.g., the vibration device IC330ofFIG.3) through the second bus (e.g., the I2S bus402ofFIG.4A).

According to various embodiments, there may be provided the electronic device (e.g., the electronic device200ofFIG.2), wherein the function for providing the vibration includes an audio to haptics (A2H) function and an audio coupled haptics (ACH) function, and wherein the at least one processor (e.g., the processor350ofFIG.3) is further configured to, as at least part of obtaining the second data, obtain third data for providing the audio from the audio file when the function corresponding to the second event is the A2H function, and obtain fourth data for providing the vibration from the audio file when the function corresponding to the second event is the ACH function.

According to various embodiments, there may be provided the electronic device (e.g., the electronic device200ofFIG.2), further comprising an audio device; and an audio device IC for driving the audio device, wherein the at least one processor (e.g., the processor350ofFIG.3) is further configured to transfer the third data obtained from the audio file to the audio device IC while transferring the third data to the vibration device IC (e.g., the vibration device IC330ofFIG.3) through the second bus (e.g., the I2S bus402ofFIG.4A) when the function corresponding to the second event is the A2H function, and transfer fifth data for providing the audio obtained from the audio file to an audio device IC while transferring the fourth data to the vibration device IC (e.g., the vibration device IC330ofFIG.3) through the second bus (e.g., the I2S bus402ofFIG.4A) when the function corresponding to the second event is the ACH function.

According to various embodiments, there may be provided the electronic device (e.g., the electronic device200ofFIG.2), wherein the vibration device IC (e.g., the vibration device IC330ofFIG.3) provides the vibration based on the fourth data during a first time, wherein the audio device outputs an audio based on the fifth data during a second time, and at least a portion of the first time differs from the second time.

According to various embodiments, there may be provided the electronic device (e.g., the electronic device200ofFIG.2), wherein the at least one processor (e.g., the processor350ofFIG.3) is further configured to transfer a value for selecting the data from the first data and the second data to the vibration device IC (e.g., the vibration device IC330ofFIG.3).

According to various embodiments, there may be provided the electronic device (e.g., the electronic device200ofFIG.2), wherein the at least one processor (e.g., the processor350ofFIG.3) is further configured to determine the value for selecting the data based on first information about a priority of the first data and a priority of the second data, and wherein the determined value indicates data having a higher priority of the priority of the first data and the priority of the second data.

According to various embodiments, there may be provided the electronic device (e.g., the electronic device200ofFIG.2), further comprising a memory, wherein the memory stores the first information indicating that a priority of data corresponding to a first event for providing the vibration is higher than a priority of data corresponding to a second event for outputting the audio.

According to various embodiments, there may be provided the electronic device (e.g., the electronic device200ofFIG.2), wherein the at least one processor (e.g., the processor350ofFIG.3) is further configured to, when the priority of the first data is higher than the priority of the second data, transfer a first value indicating the first data to the vibration device IC (e.g., the vibration device IC330ofFIG.3) during a first time when the first data and the second data are obtained, and transfer a second value indicating the second data to the vibration device IC (e.g., the vibration device IC330ofFIG.3) during a second time when the second data is obtained after obtaining the first data is terminated.

According to various embodiments, there may be provided the electronic device (e.g., the electronic device200ofFIG.2), wherein the at least one processor (e.g., the processor350ofFIG.3) is further configured to determine the value based on an occurrence of a second event for outputting an audio, and transfer the determined value to the vibration device IC (e.g., the vibration device IC330ofFIG.3) through the first bus (e.g., the I2C bus401ofFIG.4A).

According to various embodiments, there may be provided a method for operating an electronic device (e.g., the electronic device200ofFIG.2), comprising transferring first data to a vibration device IC (e.g., the vibration device IC330ofFIG.3) of the electronic device (e.g., the electronic device200ofFIG.2) through a first bus (e.g., the I2C bus401ofFIG.4A) of the electronic device (e.g., the electronic device200ofFIG.2), transferring second data to the vibration device IC (e.g., the vibration device IC330ofFIG.3) through a second bus (e.g., the I2S bus402ofFIG.4A) of the electronic device (e.g., the electronic device200ofFIG.2), different from the first bus (e.g., the I2C bus401ofFIG.4A), and controlling the vibration device IC (e.g., the vibration device IC330ofFIG.3) to drive the vibration device (e.g., the vibration device310ofFIG.3) based on data selected from the first data and the second data.

According to various embodiments, there may be provided the method, wherein the first bus (e.g., the I2C bus401ofFIG.4A) includes an inter integrated circuit (I2C) bus, and the second bus (e.g., the I2S bus402ofFIG.4A) includes an integrated interchip sound (I2S) bus.

According to various embodiments, there may be provided the method, further comprising obtaining the first data indicating a characteristic of a vibration based on an occurrence of a first event for providing the vibration, wherein the characteristic of the vibration includes at least one of a magnitude of the vibration or a pattern of the vibration, and transferring the first data to the vibration device IC (e.g., the vibration device IC330ofFIG.3) through the first bus (e.g., the I2C bus401ofFIG.4A).

According to various embodiments, there may be provided the method, further comprising obtaining an audio file based on an occurrence of a second event for outputting an audio, obtaining the second data corresponding to a function for providing a vibration corresponding to the second event, based on the obtained audio file, wherein the second data includes pulse code modulation (PCM) data, and transferring the second data to the vibration device IC (e.g., the vibration device IC330ofFIG.3) through the second bus (e.g., the I2S bus402ofFIG.4A).

According to various embodiments, there may be provided the method, wherein the function for providing the vibration includes an audio to haptics (A2H) function and an audio coupled haptics (ACH) function, and wherein the obtaining the second data includes obtaining third data for providing the audio from the audio file when the function corresponding to the second event is the A2H function, and obtaining fourth data for providing the vibration from the audio file when the function corresponding to the second event is the ACH function.

According to various embodiments, there may be provided the method, further comprising transferring the third data obtained from the audio file to an audio device IC of the electronic device (e.g., the electronic device200ofFIG.2) while transferring the third data to the vibration device IC (e.g., the vibration device IC330ofFIG.3) through the second bus (e.g., the I2S bus402ofFIG.4A) when the function corresponding to the second event is the A2H function, and transferring fifth data for providing the audio obtained from the audio file to the audio device IC while transferring the fourth data to the vibration device IC (e.g., the vibration device IC330ofFIG.3) through the second bus (e.g., the I2S bus402ofFIG.4A) when the function corresponding to the second event is the ACH function.

According to various embodiments, there may be provided the method, further comprising providing the vibration based on the fourth data during a first time, by the vibration device IC (e.g., the vibration device IC330ofFIG.3) and outputting an audio based on the fifth data during a second time, by the audio device IC, wherein at least a portion of the first time differs from the second time.

According to various embodiments, there may be provided an electronic device (e.g., the electronic device200ofFIG.2) comprising a vibration device (e.g., the vibration device310ofFIG.3), a vibration device IC (e.g., the vibration device IC330ofFIG.3) connected to the vibration device (e.g., the vibration device310ofFIG.3), an I2C bus, an I2S bus, and at least one processor (e.g., the processor350ofFIG.3) electrically connected to the vibration device IC through each of the I2C bus and the I2S bus, wherein the at least one processor (e.g., the processor350ofFIG.3) is configured to transfer first data to the vibration device IC through the I2C bus, and transfer second data to the vibration device IC through the I2S bus, wherein the second data includes PCM data.