คนชอบแงะ ตอน LoLin NodeMCU V3 ทำไมใช้ GPIO9,10 ไม่ได้?

Started by ozuke, March 22, 2016, 10:36:09 AM

Previous topic - Next topic

ozuke

ออกตัวก่อนนะครับ ผมใช้ SmingFramwork กับโปรแกรม Eclipse
ซึ่งนี่เป็นครั้งแรกที่ได้ทดลองใช้งาน ESP8266 มันเป็นอะไรที่วุ่นวายมาก
กับการคลำหาวิธีการใช้งานมันโดยไม่มีผู้ช่วยแนะนำในช่วงแรก

เข้าเรื่องเลยดีกว่า
คือผมเคยตั้งคำถามใน Facebook ไปแล้วรอบนึงว่าถ้าผมจะใช้ขา GPIO9, 10
หรือขาที่ NodeMCU V3 เขียนแปะไว้ว่าเป็น S3, S2 มันสามารถใช้งานเป็น
GPIO ได้รึปล่าว เห็นเขียนบอกเอาไว้ สรุปว่าคำถามผมไม่รู้ไม่ดีรึปล่าว
เลยไม่มีคนตอบ มีแต่คนกด Like กันเต็มเลยฮ่าๆๆๆ
#ขออภัยในที่นี้ด้วย
กลับมาเข้าเรื่องกันต่อครับ พอผมไม่ได้คำตอบ ตามกระบวนการธรรมชาติของผมจึงเกิดเหตุการที่ว่า
ถ้าไม่มีคำตอบจากคำถาม เราก็ควรจะหาคำตอบด้วยตัวเอง โดยการงมโข่งเป็นเวลา 2 อาทิตย์ในการปะติดปะต่อ มั่วซั่วและถามเพื่อนที่เคยใช้ NodeMCU อันอื่นๆ

เพื่อนแนะนำให้ใช้ SmingFramework เพราะว่ามันเอาหน้าเพจเป็นไฟล์ HTML ยัดเข้าไปใน ESP ได้เลยผมเลยชอบ
และผมก็เริ่มลงโปรแกรม ใช้เวลา 3 วันในการมั่วไปเรื่อยจนทำให้ Windows เกือบเจ้งเพราะไปตั้งค่า PATH ด้วย Command ผิด
สรุปผมก็ลงมันได้ และเขียนไฟกระพริบได้ในที่สุด จากนั้นก็เริ่มทดลอง Example ที่มีอยู่มากพอสมควรจาก Sming ซึ่งอ่านเข้าใจง่ายมาก
แต่ข้อเสียคือ Lib มันใช้งานกับ Arduino ได้ไม่ทั้งหมด ผมพยายามหลายครั้งในการทำ Lib ใหม่เพื่อให้ผมสามารถเอา Lib จาก Arduino มาใช้งานกับ Sming

สรุปผมทำได้ครับ มันไม่ยาก แต่คนจะทำต้องบ้าพอสมควรที่จะเอาเวลาไปนั่งไล่ดูว่า Lib แต่ละอันมันโยงไปไหนกันบ้างเห่อะๆ
พอผมเริ่มทำหัวใจหลักมันได้แล้ว ผมเริ่มที่จะย้าย Lib บางอันจาก Arduino เข้ามาเช่น I2C LCD, DS1307 ซึ่งมันก็ทำงานได้แล้ว
จากเดิมที่ทำงานไม่ได้เพราะหลายข้อจำกัดเช่นใช้ GPIO16 เป็น IO นี่มันรู้สึกว่ามั่วได้ใจมาก เพราะขานี้เป็นขาของ WDT
ถ้าเราไปสั่งมันเป็น LOW แล้ว WDT มันจะรีเซทอัตโนมัติเลย ฮ่าๆ ก็อาศัยการค้นหาในอินเตอร์เน็ตสักพักใหญ่ๆ

พอผมแก้ปัญหาเรื่องขา GPIO16 ได้ผมมาต่อกันที่ขาที่ผมกลัวว่ามันจะเป็นปัญหาใหญ่สำหรับผมเลยก็ว่าได้คือขา GPIO9, 10
ที่มันต่อกับ IC Flash Memory ซึ่งจากการค้นหาข้อมูลในหลายๆเว็ปแล้ว บางเว็ปบอกใช้ได้ บางเว็ปบอกใช้ไม่ได้
#หัวร้อนเลยครับ ออกแบบ PCB สั่งทำมาแล้วฮ่าๆ
มาต่อครับ ผมได้ทดลองจั้มป์ HIGH เข้าไปที่ขาพบว่า ทำงานได้ปกติจากการการตั้งค่าให้ ESP ทำงานในโหมด DIO
แต่พอจัมป์ลง LOW เท่านั้นหล่ะ หัวร้อนเลยครับ หน้ามึดตาลายคล้ายจะเป็นลมอยู่พักใหญ่ๆ พบว่ามันค้างครับพี่น้องคือมันนี่งไปสักพักแล้ว WDT มันก็ทำงาน

สรุปผมไม่สามารถใช้งานโมดูลขา GPIO9, 10 ได้เลยในช่วงเวลานั้นจนถึงเวลานี้ ผมเลยเกิดอาการอยากจะแงะมัน ฮ่าๆๆๆๆๆ
#ขอสักตัวละกันครับหัวหน้า พูดในใจเพื่อขออนุญาติลูกพี่ก่อนแกะของเขาพัง
ผมแกะออกมาแล้วพบว่า LoLin NodeMCU V3 ใช้ ESP-12E และขามันก็ไม่ได้ตรงตามที่เขาโฆษณาเอาไว้นั้นคือ GPIO9, 10 ไม่ได้อยู่ที่ขา
S2, S3 มันไปอยู่ขา SK, S3 แทน #เกิดอาการหัวร้อนขึ้นอีก และจากการวัด ขา 7, 3 ของ IC 25Q40 พบว่าขาทั้งสองยังต่อกับ ESP8266 อยู่
ซึ่งมองเผินๆ สองขานี้ไม่ใช้ก็ได้ จะสั้ง HIGH, LOW ก็ได้นะ หากเราใช้งานโหมด DIO แต่ผมก็ยังใช้งานมันไม่ได้อยู่ดีฮ่าๆ
จนถึงนาทีที่ผมแอบมาเล่นเว็ปตั้งกระทู้ ผมก็ยังใช้งานขาทั้งสองไม่ได้

ผมมีคำถาม ท่านไหนเคยใช้สองขานี้ต่อเป็น IO บ้างครับ แล้วใช้ได้ไหม?

ozuke

คือผมหาข้อมูลมาพอสมควรในการที่จะใช้งานขาสองขานี้ให้ได้
ถ้าท่านไหนมีคำแนะนำก็รบกวนหน่อยนะครับ
อันนี้ตำแหน่งขาที่ LoLin โฆษณาเอาไว้ และวงจรที่น่าจะเป็นของ ESP-12 ในส่วนของการเชื่อมต่อ Flash Memory


tape_4

จงเชื่อมั่นในสิ่งที่ทำและมีศรัทธากับสิ่งที่เราเรียนรู้


JENG

สามารถติดตาม electoday ได้ที่

Facebook
www.facebook.com/groups/coopmicro

Google+
https://plus.google.com/communities/103482067769375459277

☺☺☺ความรู้ และความฉลาด ไม่ใช่สิ่งเดียวกัน จะมีประโยชน์อะไร ถ้าฉลาดแต่อยู่ในกะลา☺☺☺

Max Lab

ผมลองใช้ digitalWrite() ที่ใช้ Arduino เขียน ขา GPIO9 / 10 ผมลองแล้วใช้ไม่ได้ ผมเดาว่ามันใช้ไม่ได้แต่แรกแล้ว เพราะที่ลง Arduino ก็ใช้ Core ที่ออกมาจากทาง Espressif เอง เข้าใจว่า 12E ทำมาเพื่อหลอกให้คนเข้าใจผิดมากกว่า (หลอกได้ดีมาก) พอมาใน 12F เปลี่ยนลายปริ้นนิดหน่อยแล้วออกขายอีก แต่ครั้งนี้เหมือนจะโดนรู้ทันแล้ว ขายไม่ดีเท่าที่ควร ;D
Elec-Za เพื่อนอิเล็กทรอนิกส์ : http://www.elec-za.com/

chatichai

ซื้อมา สามตัวแหละ esp12E โดนไฟกระพริบไปครั้งเดียว วางนิ่งๆๆ ไว้ชม ยังไม่มีเวลาเล่นเลย ตามด้วย รอท่าน ปรมาจารย์ แห่งดินแดนที่ราบสูง นำทาง แล้วข้าน้อยค่อยตามท่านไป   ;D

วิจัย

ก่อนโปรแกรม ตั้ง GPIO0=0 or low  ไม่รู้เกี่ยวกันไม๊
https://github.com/nodemcu/nodemcu-flasher