רכיב דיבור - אלקטרוניקה ומודינג - HWzone פורומים
עבור לתוכן
  • צור חשבון

רכיב דיבור


moshe_S_m

Recommended Posts

שלום לכולם

אני רוצה לקנות רכיב שאני יכול לצרוב עליו מספר קטעי קול ולהפעיל אותו כאשר אני ארצה (ההפעלה תהיה ע"י בקר),

השאלה שלי היא כזו:

1. איזה רכיב יש שאני יכול לצרוב עליו סאונד?

2. האם יש למשהו מעגל שמתאים לצריבה?

3. כל אינפורמציה נוספר תהיה לי מצוינת.

תודה מראש משה

קישור לתוכן
שתף באתרים אחרים

אני לא ארחיב יותר מדי מה שאתה צריך זה digital analog to digital לפי דעתי serial יספיק אם תריץ SPI ב64KB תוכל להגיע ל8KSPS אבל זה יהיה רק ב8 ביט. זה יעבוד מניסיון (בעבודה עשינו משהו דומה עם parallel DAC ) . את הדגימות של האודיו אתה יכול לשמור ב8 ביט linear . אתה יכול גם להשתמש בserial eprom/flash . מה שאתה יכול לעשות זה לשרשר את הeprom ולחבר את ה dout שלו לתוך הdin של הDAC ולשלוט על ה CS של שניהם (אבל אולי תצתרך היפוך שעונים לDAC ). ככה כל מה שתעשה זה תתן לeprom פקודות קריאה והם ילכו ישר לDAC .

קישור לתוכן
שתף באתרים אחרים

חשבתי על עוד אופציה שהיא לפרק זול שמאפשר הקלטה ואז לחבר לבקר שלך את הכפתורים שלו ואת הIO של הLCD . ככה אתה תדמה את המשתמש בתוך הבקר. עדיין זה לא הכי טריוואלי אבל יש לזה היתרונות הם שזה זה די זול (ראיתי אחד ב50 שקל שמקליט עם כ 512GB פלאש בזאפ) ,שהכל כלול - יש לך את כל האלקטרוניקה מוכנה וזה דבר עובד ושיש לך גישה לflash עם למחשב.

קישור לתוכן
שתף באתרים אחרים

הבעיה היא שחרת מה אם אני רוצה להפעיל את קטע מס' שלוש ואז את 7 ואחריו את 2 (טוב הבנתה את הרעיון).

משהו יודע האם זה אפשרי?

פרוט:

האם הבקר יכול לפנות לקטע (קובץ) ספציפי?

קישור לתוכן
שתף באתרים אחרים

משה, אם אני מבין נכון אתה צריך את זה בשביל פרוייקט ללימודים נכון ?

אם כך לא ניראה לי שלפרק יהיה רעיון כל כך טוב.

והרכיב שהצעתי כמובן יכול לפנות להודעות מסויימות, וגם לחלקים מהם וכל שאר הירקות.

קישור לתוכן
שתף באתרים אחרים

פירקתי את ה שלי אחד של ישן עם 512MB ואילו הרכיבים שמצאתי בפנים:

sigmatel stmp3510

samsung 522k9k4g08uom

tea5767

24MHz crystals

את ה datasheet למעבד לא מצאתי הוא כנראה ניתן רק ללקוחות . הLCD מחובר בהלחמה על איזה 4 פאדים אני לא יודע מה יש מתחת אני לא הייתי בטוח

הרכיבים שזיהיתי הראשון הוא המעבד, השני הוא הflash השלישי הוא מקלט רדיו ורביעי ברור לכולם (התדר הספציפי הוא כנראה בגלל הUSB 2 ). כמו שאמרתי אין לי מושג על הרכיב אבל ראיתי שאפשר לעשות לו מודים . המסך הוא מסך LCD שחור לבן גראפי אז הממשק אליו כנראה מסובך אלא אם כן יש לו תמיכה בפונטים והרכיב משתמש בזה. לא סביר שתשים תוכנת OCR בתוך הבקר שלך .

קישור לתוכן
שתף באתרים אחרים

משה, אם אני מבין נכון אתה צריך את זה בשביל פרוייקט ללימודים נכון ?

אם כך לא ניראה לי שלפרק יהיה רעיון כל כך טוב.

והרכיב שהצעתי כמובן יכול לפנות להודעות מסויימות, וגם לחלקים מהם וכל שאר הירקות.

אתה מבין נכון מאוד,

אך באריהב לא ראיתי שיש את הרכיב או שאני טועה בחיפוש

אולי יש אותו ב"הר-ציון" האם משהו יודע האם יש אותו באריהב?[br]פורסם בתאריך: 21.03.2009 בשעה 23:41:25


משה, אם אני מבין נכון אתה צריך את זה בשביל פרוייקט ללימודים נכון ?

אם כך לא ניראה לי שלפרק יהיה רעיון כל כך טוב.

והרכיב שהצעתי כמובן יכול לפנות להודעות מסויימות, וגם לחלקים מהם וכל שאר הירקות.

אתה אכן צודק בקשר לפרויקט ומה שנתתה לי עוזר לי מעוד,

אך אינני ראיתי כי יש את הרכיב באריהב אולי לא חיפשתי טוב,

אני מדבר על IDS-4003

משהו יודע איפה יש אותו?

(פרט ל"הר-ציון" באזור חדרה...)

קישור לתוכן
שתף באתרים אחרים

בהמשך לרעיון הקודם שלי של לDAC / serial eeprom צירתי ציור קטן.

dac.gif

התוכנית היא די פשוטה. אתה צריך timer שנותן interrupt כ8000 פעמים בשניה. ושומר על הEEPROM שלך קול ב8Kb לשניה. בתוכנית הראשית כל מה שאתה עושה זה poll על הכפתורים או מה לא אולי RS232 (שאולי גם יצרוב לתוך ה flash אפשר גם עם קווי parallel ). מתי שהמשתמש רוצה לשולוח משהו מסויים אתה שם את אורך הקול (מספר הדגימות ) בתוך משתנה של 32 ביט ואז כל עוד הוא לא 0 והדגל ב 0 ( משתנה) אתה קורא דגימה מה EEPROM , שם אותה במשתנה גלובלים , מקטין את המספר הדגימות ב1 ומרים את הדגל ל1 .בפסיקה של הtimer אתה שולח את הדגימה לDAC ומוריד את הדגל (שם אותו ב0) .

אתה יכול גם להפסיק או להתחיל את הtimer בהתאם לאם אתה צריך דגימות. כמו שאמרתי יש כמה דרכים לחסוך במקום בeeprom כמו לעבור לסקאלה לוגריתמית או להחליט שאתה שומר רק 4 ביטים עליונים ואז יש לך 16 רמות מ0 ,16, 32 ,...,224, 240 .

עריכה:

ראיתי שגם אפשר לעשות את זה בPWM באיזה אתר לא יודע בקשר לאודיו אבל אם אין לך דרך לעשות את המיתוג הזה בחומרה(מונה שסופר מספר שעונים ומפסיק ב0 ויש לך יציאה שאומרת אם הוא סופר או לא) זה יכול להיות קצת כבד למעבד בעיקר אם אתה שואף לרזולוציה גבוהה.

מבחינת חלקים - DAC של 8ביט מצאתי באריהב ב10-14 שקל DIP16 . אתה צריל uC עם לפחות כ 13 קווי IO אולי אפשר להשתמש ב eeprom של I2ב ולחסוך 2 עדיין ראיתי שיש לרוב PIC עם 12-14 IO אז הנה עוד דרכים לחסוך :

1. להשתמש ב shift register ( מחובר ל SPI שיהפוך את ה Parallel dac ל serial dac (אפשר להשתמש בקו הen כ WE ) זה חוסך 7 או 8 קווים .

2. להשתמש ב latch ואז לעשות שתי כתיבות של 4 ביט אבל זה חוסך רק 3 קווים.

בקשר ל flash ראיתי שזה יקר יחסית - 42 שקל ל16 MB SST25VF016B-50-4C-S2AF בחבילת SOIC8 . לא מצאתי EEPROM בנפח כזה עם ממשק טורי אבל בכלל לא כדאי לך להתעסק עם parallel flash כי הם לרוב באים עם המון קווי ADDR וזה אומר המון לוגיקה רק לכתוב ולקרוא וזה יסבך נורא את הקוד.

קישור לתוכן
שתף באתרים אחרים

אני חייב לאמור לך תודה לפני הכול!!!

לא ממש הבנתי כלום אני מכיר את כל המונכים שדיברתה עליהם אבל זה עשה לי בלגן גדול בראש,

ברמה עקרונית אני עובד עם 8051 (דרישות לפרויקט) אבל אם בכל זאת תוכל להסביר את עצמך בדרך אחרת אני אשמח

לשמוע וללמוד עוד תודה מראש

קישור לתוכן
שתף באתרים אחרים

זה לא ממש משנה איזה בקר אתה משתמש העיקר שיהיה לו יכולת IO כי צריך גישה להרבה והתקנים חיצוניים. חוץ מזה כדאי שיהיה לו גם timer שנותן פסיקות (interrupt ) . לא חובה שהוא יתן פסיקות העיקר שיהיה timer .

כל מה שהתוכנית שלך אמורה לעשות זה מכונת מצבים עם בערך שתיים 3 מצבים. המצבים העיקריים הם "מחכה לפקודה מהמשתמש " והשני "מבצע פקודה" שבמקרה שלך מנגן קול.

לנגן קול אומר שאתה דוגם קול בתדר מסויים כמו 8kHz ושומר אותו באיזה . כדי לנגן את הקול אתה צריך כל פרק זמן שתלוי בקצב הדגימה (125 מיקרו שניות ב8kHz ) כדי לשנות את ה DAC שלך ואז נוצר הגל שמשחזר את הקול. ה DAC מקבל ערכים לינארים ( מתח היציאה = Vin*X/2^N שX הוא הערך שנותנים לDAC ו N הוא מספר הביטים של ה DAC ) . הקול הוא לא כלכך לינארי והוא די לוגריתמי והדחיסה הכי פשוטה של הקול משתמשת בהמרה הזאת. דחיסה אומר שאתה מיצג את אותו המידע עם פחות ביטים אבל משלמים על זה בזמן עיבוד ובאיכות.

יש כמה שיטות דחיסה מאוד פשוטות שמשתמשות רק בהתיחסות לקול לסקאלה לוגריתמית וההמרה שלה לסקאלה לינארית וההפך והן כוללות את ה PCM שהוא פשוט floating point עם הרבה פחות ביטים . השני הוא ADPCM שהוא PCM אבל שולחים בו מילים שמתיחסות לשינויי עוצמה (קל לממש אבל מסובך יותר מ PCM ) . הPCM דוחס את הקול לחצי ללא אובדן איכות משמעותי . ה ADPCM יכול להוריד את זה לרבע עם קצת אובדן איכות. יש דרכים הרבה יותר מתקדמות שמתמחות בדחיסת דיבור ומתבססות על celp שמתבססות על דימוי מיתרי הקול בגדול והם מאוד כבדות חישובית אבל הן משתמשות באחד חלקי 16 מהמקום שדגימות לינאריות משתמשות בו.

הציורים שצירתי הן שני אופציות לחיבור זכרונות ו DAC . בגלל האופי של קול דיגיטאלי אתה צריך לשמור כמות דגימות שהיא תדר הדגימה כפול מספר הביטים שאומר הרבה . ב 8 ביט ב8kHz זה יוצא 64 kbps . זה אומר שבשביל לנגן דקה אתה צריך של קרוב ל4Mbit שקרוב ל 1MB . אפשר אולי להוריד את קצב הדגימה ל 5kHz והקול כנראה יהיה עדיין מובן ואולי גם לשמור את הקול ב4 ביט לדגימה באחת השיטות שהזכרתי ואז זה יקח רק 20kbps וזה אומר 1.2Mbit לדקה של קול .

קישור לתוכן
שתף באתרים אחרים

  • 2 שבועות מאוחר יותר...

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...