การ isolotion จะใช้ตัว module dc/dc converter แบบ isolation เป็นตัวแยก ground ของแต่ละฝั่ง ส่วนสัญญาณต่างๆจะใช้การ coupling ผ่าน opto ดังนั้นราคาจึงแพงกว่า แต่ถ้าใช้ไฟเลี้ยงฝั่ง target ด้วยก็ไม่ต้องใช้ converter
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Show posts MenuQuote from: diywizard on September 24, 2015, 11:37:46 PMผมว่า flash ใน mcu ไม่สามารถเขียนทับเลยโดยตรงได้นะครับต้องลบก่อนเสมอ พอลบมันจะกลายเป็น 0xff ในแต่ละ byte เวลาเขียนมันจะเขียนบิทศูนย์ลงไปแทนบิทหนึ่ง แต่ถ้าของเดิมเป็นบิทศูนย์อยู่จะไม่สามารถเขียนบิทหนึ่งทับลงไปได้ สังเกตุดูว่าเวลาเราburnโปรแกรมลง mcu ทำไมต้องลบข้อมูลเดิมก่อนหรือทำ blankcheck(ลบให้เป็นหนึ่งทั้งหมด) ส่วนจะดูว่า code อยู่ตรงตำแหน่งไหนลองดูใน map file ครับ จะมีบอกหมดว่า function ไหนอยู่ที่ address ไหนและใช้พื้นที่ code กี่ byteQuote from: joems on September 24, 2015, 07:35:28 PM
ผมเปิด datasheet มันแบ่งเป็นแบบ sector ถ้าจะเขียน sector ไหน ต้อง erase ทั้ง sector ก่อนเขียนใหม่
ไม่ต้องลบก่อนเขียนก็ได้ครับถ้า size ของการเขียนนั้นมีขนาดใหญ่กว่าหรือเท่ากับ sector size เพราะยังไงก็ต้องเขียนทับจริงไหมครับ?
ให้ไปลบเอา tail sector ดีกว่า (ไม่ต้องลบหมดนะในความคิดผม) แต่ถ้าชอบง่ายๆก็ลบก่อนเขียนก็ได้ครับไม่ต้องคิดมากดีQuote from: joems on September 24, 2015, 07:35:28 PM
มีคำถามว่า Code image ที่เรา compiled มา จะดูยังไงคับ ว่าอยู่ตรงไหน ผมจะได้ write flash ถูก
อันนี้ยากแฮะ ถ้าหมายถึงต้องการรู้ว่า code เรา locate ที่ไหนตอน runtime ต้องสร้าง function ขึ้นมาตรวจสอบวนลูปเช็คแต่ละ sector ว่าว่างหรือเปล่าไล่มาจากทาง interrupt vector table ก่อนก็ได้ครับ (0x80000000) ถ้าเจอ sector อันแรกมีแต่ zero bytes ก็น่าจะสันนิษฐานได้ว่า sector นั้นเป็น sector ว่างครับ อันนี้ผมอาจจะผิดก็ได้ลองไปคิดอีกทีครับ
แต่ถ้าหมายถึงตอนที่ไม่ได้ run mcu อยู่ก็มี utility อยู่ตัวหนึ่่่่่่่งที่ชื่อว่า stm32 st-link utility เอาไว้ใช้ดู flash memory content ได้ครับ