This shows you the differences between two versions of the page.
pm:prj2025:cmoarcas:gheorghe.petrica [2025/05/30 01:54] gheorghe.petrica [Software Design] |
pm:prj2025:cmoarcas:gheorghe.petrica [2025/05/30 09:55] (current) gheorghe.petrica [Rezultate Obţinute] |
||
---|---|---|---|
Line 52: | Line 52: | ||
=== Diagrama Bloc pentru casetofon === | === Diagrama Bloc pentru casetofon === | ||
- | {{:pm:prj2025:cmoarcas:arduino_uno.png?700|}} | + | {{:pm:prj2025:cmoarcas:ImperiumBT.png?700|}} |
=== Schema electrica === | === Schema electrica === | ||
Line 85: | Line 85: | ||
#define MODE_SHFFL 0x55 | #define MODE_SHFFL 0x55 | ||
#define MODE_SCAN 0x00 | #define MODE_SCAN 0x00 | ||
- | | ||
uint8_t cd, tr, mode; | uint8_t cd, tr, mode; | ||
unsigned long prevMillis = 0; | unsigned long prevMillis = 0; | ||
Line 92: | Line 91: | ||
void send_package(uint8_t c0, uint8_t c1, uint8_t c2, uint8_t c3, uint8_t c4, uint8_t c5, uint8_t c6, uint8_t c7) { | void send_package(uint8_t c0, uint8_t c1, uint8_t c2, uint8_t c3, uint8_t c4, uint8_t c5, uint8_t c6, uint8_t c7) { | ||
uint8_t data[8] = {c0, c1, c2, c3, c4, c5, c6, c7}; | uint8_t data[8] = {c0, c1, c2, c3, c4, c5, c6, c7}; | ||
- | |||
for (int i = 0; i < 8; i++) { | for (int i = 0; i < 8; i++) { | ||
SPDR = data[i]; | SPDR = data[i]; | ||
Line 100: | Line 98: | ||
} | } | ||
- | Initializam SPI, dupa cum urmeaza | + | Initializam SPI, dupa cum urmeaza, astfel incat sa ruleze cu o viteza de transfer de 62.5kHz |
void spi_init() { | void spi_init() { | ||
- | // Configurează pinii SPI | ||
DDRB |= (1 << PB3) | (1 << PB5); | DDRB |= (1 << PB3) | (1 << PB5); | ||
DDRB &= ~(1 << PB4); | DDRB &= ~(1 << PB4); | ||
Line 114: | Line 111: | ||
tr = 1; | tr = 1; | ||
mode = MODE_PLAY; | mode = MODE_PLAY; | ||
- | |||
#ifdef DEBUG | #ifdef DEBUG | ||
Serial.begin(9600); | Serial.begin(9600); | ||
#endif | #endif | ||
- | + | delay(1000); | |
- | delay(1000); // Wait for device to boot | + | spi_init(); |
- | spi_init(); // Inițializează SPI manual | + | |
send_package(0x74, 0xBE, 0xFE, 0xFF, 0xFF, 0xFF, 0x8F, 0x7C); // idle | send_package(0x74, 0xBE, 0xFE, 0xFF, 0xFF, 0xFF, 0x8F, 0x7C); // idle | ||
delayMicroseconds(10000); | delayMicroseconds(10000); | ||
Line 128: | Line 122: | ||
send_package(0x74, 0xBE, 0xFE, 0xFF, 0xFF, 0xFF, 0x8F, 0x7C); // idle | send_package(0x74, 0xBE, 0xFE, 0xFF, 0xFF, 0xFF, 0x8F, 0x7C); // idle | ||
delayMicroseconds(10000); | delayMicroseconds(10000); | ||
- | |||
#ifdef DEBUG | #ifdef DEBUG | ||
Serial.println("Sent idle/load/idle commands"); | Serial.println("Sent idle/load/idle commands"); | ||
Line 286: | Line 279: | ||
<note tip> | <note tip> | ||
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | Rezultatele obtinute au fost destul de satisfacatoare, am intampinat cateva probleme pe care nu am putut sa le rezolv din cauza DAC-ului ales, deoarece acesta are nevoie de un master clock extern care sa fie sincron cu celelalte semnale de pe ele, iar ESP-ul nu este capabil de a oferi corect un astfel de semnal, generand destul de mult zgomot (cred ca un MAX98357 ar fi rezolvat problema zgomotului). Rezultatul final poate fi observat in urmatorul link: |
- | </note> | + | https://drive.google.com/file/d/1erp1HS01shDhwGrpYLM5Av1lJeFgSRbM/view?usp=sharing |
- | + | ||
- | ===== Concluzii ===== | + | |
- | + | ||
- | ===== Download ===== | + | |
- | + | ||
- | <note warning> | + | |
- | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). | + | |
- | + | ||
- | Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:prj20??:c?:nume_student** (dacă este cazul). **Exemplu:** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**. | + | |
- | </note> | + | |
- | + | ||
- | ===== Jurnal ===== | + | |
- | + | ||
- | <note tip> | + | |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | |
</note> | </note> | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | https://github.com/NullString1/VWCDC |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | https://schuett.io/2013/09/avr-raspberry-pi-vw-beta-vag-cdc-faker/ |
- | </note> | + | https://itohi.com/acoustics/esp32-as-bluetooth-audio/ |
- | + | ||
- | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | + | |