Naprogramování fleš paměti
Moderátor: Moderátoři
-
dvorak
- Příspěvky: 2248
- Registrován: 25 dub 2013, 00:00
- Bydliště: Dvůr Králové n.L.
Naprogramování fleš paměti
-
Celeron
- Příspěvky: 20635
- Registrován: 02 dub 2011, 00:00
- Bydliště: Nový Bydžov
-
Zaky
- Příspěvky: 7056
- Registrován: 30 říj 2010, 00:00
- Bydliště: Praha
-
dvorak
- Příspěvky: 2248
- Registrován: 25 dub 2013, 00:00
- Bydliště: Dvůr Králové n.L.
Aby bylo jasné, o co go, zasílám odkaz na můj "problém ":
https://www.ab-forum.info/viewtopic.php?t=81421
-
Zaky
- Příspěvky: 7056
- Registrován: 30 říj 2010, 00:00
- Bydliště: Praha
-
samec
- Příspěvky: 6819
- Registrován: 19 pro 2017, 00:00
Nič ti netreba. Normálne to nahráš cez Arduino.dvorak píše: 29 črc 2026, 18:32 Hledám někoho ochotného a znalého,, kdo by mi nahral příslušný program do fleš paměti typu Winbond W25Q64 . Uvažoval jsem koupit jednoduchý programátor, např. CH341A, ale nemám s tím zkušeniosti a výsledek by mohl být dost nejistý, proto se obracím zde. Další info přes SZ. Díky předem.
V príkazovom riadku v počítači nastavíš nízku prenosovú rýchlosť, aby Arduino stíhalo dáta zapisovať
Kód: Vybrat vše
mode COM3: baud=1200 parity=n data=8 stop=1Kód: Vybrat vše
type vas_subor.bin > COM3Kód: Vybrat vše
#include <SPIMemory.h>
#define FLASH_CS_PIN 10
#define LED_PIN 13 // Zabudovaná LED na Arduine
SPIFlash flash(FLASH_CS_PIN);
unsigned long currentAddress = 0;
bool uploadStarted = false;
void setup() {
pinMode(LED_PIN, OUTPUT);
// Nízka rýchlosť, aby Windows neprehltil sériový buffer Arduina
Serial.begin(1200);
if (!flash.begin()) {
// Ak čip nenašlo, LED bude svietiť trvalo ako chyba
digitalWrite(LED_PIN, HIGH);
while (1);
}
// 1. Indikácia: Počas mazania LED svieti
digitalWrite(LED_PIN, HIGH);
flash.chipErase();
digitalWrite(LED_PIN, LOW);
// 2. Indikácia: Čip je zmazaný, LED bliká a čaká na spustenie CMD príkazu
while (Serial.available() == 0) {
digitalWrite(LED_PIN, HIGH);
delay(200);
digitalWrite(LED_PIN, LOW);
delay(200);
}
// Prvý bajt dorazil, LED zhasne (začína zápis)
uploadStarted = true;
}
void loop() {
// Prijímanie dát z Windows CMD bez prehltenia buffera
if (Serial.available() > 0) {
byte dataByte = Serial.read();
// Priamy zápis bajtu do pamäte
flash.writeByte(currentAddress, dataByte);
currentAddress++;
}
}
Ale netestoval som to, takže tam môže byť chyba. Možno ten .bin súbor, ktorého obsah som nevidel. nie je na priamy zápis do Flash, možno dáta z neho treba najprv očistiť od balastu a prekonvertovať. Aj to sa dá urobiť v Arduine.
-
dvorak
- Příspěvky: 2248
- Registrován: 25 dub 2013, 00:00
- Bydliště: Dvůr Králové n.L.
https://dratek.cz/arduino-platforma/125 ... gL8p_D_BwE
-
samec
- Příspěvky: 6819
- Registrován: 19 pro 2017, 00:00
Ale skladnejšie a praktickejšie je Arduino Nano
https://dratek.cz/arduino-platforma/116 ... -klon.html
alebo "Arduino" Pro Micro (moje najobľúbenejšie)
https://dratek.cz/arduino-platforma/960 ... micro.html
Tieto menšie Arduina sa dajú jednoducho vložiť do kontaktného poľa a okolo nadrátovať nejakú bižutériu.
Oproti programátoru má Arduino výhodu v tom, že je univerzálne na čokoľvek.
-
bu2520
- Příspěvky: 4941
- Registrován: 16 črc 2007, 00:00
- Bydliště: u HK
-
Zaky
- Příspěvky: 7056
- Registrován: 30 říj 2010, 00:00
- Bydliště: Praha
-
dvorak
- Příspěvky: 2248
- Registrován: 25 dub 2013, 00:00
- Bydliště: Dvůr Králové n.L.
Ten přístroj je samozřejmě zastaralý, používám jiný, ale je mi jej líto vyhodit, je to víceméně pokus o jeho zprovoznění, závada může být možná i jinde......
Jak jsem popsal, přes RS 232 se firmware úspěšně nahraje, ale při bootu se zasekne, ta fleš může být poškozena a nenatáhne se úplně a není schpna komunikovat.
-
josef_novak
- Příspěvky: 1263
- Registrován: 06 kvě 2017, 00:00
-
dvorak
- Příspěvky: 2248
- Registrován: 25 dub 2013, 00:00
- Bydliště: Dvůr Králové n.L.
-
josef_novak
- Příspěvky: 1263
- Registrován: 06 kvě 2017, 00:00
-
PotPalo
- Příspěvky: 6059
- Registrován: 13 kvě 2009, 00:00
- Bydliště: BA