آی پی امداد
آی پی امداد
آریا الکترونیک parcham تکشو

سوال: نحوه پروگرام ناند فلش bga

darabi81

VIP+ افتخاری
کاربر
2012-04-10
1,037
5,385
سلام وقت بخیر.
دوستان چه راهی برای پروگرام ناند فلشهای bga نظیر ناند فلش هایونیکس h26m31001hpr که روی مین برد تلویزیونهای ال ای دی بکار رفته است دارید؟
شنیده ام بعضی از دوستان از طریق جیتک این کار را میکنند.
نحوه جیتک کردن این آی سی ها به چه صورت است؟
پروگرامرهای tnm قادر به انجام این کار هستند؟
سپاس
 

darabi81

VIP+ افتخاری
کاربر
2012-04-10
1,037
5,385
سلام
دوستان نظری ندارند.
به ویژه از عزیزان شرکت tnm درخواست دارم که در صورت امکان راهنمایی فرمایند.
 

darabi81

VIP+ افتخاری
کاربر
2012-04-10
1,037
5,385
درود
خود شرکت tnm فیلم اموزشی نحوه کار را منتشر کرده ..
در نت سرچ کنید .. هست .. فقط حجم بالای دارد .
سایت ظرفیت این را ندارد
سلام.
با جستجو در نت چیزی پیدا نکردم.
لطف میکنید اگر لینک صفحه را در اینجا قرار دهید.
 
  • Like
واکنش‌ها[ی پسندها]: alis2010

poya22

مدیر بخش های دوربین مداربسته و پروگرامرهای متفرقه
مدیر تالار
2011-07-25
1,211
2,946
وقتی نام ای سی در لیست نباشد یعنی ID کد ان ای سی در نرم افزار نیست .نمی تواند پروگرام کند حالا جدا از اداپتور

برای این مدل فلش ها باید از جیتگ استفاده کرد باید دید که به چه CPU متصل شده و چه نرم افزاری و چه سخت افزاری توانایی جیتگ ان را دارد گاهی هم نتیجه ای ندارد
معمولا برای این مدل ها خود سازنده یک نرم افزار و سخت افزار دارد که روی برد پروگرام میکند ان هم برای نمایندگی ها یا کارخانه های خودشان است

در ضمن استفاده از جیتگ خودش یک مهارت خاصی نیاز دارد باید از برد های جیتگ سرعت بالا استفاده کرد و همچنین نیاز به فایل اسکریپت دارد که باید مشخصات
CPU و ای سی فلش برای پروگرام کردن در داخل ان فایل اسکریپت باشد به همین سادگی نیست

برای مثال اسکریپت یک نوع CPU را برای پروگرامر FLASHCAT اینجا قرار میدم تا متوجه شوید که به همین راحتی نیست
Huawei HG556a Script JTAG

# Script file for Huawei HG556a

MyDevice = "NHuawei HG556a" #Name of device

SetParam(1,150) #Sets the Intel flash delay
SetParam(2,150) #Sets the AMD flash delay
SetParam(3,100) #Sets the DMA read delay

JTAG.BigEndian #Sets the device endian

JTAG.MemoryAddress(0x0)
JTAG.MemoryType("RAM")
JTAG.MemorySize(0x1f00000)
CFGMEM = JTAG.MemoryInit()
JTAG.MemoryAddress(0x1f000000)
JTAG.MemoryType("CFI")
CFGFLASH = JTAG.MemoryInit()

MacBase = 0x6A0
MacSize = 6
FirmBase = 0x2000
WpaBase = 0xFDE920
WpaSize = 14
SerialBase = 0x6A8
SerialSize = 15
SSIDBase = 0xFDE968
SSIDSize = 12
SSID2Base = 0xFE0403
SSID2Size = 12
SSID3Base = 0xFE072A
SSID3Size = 12
SSID4Base = 0xFFE968
SSID4Size = 12
SSID5Base = 0xFF0403
SSID5Size = 12
SSID6Base = 0xFF072A
SSID6Size = 12


t1 = Tab.Create(MyDevice)
Tab(t1).AddButton("ReadMac","Read Mac",15,30)
Tab(t1).AddButton("WriteMac","Write Mac",15,60)
Tab(t1).AddButton("ReadWpa","Read Wpa",150,30)
Tab(t1).AddButton("WriteWpa","Write Wpa",150,60)
Tab(t1).AddButton("ReadSSID","Read SSID",15,120)
Tab(t1).AddButton("WriteSSID","Write SSID",15,150)
Tab(t1).AddButton("ReadSerial","Read Serial",150,120)
Tab(t1).AddButton("WriteSerial","Write Serial",150,150)
Tab(t1).AddButton("EraseF","Erase Flash",15,210)


CreateEvent(EraseF)
Tab(t1).ButtonDisable()
Memory(CFGFLASH).EraseBulk()
Status("Erased")
Tab(t1).ButtonEnable()
Exit
EndEvent

CreateEvent(ReadMac)
Status("Reading the Mac")
Tab(t1).ButtonDisable()
MyData = Memory(CFGFLASH).ReadVerify(MacBase,MacSize)
if (MyData = Nothing)
Status("Error: data read back failed")
Tab(t1).ButtonEnable()
Exit Event
endif
Prompt = "Choose filename to save the mac"
SaveFile(MyData,Prompt,"mac.bin")
Status("Successfully read Mac from Flash")
Tab(t1).ButtonEnable()
EndEvent


CreateEvent(WriteMac)
Tab(t1).ButtonDisable()
Prompt = "Choose a mac to write into Flash"
MyData = OpenFile(Prompt,"mac files (*.bin)|*.bin")
if (MyData = Nothing)
goto WriteMacExit
endif
if not (Len(MyData) = MacSize)
Status("Error: File is not the size of the mac")
goto WriteMacExit
endif
Memory(CFGFLASH).Write(MyData,MacBase,MacSize)
Status("New Mac successfully written")
Tab(t1).ButtonEnable()
Exit
ExitWriteFwErr:
Status(WriteErr)
Tab(t1).ButtonEnable()
EndEvent

CreateEvent(ReadWpa)
Status("Reading the Wpa")
Tab(t1).ButtonDisable()
MyData = Memory(CFGFLASH).ReadVerify(WpaBase,WpaSize)
if (MyData = Nothing)
Status("Error: data read back failed")
Tab(t1).ButtonEnable()
Exit Event
endif
Prompt = "Choose filename to save the Wpa"
SaveFile(MyData,Prompt,"wpa.bin")
Status("Successfully read Wpa from Flash")
Tab(t1).ButtonEnable()
EndEvent


CreateEvent(WriteWpa)
Tab(t1).ButtonDisable()
Prompt = "Choose a Wpa to write into Flash"
MyData = OpenFile(Prompt,"wpa files (*.bin)|*.bin")
if (MyData = Nothing)
goto WriteWpaExit
endif
if not (Len(MyData) = WpaSize)
Status("Error: File is not the size of the wpa")
goto WriteWpaExit
endif
Memory(CFGFLASH).Write(MyData,WpaBase,WpaSize)
Status("New Wpa successfully written")
Tab(t1).ButtonEnable()
Exit
ExitWriteFwErr:
Status(WriteErr)
Tab(t1).ButtonEnable()
EndEvent

CreateEvent(ReadSerial)
Status("Reading the Serial")
Tab(t1).ButtonDisable()
MyData = Memory(CFGFLASH).ReadVerify(SerialBase,SerialSize)
if (MyData = Nothing)
Status("Error: data read back failed")
Tab(t1).ButtonEnable()
Exit Event
endif
Prompt = "Choose filename to save the serial"
SaveFile(MyData,Prompt,"wpa.bin")
Status("Successfully read Serial from Flash")
Tab(t1).ButtonEnable()
EndEvent


CreateEvent(WriteWpa)
Tab(t1).ButtonDisable()
Prompt = "Choose a Serial to write into Flash"
MyData = OpenFile(Prompt,"serial files (*.bin)|*.bin")
if (MyData = Nothing)
goto WriteSerialExit
endif
if not (Len(MyData) = SerialSize)
Status("Error: File is not the size of the serial")
goto WriteSerialExit
endif
Memory(CFGFLASH).Write(MyData,SerialBase,SerialSize)
Status("New Serial successfully written")
Tab(t1).ButtonEnable()
Exit
ExitWriteFwErr:
Status(WriteErr)
Tab(t1).ButtonEnable()
EndEvent

CreateEvent(ReadSSID)
Status("Reading the SSID")
Tab(t1).ButtonDisable()
MyData = Memory(CFGFLASH).ReadVerify(SSIDBase,SSIDSize)
if (MyData = Nothing)
Status("Error: data read back failed")
Tab(t1).ButtonEnable()
Exit Event
endif
Prompt = "Choose filename to save the SSID"
SaveFile(MyData,Prompt,"SSID.bin")
Status("Successfully read SSID from Flash")
Tab(t1).ButtonEnable()
EndEvent


CreateEvent(WriteSSID)
Tab(t1).ButtonDisable()
Prompt = "Choose a SSID to write into Flash"
MyData = OpenFile(Prompt,"SSID files (*.bin)|*.bin")
if (MyData = Nothing)
goto WriteSSIDExit
endif
if not (Len(MyData) = SSIDSize)
Status("Error: File is not the size of the SSID")
goto WriteMSSIDExit
endif
Memory(CFGFLASH).Write(MyData,SSIDBase,SSIDSize)
Memory(CFGFLASH).Write(MyData,SSID2Base,SSID2Size)
Memory(CFGFLASH).Write(MyData,SSID3Base,SSID3Size)
Memory(CFGFLASH).Write(MyData,SSID4Base,SSID4Size)
Memory(CFGFLASH).Write(MyData,SSID5Base,SSID5Size)
Memory(CFGFLASH).Write(MyData,SSID6Base,SSID6Size)
Status("New SSID successfully written")
Tab(t1).ButtonEnable()
Exit
ExitWriteFwErr:
Status(WriteErr)
Tab(t1).ButtonEnable()
EndEvent
 
آخرین ویرایش:
بالا